如何从摘要中检索基因名称

时间:2019-03-18 10:48:22

标签: python r pubmed

abstract.txt = "The insulin-like growth factor 1 (IGF1) signaling pathway has emerged as a major 
从啮齿动物到人类的衰老调节剂。但是,鉴于 IGF1的多效性作用及其在大脑衰老中的作用仍然复杂且 有争议的。虽然IGF1显然对正常发育至关重要 中枢神经系统,临床前和临床上出现了相互矛盾的证据 关于其与认知功能的关系的人类研究,以及 脑血管和神经退行性疾病。这篇评论深入探讨了 目前研究IGF1在衰老大脑中的作用的证据的现状, 包括临床前和临床研究。广泛检查数据 表明IGF1可能确实在衰老的大脑中起相反的作用,具体取决于 潜在的病理和背景。一些证据表明, 蛋白质异常的神经退行性疾病的背景 沉积在大脑中,例如阿尔茨海默氏病,降低IGF1信号传导可能 通过减缓疾病进展和增加清除率起到保护作用 病理蛋白质以维持细胞稳态。相反,诱导 IGF1缺乏症也与认知功能失调有关 和神经血管系统,提示某些IGF1信号可能是 正常的大脑功能所必需的。此外,急性神经元的状态 伤害,需要持续的生长,修复和生存信号, 通常会在这种情况下证明IGF1的有益作用。欣赏 双重,有时会反对IGF1的“杰基尔博士”和“海德先生”特征 大脑老化,将使我们更加了解其影响并进行更多设计 针对性的IGF1相关干预措施。 “

这是我发布的文本文件摘要。该摘要包含一些基因名称。我该如何获取基因名称

3 个答案:

答案 0 :(得分:0)

通常您可以使用table()完成此操作,但首先要进行一些准备工作:

mytxt<-"I am venkatarao.studying matsers. I am going to complete masters. my friends are venkatarao. Naveen, reddy. all are studying masters."

#remove punctations
gsub('[[:punct:]]',' ',mytxt)

#separate words
mytxt<-strsplit(mytxt," ")[[1]]

#frequencies
table(mytxt)

但是,您只需要名称,没有预定义名称的方法就无法做到这一点……或者在其他地方获得定义。因此,按照您的定义,您可以执行以下操作:

find_names<-c("venkatarao","Naveen","reddy","masters")
mytxt[mytxt%in%find_names]

当然,如果拼写不正确,它不会找到名称;-)

答案 1 :(得分:0)

这应该起作用,尽管它会区分大小写。

首先,您需要重命名抽象变量(它不能以.txt结尾并被视为字符串):

abstract_text =  "The insulin-like growth factor 1 (IGF1) signaling pathway has emerged..."

然后,您需要列出要搜索的所有基因:

genes = ["IGF1"]

然后您可以搜索所有基因。

from collections import Counter
import pandas

genes_dictionary = {}

for i in genes:
   if i in abstract_text:
      genes_dictionary[i] = 1

将字典转换为表格并打印。

table = pandas.Series(genes_dictionary, name = 'Count')
table.index.name = 'Gene'
table.reset_index()

输出: Gene Count 0 IGF1 1

答案 2 :(得分:0)

使用您的样本数据集,我们可以进行以下工作:

data.txt = "I am venkatarao.studying matsers. I am going to complete masters. my friends are venkatarao. Naveen, reddy. all are studying masters."

# Isolate words by space, remove periods and commas.
all.words = unlist(strsplit(data.txt, " "))
all.words = unlist(strsplit(all.words, "\\."))
all.words = unlist(strsplit(all.words, "\\,"))

count.table = table(all.words)

# Specify Names you are interested in
> count.table[names(count.table) %in% c("venkatarao", "Naveen")]
all.words
   masters     Naveen      reddy venkatarao 
         2          1          1          2