<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>tex / Drkcore</title><link>http://blog.kzfmix.com/tex</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Thu, 15 Apr 2010 20:28:24 +0919</lastBuildDate><item><title>Python使ってpubmedからbibを生成</title><link>http://blog.kzfmix.com/entry/1271330685</link><description>&lt;p&gt;biopythonで。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/env python
# -*- encoding:utf-8 -*-
# kzfm &amp;lt;kerolinq [AT] gmail.com&amp;gt;

def pm2bib(pm):
    author = "; ".join(pm['AU'])
    year = pm['DP'][0:4]
    bib = """@article{PMID:%s,
author = {%s},
title = {%s},
journal = {%s},
year = {%s},
volume = {%s},
number = {%s},
pages = {%s},
}
""" % (pm['PMID'],author,pm['TI'],pm['TA'],year,pm['VI'],pm.get('IP',""),pm['PG'])
    return bib

if __name__ == "__main__":

    from Bio import Entrez, Medline

    Entrez.email = "xxx@gmail.com"
    record = Entrez.read(Entrez.esearch(db="pubmed",term="biopython"))
    idlist = record["IdList"]
    records = Medline.parse(Entrez.efetch(db="pubmed",id=idlist,rettype="medline",retmode="text"))

    for record in records:
        print pm2bib(record)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;適当に用意したtex&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;\documentclass{jarticle}
\begin{document}
\bibliographystyle{plain}
「お互いの犬\cite{PMID:20015970}の写真\cite{PMID:19811691}を撮り合い、帰ったらその写真\cite{PMID:19773334}
を自分のブログ\cite{PMID:19304878}にＵＰして紹介\cite{PMID:18606172}
し、お互いのブログにお礼コメント\cite{PMID:16403221}をするというのが暗黙のルール\cite{PMID:16377612}です。」

X06HT予約しにいったら、携帯電話が妻名義\cite{PMID:14871861}だったので予約出来なかった。
あと名義変更に一日かかるからあと二回いかないと予約出来ない\cite{PMID:14630660}
という衝撃の事実を聞かされた。多分、アンドロイドへの何か\cite{PMID:12230038}
が試されているんだろう。

\bibliography{test}
\end{document}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;できた&lt;a href="http://www.kzfmix.com/pub/pm2bibtest.pdf"&gt;pdf&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Thu, 15 Apr 2010 20:28:24 +0919</pubDate><category>Python</category><category>biopython</category><category>tex</category></item></channel></rss>