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

How can I retrive the gene names from the abstracts

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 的 'Dr Jekyll' 和 'Mr Hyde' 特征相反 老化的大脑,将使我们更接近了解其影响并设计出更多 有针对性的 IGF1 相关干预措施。 “

这是我的 pubmed 文本文件摘要。该摘要包含一些基因名称。我怎样才能检索基因名称

通常您可以使用 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]

当然,如果名称拼写错误,这不会找到名称;-)

虽然区分大小写,但应该可行。

首先需要重命名抽象变量(不能以.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 并打印它。

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

输出: Gene Count 0 IGF1 1

使用您的示例数据集,我们可以执行以下操作:

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