ПРАКТИКУМ 8

Изучаемый протеом

  • Идентификатор сборки RefSeq: GCF_000014765.1
  • NCBI Datasets Genome: GCF_000014765.1
  • идентификатор сборки INSDC: GCA_000014765.1
  • UniProt Proteomes: у приведенной выше геномной сборки только один протеом в базе UniProt с ID UP000001966, данный протеом имеет статус 'Other proteome' (второстепенный или дополнительный протеом), это связано с тем, что мной рассматривался штамм бактерии Nitrosomonas eutropha, а имеено Nitrosomonas eutropha C91

К сожалению референсный протеом для вида Nitrosomonas eutropha отсутвовал, поэтому мной был применен расшишернный поиск по базе Proteomes. Были применены критерии:

  1. Taxonomy [OC]: род Nitrosomonas (914)
  2. Proteom Type: Reference
Всего таких протеомов оказалось 14 штук, мной был выбран хорошо описанный протеом с ID UP000001416, соответсвующий бактерии Nitrosomonas europaea. Еще одной причиной выбора именно этого референсного протеома стала информация, полученная со страницы изначального протеома. В пункте Pan proteome сказано, что протеом Nitrosomonas eutropha является частью протеома Nitrosomonas europaea
Команда для скачивания:
https://rest.uniprot.org/uniprotkb/stream?compressed=true&format=txt&query=proteome:UP000001416' > UP000001416.swiss.gz 

Поиск белков с ферментативной активностью

1. С помощью расширенного поиска на сайте, выбрав пункт Enzyme classification: * получили 724 результата
2. Помимо этого я решил выбрать с помощью расширенного поиска все белки с active site, их нашлось 217, возможно результат получился меньше, так как поиск по всем ферментам выдает еще и записи отдельных субъединиц, а далеко не все субъединицы ферментов содержат активный сайт. С другой стороны существуют ферменты, где активный сайт слогается из нескольких субъединиц, поэтому и первый и второй вариант дают расхождения
3. Еще один способ оценки количества ферментов в протеоме был основан на наличие в записи белка в строке СС фразы CATALYTIC ACTIVITY. Для оценки использовался bash
Скрипт:

 zcat UP000001416.swiss.gz | grep -e '^ID' -e '^CC' | grep -e '^ID' -e 'ACTIVITY:$' | cut -c1 |  tr -d '\n' | grep -o 'IC' | wc -l 

С помощью этого конвеера нашлось 555 записей с каталитической активностью. Что попадает в интервал двух предыдущих поисков и основываясь на выше приведенных рассуждениях, возможно, дает более релевантные данные (в идеале конечно еще учитывать в СС пункт SUBUNIT и для субъединиц одного фремента считать CATALYTIC ACTIVITY один раз, но я пока не придумал скрипт). Кстати, если в расширенном поиске выбрать Catalytic ativity получаются идентичные результаты, вероятно, он тоже операется на строку CC

Продолжение анализа протеома

В своем миниобзоре по бактерии Nitrosomonas eutropha C91 я упоминал ее устойчивость к тяжелым металлам, что предположительно позволяет использовать эту бактерию в биоремидации. В данном практикуме я решил подробнее изучить данный вопроc. Основываясь на протеоме понять, к каким металлам присутсвует устойчивость и какие белки отвечают за это. Выбор белковых записей основывается на наличие в поле KW фраз 'Metal-binding' и 'resistance'. Существуют разные способы противодействия токсичности тяжелых металлов, в частности связывание с ними определенных белков и нейтрализация их токсичности, так что фразы приведенные выше должны встречаться. Скрипт написан на Python и лежит в файле cod.py, вывод подается в два файла: filtered.txt и ids.txt

#! /usr/bin/env python

import gzip
input_file = "UP000001416.swiss.gz"
output_file = "filtered.txt"
id_file = "ids.txt"

with gzip.open("UP000001416.swiss.gz", "rt", encoding="utf-8") as file:
 content = []
 filtered = []
 name = []
 line = file.readline()
 while line:
     content.append(line)
     line = file.readline()
 part = "".join(content).split("//\n")
 for entry in part:
    lines = entry.splitlines()
    kw_lines = [line for line in lines if line.startswith("KW")]
    kw_text = " ".join(kw_lines).lower()
    if "metal-binding" in kw_text and "resistance" in kw_text:
        filtered.append(entry.strip() + "\n//")
        for line in lines:
            if line.startswith("ID"):
                parts = line.split()
                if len(parts) > 1:
                    name.append(parts[1])

with open(output_file, "w", encoding="utf-8") as file:
    file.write("\n".join(filtered))
with open(id_file, "w", encoding="utf-8") as file:
    file.write("\n".join(name))
Из полученных записей можно узнать, что белки связывают летучую Hg(2+), превращая ее в нелетучую Hg(0), что, действительно, может играть роль в биоремидации.