Практикум 8

Работа с протеомами: поиск, скачивание и анализ

1. Поиск протеома, соответствующего геномной сборке

  • Ссылка на страницу сборки в NCBI Datasets Genome:

    Ссылка на мою сборку.

  • Идентификаторы последней версии сборки в INSDC и RefSeq:

    NCBI RefSeq assembly: GCF_000764535.1

    Submitted GenBank assembly: GCA_000764535.1

  • Поисковый запрос по UniProt Proteomes:

    (genome_assembly:GCA_000764535.1)

  • Идентификатор протеома:

    UP000033200

  • Статус протеома:

    Status: Reference proteome

2. Поиск и скачивание референсного протеома

  • Использованные поисковые запросы:

    Мой протеом UP000033200 и есть референсный, поэтому я буду работать с ним.

  • Выбранный референсный протеом (ID):

    UP000033200

  • Команда для получения файла протеома:

    wget 'https://rest.uniprot.org/uniprotkb/stream?compressed=true&format=txt&query=(proteome:UP000033200)' -O ~/term2/pr8/UP000033200.swiss.gz

    (публикую эту команду по своему желанию, файл лежит в нужном месте согласно заданию)

3. Оценка числа белков, содержащих альфа-спирали

  • Количество записей с альфа-спиралями (FT HELIX):

    592

  • Количество записей с трансмембранными участками (FT TRANSMEM):

    689

  • Скрипт/конвейер для подсчёта:

    import gzip
    import sys
    
    def count_features(gz_file):
        helix_count = 0
        transmem_count = 0
        total_entries = 0
    
        in_entry = False
        has_helix = False
        has_transmem = False
    
        with gzip.open(gz_file, 'rt') as f:
            for line in f:
                if line.startswith('ID '):
                    if in_entry:
                        if has_helix:
                            helix_count += 1
                        if has_transmem:
                            transmem_count += 1
    
                    in_entry = True
                    has_helix = False
                    has_transmem = False
                    total_entries += 1
    
                if in_entry and line.startswith('FT '):
                    if 'HELIX' in line:
                        has_helix = True
                    if 'TRANSMEM' in line:
                        has_transmem = True
    
                if in_entry and line.startswith('KW '):
                    line_lower = line.lower()
                    if 'helix' in line_lower:
                        has_helix = True
                    if 'transmembrane' in line_lower:
                        has_transmem = True
    
                if line.startswith('//'):
                    if in_entry:
                        if has_helix:
                            helix_count += 1
                        if has_transmem:
                            transmem_count += 1
                    in_entry = False
    
        return total_entries, helix_count, transmem_count
    
    if __name__ == '__main__':
        if len(sys.argv) != 2:
            print("Usage: python3 count_ft.py ")
            sys.exit(1)
    
        total, helix, transmem = count_features(sys.argv[1])
        print(f"Всего записей: {total}")
        print(f"С HELIX (в FT или KW): {helix}")
        print(f"С TRANSMEM (в FT или KW): {transmem}")
                            

    Выводы: В ходе анализа протеома UP000033200 я выявила 3401 запись, из которых 592 аннотации альфа-спиралей (HELIX) и 689 трансмембранных участков (TRANSMEM). Поиск проводился по двум полям - FT и KW - так как (по моим предположениям) для автоматически аннотированных записей информация о трансмембранных спиралях нередко хранится именно в ключевых словах (KW), а не в Features. Такое превышение числа трансмембранных участков над альфа-спиралями видимо является не биологическим противоречием, а различающимися способами аннотации: трансмембранные домены массово предсказываются автоматическими алгоритмами для всех белков протеома, в то время как альфа-спирали чаще аннотируются на основе экспериментальных структур, которых для бактериальных протеомов значительно меньше. Итого полученные цифры отражают не реальное распределение структурных элементов, а особенности аннотационных подходов UniProt.

4. Оценка количества ферментов в протеоме

  • Запрос 1 (по какому полю?):

    (proteome:UP000033200) AND (ec:*)

    Количество находок: 729.

    Предположительно такой способ подсчёта ферментов наиболее точен, так как в поле EC указывается номер официального классификатора ферментов, то есть наличие этого поля - гарантия ферментативной функции белка. Это точный минимум.

  • Запрос 2 (по какому полю?):

    (proteome:UP000033200) AND (protein_name:*ase)

    Количество находок: 1690.

    Многие ферменты заканчиваются суффиксом -аза, но метод поиска по такому принципу далеко не самый точный. Под эту характеристику попадают ферменты с предсказанной активность, но ещё не получившие поле EC, но есть много шума, так как не все ферменты кончаются на -аза, и не все белки на -аза - ферменты.