Я защитил отключенный файл от UniProt с интересующими меня белковыми последовательностями, и теперь я sh извлекаю / сохраняю местоположение трансмембранной области из файла.
файл выглядит так
O75581 UniProtKB Topological domain 1394 1613 . . . Note=Cytoplasmic;Ontology_term=ECO:0000255;evidence=ECO:0000255
O75581 UniProtKB Repeat 63 106 . . . Note=LDL-receptor class B 1
P13688 UniProtKB Transmembrane 429 452 . . . Note=Helical;Ontology_term=ECO:0000255;evidence=ECO:0000255
P13688 UniProtKB Topological domain 453 526 . . . Note=Cytoplasmic;Ontology_term=ECO:0000255;evidence=ECO:0000255
P13688 UniProtKB Domain 35 142 . . . Note=Ig-like V-type;Ontology_term=ECO:0000250;evidence=ECO:0000250|UniProtKB:P31997
P19022 UniProtKB Transmembrane 725 745 . . . Note=Helical;Ontology_term=ECO:0000255;evidence=ECO:0000255
.....
Чтобы извлечь местоположение трансмембранной области и соответствующую начальную конечную позицию, я использовал следующий код
found = []
match = re.compile('(Transmembrane)'"\t"'(\w*)'"\t"'(\w*)')
with open("997_from uniprot.gff", "r") as f:
searchlines = f.readlines()
j=len(searchlines)-1
for i, line in enumerate(searchlines):
found.extend(match.findall(line))
col_Names=["location", "Start", "End"]
domain_position = pd.DataFrame(found,columns=col_Names)
domain_position.head()
, который дает желаемый результат.
+---+---------------+-------+------+
| | location | Start | End |
+---+---------------+-------+------+
| 0 | Transmembrane | 1371 | 1393 |
| 1 | Transmembrane | 429 | 452 |
| 2 | Transmembrane | 725 | 745 |
| 3 | Transmembrane | 646 | 668 |
| 4 | Transmembrane | 324 | 344 |
+---+---------------+-------+------+
Теперь я добавлю sh, чтобы добавить идентификаторы белка в каждую строку сгенерированной таблицы, и я знаю, re.compile = '^(.*?)[ ]'
дает первое слово в строке, но я не уверен, как вставить это в мой код без извлечение ненужных строк?