2016-06-14 14 views
0

Я работаю над проектом, который требует работы с Genia corpus. Согласно литературе, Genia Corpus изготавливается из статей, извлеченных путем поиска 3 Mesh-терминов: «фактор транскрипции», «клетка крови» и «человек» на Medline/Pubmed. Я хочу извлечь полную текстовую статью (которая свободно доступна) для статей в Genia corpus из Pubmed. Я пробовал много подходов, но я не могу найти способ загрузить полный текст в текстовом или формате XML или Pdf.Как скачать полный текст статьи из Pubmed?

Использование ENTREZ утилиты, предоставляемые NCBI:

  1. Я попытался использовать подход, упомянутые здесь - http://www.hpa-bioinformatics.org.uk/bioruby-api/classes/Bio/NCBI/REST/EFetch/Methods.html#M002197

    который использует Рубиновый драгоценный камень Bio, как это, чтобы получить информацию для данного PubMed ID - Bio :: NCBI :: REST :: EFetch.pubmed (15496913)

    Но, он не возвращает полный текст для PMID.

  2. Внутри она делает вызов, как это - http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=1372388&retmode=text&rettype=medline

    Но, как драгоценный камень рубин и выше вызова не возвращают полный текст.

  3. В дальнейшем поиске в Интернете, я обнаружил, что допустимые значения PubMed для rettype и retmode не имеют возможность получить полный текст, как указано в таблице здесь - http://www.ncbi.nlm.nih.gov/books/NBK25499/table/chapter4.T._valid_values_of__retmode_and/?report=objectonly

  4. Все примеры и другие сценарии, которые я видел в Интернете, - это только извлечение рефератов. авторов и т. д., и ни один из них не обсуждает извлечение полного текста.

  5. Вот еще одна ссылка, что я обнаружил, что использует Python пакет Bio, но только доступ к информации об авторах - https://www.biostars.org/p/172296/

Как загрузить полный текст статьи в текстовом или XML или Pdf формат с использованием Entrez utils, предоставляемый NCBI? Или есть уже доступные скрипты или веб-сканеры, которые я могу использовать?

+0

Можете ли вы разместить ссылку на одну из тех статей, которые хотите загрузить, и указать, какую часть из них вам нужно? –

+0

Я хочу загрузить бесплатный полный текст для статей Pubmed с использованием PMID. Например: если запрос PMID составляет 10438913 в баре поиска (http://www.ncbi.nlm.nih.gov/pubmed), то опубликованные результаты показывают, что эта статья является бесплатной статьей. Итак, щелкнув по этой статье, я перейду на http://www.ncbi.nlm.nih.gov/pubmed/10438913, а на правой верхней стороне вы увидите кликабельную иконку «Final version free». Если вы нажмете на это, вы получите версию в формате pdf. Теперь, как я могу автоматизировать этот шаг для нескольких статей? –

ответ

2

Вы можете использовать biopython, чтобы получить статьи, которые находятся на PubMedCentral, а затем получить от него PDF. Для всех статей, размещенных где-то в другом месте, сложно получить общее решение для получения PDF-файла.

Кажется, что PubMedCentral не хочет, чтобы вы загружали статьи навалом. Запросы через urllib заблокированы, но тот же URL-адрес работает из браузера.

from Bio import Entrez 

Entrez.email = "[email protected]" 


#id is a string list with pubmed IDs 
#two of have a public PMC article, one does not 
handle = Entrez.efetch("pubmed", id="19304878,19088134", retmode="xml") 

records = Entrez.parse(handle) 
#checks for all records if they have a PMC identifier 
#prints the URL for downloading the PDF 
for record in records: 
    if record.get('MedlineCitation'): 
     if record['MedlineCitation'].get('OtherID'): 
      for other_id in record['MedlineCitation']['OtherID']: 
       if other_id.title().startswith('Pmc'): 
        print('http://www.ncbi.nlm.nih.gov/pmc/articles/%s/pdf/' % (other_id.title().upper())) 
+0

большое спасибо! это работает как прелесть загрузки pdf-файлов. Но я все еще путаю, я запросил 15 PMID на веб-сайте, и он показал мне 9 PMID, что у них есть свободный текст.Когда я запускал ваш скрипт, он просто дал мне 1. Не могли бы вы объяснить связь PMID - PMC, которую вы упомянули в комментарии в коде. Я смущен этим. –

+0

@KahiniWadhawan: Можете ли вы добавить список идентификаторов PubMed? –

Смежные вопросы