Открыть главное меню
Главная
Случайная
Войти
Настройки
О hpluswiki
Отказ от ответственности
hpluswiki
Найти
Редактирование:
Работа с базой данных PubMed
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Полный дамп пабмеда == * ftp://ftp.ncbi.nlm.nih.gov/pubmed/baseline − фтп архив для свободного скачивания по анонимному логину. В архиве около 50 Гб сжатых файлов вида <code>pubmed<year_when_dumped>n<index>xml.gz</code> содержат около 31 миллиона [[MEDLINE (формат данных)|medline]] записей. Файлы большие, могут биться при закачке. Поэтому рекомендуется после загрузки проверить контрольные суммы, скачав с сервера файлы .md5. В линуксе проверку по всему массиву файлов можно сделать например так: <syntaxhighlight lang="Bash">md5sum -c pubmed21n*.xml.gz.md5</syntaxhighlight> показать количество побитых файлов: <syntaxhighlight lang="Bash">md5sum -c pubmed21n*.xml.gz.md5 2>/dev/null | grep FAILED | wc -l</syntaxhighlight> ==Страница публикации с конкретным pmid== <nowiki>https://pubmed.ncbi.nlm.nih.gov/[pmid]</nowiki> ==Получение [[medline]] записи по pmid== <nowiki>https://api.ncbi.nlm.nih.gov/lit/ctxp/v1/pubmed/?format=medline&id=[pmid]</nowiki> ==Получение pmid статей по запросу== Для получения списка айдишников статей по ключевому слову можно использовать get-запрос: <!-- конкретный пример: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=longevity&tool=just_a_browser_address_string&email=my_mail@example.com&format=json&retmax=100 --> <pre><nowiki>https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&tool=[название вашего скрипта]&email=[контактный email]&format=json&term=[ключевое слово]</nowiki></pre> Результат будет примерно такой: <syntaxhighlight lang="json"> { "header": { "type":"esearch", "version":"0.3"}, "esearchresult": { "count":"556850", "retmax":"20", "retstart":"0", "idlist":["7956338", "7956337", "7956317", "7956313", "7956301", "7956298", "7956293", "7956291", "7956287", "7956282", "7956276", "7956270", "7956269", "7956239", "7956238", "7956234", "7956232", "7956215", "7956214", "7956207"], "translationset":[{ "from":"aging", "to":"\"aging\"[MeSH Terms] OR \"aging\"[All Fields]"}], "translationstack":[ { "term":"\"aging\"[MeSH Terms]", "field":"MeSH Terms", "count":"49929", "explode":"Y"}, { "term":"\"aging\"[All Fields]", "field":"All Fields", "count":"557471", "explode":"N"}, "OR", "GROUP"], "querytranslation":"\"aging\"[MeSH Terms] OR \"aging\"[All Fields]"} } </syntaxhighlight> Соответственно, список id статей: <code><res>.esearchresult.idlist</code> ===Параметры запроса=== * '''db''' − какую базу данных запрашиваем. Возможные значения: <code>pmc, pubmed</code>. Разница между PMC и PubMed в том, что на PMC статьи с полнотекстовым доступом, а на PubMed не всегда. Зато на PubMed больший охват статей по абстрактам. Учитывая то, что полный текст интересующей статьи достать [https://sci-hub.do не так уж и трудно], установка ''db'' в значение ''pubmed'' выглядит более предпочтительной. * '''tool''' − PubMed просит указывать название инструментария или программы, которая работает с API. (Я указываю ''"odysseus"'' - по названию своей библиотеки, расширяющей Racket. -- [[Участник:Denis.s|Denis.s]] ([[Обсуждение участника:Denis.s|обсуждение]])) * '''email''' − реальный почтовый ящик, тоже по просьбе PubMeda. Неизвестно насколько страшно указывать в этом параметре значение типа foobar@example.com и какие кары за это могут последовать * '''format''' − в каком формате выводить результат. По умолчанию выводится XML. (Я ставлю значение ''json'', потому что мне кажется, что json чуть легче парсить и "читать вручную". -- [[Участник:Denis.s|Denis.s]] ([[Обсуждение участника:Denis.s|обсуждение]])) * '''retmax''' − максимальное число выводимых id * '''term''' − собственно ключевое слово, по которому происходит отбор статей. Либо комбинация ключевых слов и частей записи, в которых они должны встретиться. Например <code>(aging[Abstract] AND aging[MeSH Terms]) OR (longevity[Abstract] AND longevity[MeSH Terms])</code> ===Тьюториалы=== * [https://www.ncbi.nlm.nih.gov/books/NBK25499/ ncbi.nlm.nih.gov/books/NBK25499 − Подробная статья про параметры GET запросов]
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «hpluswiki» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Hpluswiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)