Практикум 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, но есть много шума, так как не все ферменты кончаются на -аза, и не все белки на -аза - ферменты.