Для поиска индификатора геномной сборки в INSDC воспользуемся выдачей скрипта из pr5 семестра 1. У меня это GCF_002104335. В Datasets Genome есть лишь одна запись, датируемая 2017 годом. В Submitted GenBank assembly нужным мне индификатором является GCA_002104335. По этим данным нашла соответствующий протеом в Uniprot. Ptoteom ID: UP000192902, Status: other (тоесть обычный, неизбыточный). Для поиска референсного протеома сначала воспользовалась запросом (taxonomy_id:1121267) AND (proteome_type:1). Результатов не нашлось, поэтому начинаю искать в роду Campylobacter по запросу (taxonomy_id:194) AND (proteome_type:1). Выдалось 20 результов, я выбрала Campylobacter jejuni subsp.(UP000000799) Эта бактерия довольно хорошо изучена, ее статус Standard. Она также патогенна и термофильна. Эти факты вероятно можно будет использовать при дальнейшем сравнении протеомов.
В Proteomes: UP000192902 /// UP000000799
Количество белков: 1,782 /// 1,623
Swiss-prot: 0 /// 475
CPD: Close to standard /// Standard
BUSCO: C:99.8% (S:99.8% D:0%) F:0% M:0.2% /// C:100% (S:100% D:0%) F:0% M:0%
На этом этапе я столкнулась с проблемой(неудивительно). При поиске ферментов, по "CATALYTIC ACTIVITY:" и по "EC=" выдаются разные ответы. Возможно есть белки которые имеют классификацию ферментов, но при этом не имеют каталитической активности. Если использовать KW, то можно столкнуться с проблемой дублирования информации в строках (например "Transmembrane" и "Transmembrane helix"). Будем исходить из того, что если белок имеет классификацию фермента, то является ферментом. В качестве примера для расширенного поиска поставлю в отчете EC, чтобы было заметно насколько показатели различны. Еще можно сделать конвеер с "enzyme", так как в этом случае результат очень мал, мне стало интересно совпадет ли процентное соотношение долей ферментов в двух белках.
569 результатов
472 результата
22 результата
Доля, относительно второго вывода, равна 26,5%
Для третьего 1,23%
581 результат
534 результата
7 результатов
Доля, относительно второго второго, 33%
Для третьего 0,43%
Результат второго вывода кажется мне наиболее логичным, так как Campylobacter cuniculorum считается комменсалом, что означает, что она обычно не вызывает заболеваний у здоровых организмов. Другая бактерия - патогенная, доля ферментов у нее выше. Возможно, для развития кампилобактериоза С.jenuni необходимы специфические дополнительные ферменты. Если оценить результаты по первому поиску, то можно утверждать, что ферментов у C.jenuni все таки больше.
код kw_count1.py в папке term2/pr8, запущен через команду python. права на исполение дала (chmod +x)
код kw_count2.py
C.cuniculorum | C.jenuni |
---|---|
Membrane 398 | Reference proteome 1095 | Transmembrane 386 | Membrane 324 | Transmembrane helix 380 | Transmembrane 316 | Transferase 291 | Transmembrane helix 307 | Metal-binding 243 | Metal-binding 140 | Cytoplasm 204 | Cell membrane 134 | Nucleotide-binding 201 | Transport 128 | Hydrolase 177 | Transferase 124 | ATP-binding 169 | Signal 115 | Cell membrane 163 | Hydrolase 97 |
У обеих бактерий хорошо развита мембранная система белков. Слово 'Metal-binding' частотно у обоих, однако у C. cuniculorum их больше. Возможно у нее происходит много ферментативных рекций, где металлы играют ключевую роль в катализе. Меня немного удивило то, что у этой бактерии довольно много трансфераз, но слово 'ATP-binding' не преобладает над 'Metal-binding', так как кофакторы трансфераз это часто АТФ и и другие нуклеозидтрифосфаты. Из таблицы можно также заметить, что у C.jenuni в топ 10 слов входит 'Hydrolase'. Гидролазы могут взаимодействовать с иммунной системой хозяина, помогая бактерии избегать распознавания и атаки иммунными клетками. Хочу добавить, что при выводе, я ожидала увидеть у патогенной бактерии '3D-structure' и 'Direct protein sequencing'. Эти слова свидетельствуют о хорошей изученности и аннотированности.(поэтому мне захотелось посмотреть колличество статей в Pubmed)
import gzip i = gzip.open("UP000192902.swiss.gz", "rt") o = [] v = [] w = [] for l in i: if l.find('KW') == 0: if l.find("{") != -1: q=[] for el in l: if el != '{': q.append(el) else: break q = ''.join(q[5:]) if q.find('}') != -1: q = q.split() q = ''.join(q[1:]) q = q.strip() o.append(q) k = list(set(o)) for n in range(10): m = max(k, key=o.count) print(m + ' ' + str(o.count(m)) )
0 результатов
Эхххх, зато я теперь знаю, что эта бактерия никому неинтересна, кроме меня.
130 результатов
Ого, респект ей.