transform pmc-id - > pmid

是否可以通过ncbi api将pmc-ids(pubmed central id)转换为pmids(pubmed id)?您可以通过网络表格做到这一点,但我想要使用一个程序 - 当然我可以随时写一个屏幕报废...谢谢transform pmc-id - > pmid

回答:

您可以将pubmed ID转换为pubmed ID EFetch NCBI Entrez编程实用程序(E-utilities)。可以使用任何可以从HTTP读取数据并解析XML的编程语言的EFetch。

例如,如果在列表中的文章之一是:

王TT,。 J Biol Chem。 2010年1月22日; 285(4):2227-31。
考研结论:19948723 PubMed中心PMCID:PMC2807280

您可以从以下网址EFetch XML文档:

“http://eutils.ncbi.nlm.nih.gov/entrez/ eutils/efetch.fcgi分贝= PMC & ID = & rettype = MEDLINE & retmode = xml”的

的XML文档包含PubMed的ID:

<pmc-articleset> 

<article>

<front>

<article-meta>

<article-id pub-id-type="pmc">2807280</article-id>

<article-id pub-id-type="pmid">19948723</article-id>


一到一个pmcid转换为PMID在Perl的方法是:

#!/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

以上是 transform pmc-id - &gt; pmid 的全部内容, 来源链接: utcz.com/qa/262856.html

回到顶部