Pubmed API: What are systemID and publicID?

21 次查看(过去 30 天)
The Matlab script I'd written in April 2016 to interface with the Pubmed API to automatically extract a bunch of gene info is no longer working. Something about needing both a SystemID and PublicID. Any ideas?
Simplified version of the code:
baseSearchURL = ['http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed'];
gene = 'pten';
termOptTOTAL = ['&term=', gene]; 
searchURL = [baseSearchURL,termOptTOTAL];
Full error message:
[Fatal Error] esearch.fcgi?db=pubmed&term=pten:1:50: White spaces are required between publicId and systemId.
Error using xmlread (line 97)
Java exception occurred:
org.xml.sax.SAXParseException; systemId: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=pten; lineNumber:
1; columnNumber: 50; White spaces are required between publicId and systemId.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)

回答(2 个)

Star Strider
Star Strider 2016-12-17
I use PubMed frequently, but not to do what you’re doing. When I plugged ‘http://eutils.ncbi.nlm.nih.gov/entrez/eutils/’ into the URL bar, I got ‘Page has moved here’ and was vectored to Entrez Programming Utilities Help. You might see if that page has the information you need.

Robert Snoeberger
Robert Snoeberger 2017-6-28
It is possible to avoid XML by using webread and setting the retmode parameter to 'json'. JSON is easier to work with because webread will parse it and give you a struct.
Example:
>> result = webread('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi','db','pubmed','term','pten','retmode','json')
result =
struct with fields:
header: [1×1 struct]
esearchresult: [1×1 struct]
>>
You can find some information about the retmode parameter in [1].
  1. https://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.ESearch

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by