Я новичок в R. Я скачал XML со всеми Биопроектами из NCBI.Размер файла составляет 1 ГБ.Я начал с этого:
setwd("C://Users/USER/Desktop/")
xmlfile = xmlParse("bioproject.xml")
root = xmlRoot(xmlfile)
xmlName(root)
[1] "PackageSet"
xmlSize(root)
[1] 357935
Итак, в NCBI 357935 проектов.Здесь я рассматриваю проект 34:
> root[[34]]
<Package>
<Project>
<Project>
<ProjectID>
<ArchiveID accession="PRJNA44" archive="NCBI" id="44"/>
</ProjectID>
<ProjectDescr>
<Name>Bartonella quintana str. Toulouse</Name>
<Title>Causes bacillary angiomatosis</Title>
<Description><P><B><I>Bartonella quintana</I> str. Toulouse</B>. <I>Bartonella quintana</I> str. Toulouse was isolated from human blood in Toulouse, France in 1993. There is evidence of extensive genome reduction in comparison to other <I>Bartonella</I> species which may be associated with the limited host range of <I>Bartonella quintana</I>.</Description>
<ExternalLink category="Other Databases" label="GOLD">
<URL>http://genomesonline.org/cgi-bin/GOLD/bin/GOLDCards.cgi?goldstamp=Gc00191</URL>
</ExternalLink>
<Publication date="2004-06-24T00:00:00Z" id="15210978" status="ePublished">
<Reference/>
<DbType>ePubmed</DbType>
</Publication>
<ProjectReleaseDate>2004-06-25T00:00:00Z</ProjectReleaseDate>
<LocusTagPrefix assembly_id="GCA_000046685" biosample_id="SAMEA3138248">BQ</LocusTagPrefix>
</ProjectDescr>
<ProjectType>
...
...
</ProjectType>
</Project>
<Submission submitted="2003-03-20">
...
...
</Submission>
<ProjectLinks>
...
...
</ProjectLinks>
</Project>
</Package>
Мне нужно получить ВСЕ значения <ProjectID>
(в данном случае PRJNA44) во всем файле XML, ТОЛЬКО ЕСЛИ в <Description>
в пределах<ProjectDescr>
каждого проекта существует текст «изолированный от крови человека» (или «кровь», если это упрощает сценарий).В качестве альтернативы, если это упрощает задачу, вместо получения ProjectID я могу получить значение <URL>
в пределах <ExternalLink
в пределах <ProjectDescr>
.
Я не знаю, как (или нужно ли) использоватьФункция xpath
(или xpathApply
, или getNodeSet
, или xpathSApply
).Спасибо за помощь.