Я проанализировал мой gff-файл, похожий на этот
O75581 UniProtKB Mutagenesis 1399 1399 . . . Note=Some reduction of palmitoylation%2C and little change in plasma membrane location in the presence of MESD nor in Wnt-signaling activity. Completely abolishes palmitoylation%2C no plasma membrane location%2C greatly reduced Wnt-signaling activity but no effect on ubiquitination%3B when associated with A-1394. Exhibits full Wnt-signaling activity and no change in plasma membrane location in the in presence of MESD%3B when associated with A-1394 and R-1403. C->A;Ontology_term=ECO:0000269;evidence=ECO:0000269|PubMed:18378904;Dbxref=PMID:18378904```
, в кадр данных с поиском по термину "signaling|pathway"
, используя простой grep !egrep -w 'signaling|pathway' 997_from\ uniprot.gff > signaling_pathway_uniprot.csv
.
. Теперь я пытаюсь извлечь имена сигнального пути из набора столбцов строк. Как бы я это сделал? Идея состоит в том, чтобы сохранить слово до "signaling pathway"
вместе с белковым кодом, например, O75581 Wnt signaling pathway
Код, который я использую:
import re
import pandas as pd
found = []
match = re.compile('^(\S+).*?(\w*)'" "'(signaling pathway)')
with open("997_from uniprot.gff", "r") as f:
searchlines = f.readlines()
j=len(searchlines)-1 #with open('997_from uniprot.gff', "r") as raw:
for i, line in enumerate(searchlines): # for rec in raw:
found.extend(match.findall(line))
print(pd.DataFrame(found).shape)
pd.DataFrame(found)
Это дает то, что мне нужно, но снижает результаты только от 997 до 32 Любой совет, как получить сигнальный путь для всех 997 белков?