Использование R для получения реферата Pubmed по его заголовку

Некоторое время я пытался получить рефераты Pubmed, используя его название. Например, если я помещу следующий заголовок в маску pubmPd @https://pubmed.ncbi.nlm.nih.gov/:

Изоформа MEG3, полученная из гипофиза, действует как супрессор роста в опухолевых клетках

Я получаю страницу, показывающую следующую аннотацию:

Абстрактный Аденомы гипофиза человека являются наиболее распространенными внутричерепными новообразованиями. Соматическая мутация, обычно моноклональная по происхождению, является необходимым условием развития опухоли. Чтобы определить основные патогенетические механизмы образования опухоли, мы сравнили разницу в экспрессии генов между нормальной тканью гипофиза человека и клинически нефункционирующими аденомами гипофиза с помощью анализа различий, представляющих кДНК. Мы клонировали кДНК, экспрессия которой отсутствовала в этих опухолях, которая представляет собой новый транскрипт из ранее описанного MEG3, материнского гена импринтинга с неизвестной функцией. Он экспрессировался в нормальных гонадотрофах человека, из которых происходят клинически нефункционирующие аденомы гипофиза. Дополнительное исследование с помощью Нозерн-блоттинга и ОТ-ПЦР показало, что этот ген также не экспрессируется в функционирующих опухолях гипофиза, а также во многих линиях раковых клеток человека. Более того, эктопическая экспрессия этого гена ингибирует рост раковых клеток человека, включая HeLa, MCF-7 и H4. Геномный анализ показал, что MEG3 расположен на хромосоме 14q32.3, месте, которое, как было предсказано, содержит ген-супрессор опухоли, участвующий в патогенезе менингиом. В совокупности наши данные позволяют предположить, что MEG3 может представлять собой новый супрессор роста, который может играть важную роль в развитии аденомы гипофиза человека.

Есть ли в пакетах R какая-либо команда, которая могла бы сделать то же самое? Я играл с некоторыми инструментами, такими как «easyPubmed», «Rentrez» и т. д., но меня немного пугала их сложность. Заранее спасибо.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
35
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Мы можем использовать rvest, чтобы получить аннотацию, отправив форму.

library(rvest)
library(dplyr)

# URL
url = 'https://pubmed.ncbi.nlm.nih.gov/'
ncbi <- html_session(url)

# Grab the Form
search <- ncbi %>% html_node("form") %>% html_form()
#fill the form 
search <- search %>%
  html_form_set("term" = "A Pituitary-Derived MEG3 Isoform Functions as a Growth Suppressor in Tumor Cells")

# submit the form and save as a new session
session <- submit_form(ncbi, search) 

# get abstract
abstract <- session %>% html_nodes('.abstract-content') %>% html_text()

Также это решение работает. Ценится.

Arturo 21.03.2022 13:58
Ответ принят как подходящий

Я думаю, что пакет easyPubMed относительно прост в использовании, как следует из названия. Вот полный пример.

Вы можете создать символьное значение запроса, в этом случае просто используйте тот же заголовок, что и в посте.

Вы можете выполнить запрос PubMed, используя get_pubmed_ids, и получить записи, используя fetch_pubmed_data.

Затем, используя table_articles_byAuth, вы можете поместить свои результаты в data.frame. Установив included_authors значение «первый», вы будете получать информацию только о первых авторах записей. Также с помощью max_chars вы можете установить ограничение на количество символов, включенных в аннотацию.

library(easyPubMed)

my_query <- paste(
  'A Pituitary-Derived MEG3 Isoform Functions as a Growth Suppressor in Tumor Cells',
  '[ti]'
)

my_pubmed_ids <- get_pubmed_ids(my_query)
my_data <- fetch_pubmed_data(my_pubmed_ids, encoding = "ASCII")

df <- table_articles_byAuth(my_data,
                            included_authors = "first",
                            max_chars = 2000,
                            encoding = "ASCII")

Результирующие столбцы вашего data.frame будут следующими:

names(df)

 [1] "pmid"      "doi"       "title"     "abstract"  "year"      "month"     "day"       "jabbrv"    "journal"   "keywords" 
[11] "lastname"  "firstname" "address"   "email" 

Если вы хотите увидеть все свои тезисы, они будут в столбце abstract вашего data.frame:

df$abstract

[1] "Human pituitary adenomas are the most common intracranial neoplasm...

Он работает и извлекает также другую потенциально полезную информацию. Спасибо!

Arturo 21.03.2022 13:57

Другие вопросы по теме