ncbi apiを介してpmc-ids(pubmed中央ID)をpmid(pubmed id)に変換することは可能ですか?Webフォームからもできますが、プログラムを使いたいのですが、もちろんいつでもスクリーンスクレイパーを書くことができます...ありがとう
1 に答える
1
NCBI Entrezプログラミングユーティリティ(E-utilities )から、EFetchを使用してpubmed中央IDをpubmedIDに変換できます。からデータを読み取って解析できる任意のプログラミング言語からEFetchを使用することができます。HTTP
XML
たとえば、リスト内の記事の1つが次の場合です。
Wang TT、etal。JBiolChem。2010年1月22日;285(4):2227-31。
PubMed PMID:19948723 PubMed Central PMCID:PMC2807280
次のEFetchURLからXMLドキュメントを取得できます。
"http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db= pmc&id = 2807280&rettype = medline&retmode = xml"
XMLドキュメントにはPubMedIDが含まれています。
<pmc-articleset>
<article>
<front>
<article-meta>
<article-id pub-id-type="pmc">2807280</article-id>
<article-id pub-id-type="pmid">19948723</article-id>
perlでpmcidをpmidに変換する1つの方法は次のとおりです。
#!/usr/bin/perl
# pmcid2pmid.pl -- convert a pubmed central id to a pubmed id with EFetch
# http://eutils.ncbi.nlm.nih.gov/corehtml/query/static/efetchlit_help.html
use strict;
use warnings;
use LWP::UserAgent; # send request to eutils.ncbi.nlm.nih.gov
use XML::Smart; # parse response
# check parameter
my ($id) = @ARGV;
if ( not(defined($id)) ) {
print STDERR "must provide a pmcid as 1st parameter...\n";
exit(-1);
}
$id =~ s/PMC//;
sleep(3); # recommended delay between queries
# build & send efetch query
my $efetch= "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?";
my $efetch_query = "db=pmc&id=$id&rettype=medline&retmode=xml";
my $url = $efetch.$efetch_query;
my $xml = XML::Smart->new($url);
##print $xml->dump_tree(),"\n";
# parse the response
$xml = $xml->{'pmc-articleset'}->{'article'}->{'front'}{'article-meta'};
my $pmid = $xml->{'article-id'}('pub-id-type','eq','pmid')->content;
print STDOUT "PMID = $pmid";
> perl pmcid2pmid.pl PMC2807280
PMID = 19948723
于 2012-02-12T05:46:18.180 に答える