Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2024

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

Идентификатор своей сборки вы можете узнать из таблицы локальных особенностей генома бактерии/археи. Его же выдавал скрипт из первого пункта заданий практикума 5 прошлого семестра.

Получить соответствующий идентификатор INSDC можно на сайте NCBI с помощью поиска по базе Datasets Genome. Введите в окошко поиска идентификатор сборки RefSeq без указания версии сборки – т.е. без той части идентификатора, которая отделена точкой. Это нужно, чтобы вы нашли последнюю версию сборки, если она вдруг изменилась за полгода. В результате поиска вы должны оказаться на странице сборки, нужный вам идентификатор сборки INSDC указан в поле "Submitted GenBank assembly". Используйте его для поиска по UniProt Proteomes, поиск производите только по соответствующему полю.

Если в UniProt нет протеома, который соответствует последней версии сборки из INSDC, попробуйте предыдущую версию (если версия сборки не первая), может быть сборка обновилась недавно и изменения еще не попали в UniProt. Некоторые сборки INSDC вообще не попадают в UniProt Proteomes по той или иной причине. Если поиск по UniProt Proteomes не выдает результатов, то так и напишите в отчете.

2. Скачивание протеомов

Используйте REST API UniProt для скачивания нужных данных на kodomo из командной строки.

Чтобы скачать белковые записи, принадлежащие одному протеому, вам нужно:

  1. придумать поисковый запрос к UniProtKB, который выдаст все необходимые белки;
  2. преобразовать запрос в URL, который позволит получить записи в нужном формате;
  3. написать правильную команду в bash, которая позволит скачать данные по заданному URL и сохранить их в файл с требуемым именем.

Пункт 1 не должен вызвать затруднений, поищите нужное поле в конструкторе расширенных поисковых запросов.

Пункт 2 сложнее. Как составить нужный URL и описанно в документации к API. В вашем случае URL будет иметь следующий вид:

https://rest.uniprot.org/uniprotkb/stream?compressed=true&format=txt&query=QUERY

Вместо QUERY надо подставить поисковый запрос, подробнее здесь. Обратите внимание на указание формата и наличие сжатия. Именно это позволит вам загрузить полные белковые записи в формате swiss, сжатые с помощью gzip. Формат gzip – это, кажется, все еще самый распространенный способ сжатия файлов в Unix-like системах и интернете. И уж точно самый известный. Он позволяет в среднем в несколько раз уменьшить размер произвольных текстовых файлов. При этом полученный файл можно распаковывать при чтении "на лету", почти без снижения скорости чтения.

В пункте 3 вы можете использовать либо уже знакомый по прошлому семестру wget, либо curl. Большой разницы нет (обратите внимание на экранирование URL одинарными кавычками):

   1 wget 'URL' -O AC.swiss.gz
   2 # или
   3 curl 'URL' > AC.swiss.gz

В отчете надо указать полную команду, которую вы использовали для скачивания протеома.

3. Где в записи искать указания на ферментативную активность

Существует классификация ферментов по катализируемой реакции, в рамках которой белку присваивают один или несколько кодов EC. Такие коды могут быть указаны в поле DE, а в расширенном поиске на сайте UniProt есть возможность поиска по EC (можно использовать *, если интересует наличие, а не конкретное значение).

Поле СС разделено на тематические блоки, один из которых называется 'CATALYTIC ACTIVITY'. Не думаю, что этот блок может появляться в записях про белки, которые каталитической активностью не обладают.

В UniProt нет общего ключевого слова (поле KW), которое бы присваивалось каждому белку с предсказанной ферментативной активностью. Однако есть, например, ключевое слово 'Hydrolase' (KW-0378).

Названия ферментов, как правило, оканчиваются на 'ase'. Хотя это правило, конечно, не строгое. Кроме того, ферментативную активность могут проявлять белки, основная функция которых не связана с катализом. Например, тубулин является ГТФазой, но в названии белка это никак не отражается.

Все перечисленное можно использовать как для поиска на сайте, так и для поиска по тексту записей в командной строке. Запрос на сайте и конвейер не обязаны использовать информацию из одинаковых полей. Но постарайтесь придумать методы оценки, которые не будут выдавать совсем уж неадекватные результаты. Например, никак не может быть у бактерии/археи всего около сотни ферментов в протеоме.

3 и 4. Работа со сжатыми файлами .gz

Можно было бы распаковать файл с помощью gunzip, как вы это делали в прошлом семестре. Но протеомы все-таки занимают довольно много места на диске, поэтому в этом практикуме требуется так не поступать. Тем более, что работать с файлами .gz совсем не сложно, и при чтении на распаковку данных практически не тратится дополнительного времени.

Для работы с .gz в командной строке можно использовать команду zcat. Программа работает аналогично cat, но предварительно распаковывает файлы. Поэтому zcat, в отличие от cat, имеет смысл использовать в качестве первой команды конвейера в случае работы с одиночным файлом. Примеры:

   1 zcat some-file.gz | wc -l
   2 zcat some-file.gz | grep 'что-нибудь' | sort -u
   3 # можно использовать аналогично cat, но сейчас не понадобится
   4 zcat some-file1.gz some-file2.gz some-file3.gz | wc -l

Еще есть zgrep, который является аналогом grep для файлов .gz, можете использовать его.

   1 # Т.е. вместо
   2 zcat some-file.gz | grep 'что-нибудь' | sort -u
   3 # можно писать
   4 zgrep 'что-нибудь' some-file.gz | sort -u

Для просмотра сжатых текстовых файлов есть программа zless – аналог less.

   1 # можно так
   2 zcat some-file.gz | less -S
   3 # но удобнее так
   4 zless -S some-file.gz

Если вы хотите читать файлы .gz из питона, то это тоже делается без проблем. В стандартной библиотеке есть модуть gzip, который позволяет читать и писать файла, сжатые с помощью gzip, ровно так же, как обычные файлы.

   1 import gzip
   2 
   3 # обратите внимание на режим rt
   4 input_file = gzip.open("file.txt.gz", "rt")
   5 # input_file имеет все те же методы, что и объекты файлов,
   6 # получаемые с помощью обычного open
   7 for line in input_file:
   8     print(line.strip())
   9 input_file.close()

4. Предлагаемые характеристики протеома для изучения

Если вам все это не интересно, или совсем не хватает времени, то можете просто проверить, является ли первая аминокислота каждого белка в протеоме метионином. Если в одном из протеомов найдутся белки, последовательность которых не начинается с М, интересно выяснить, с чем это связано. Для получения первой аминокислоты каждого белка из протеома проще всего использовать seqret и правильный USA, но можно обойтись и конвейером из grep и cut. Но придумайте команду самостоятельно! Всегда готов отвечать на вопросы. А за скопированные команды буду наказывать.

Еще можно подсчитать, сколько раз в протеоме встречаются разные ключевые слова. Аккуратно выполнить это задание не так просто, как кажется на первый взгляд. Насколько сложно может быть устроено это поле можете увидеть в записи D6YSU1. Вряд ли получится обойтись средствами командной строки, проще написать скрипт на Python. Только лишь чисел не будет достаточно. Попытайтесь сделать по ним какие-то выводы о протеоме, которые и приведите в отчете.

Аналогично сравнению частот ключевых слов можно сравнить частоты ключей в таблице локальных особенностей. Хотя в данном случае один ключ может встречаться много раз в одной записи, поэтому общие частоты не будут показательными. Попробуйте придумать, как можно подсчитать количество белков в протеоме, в аннотации которых встречается какой-нибудь интересующий вас ключ. Это вполне можно сделать с помощью знакомых вам команд bash, правда не совсем тривиально. Советую обратить внимание на опции -A и -B у grep, может быть они будут полезны.

Как насчет оценки изученности протеома, путем подсчета количества статей из PubMed, на которые есть ссылки в белковых записях? На сколько это хорошая оценка?

В EMBOSS есть полезная программа wordcount, с помощью которой легко можно оценить частоты разных аминокислот в протеоме. Еще полезной может оказаться infoseq.

Лучше придумайте что-нибудь свое. Особенно будет интересно, если оцениваемая характеристика будет специфичной именно для выбранного вами организма, не зря же вы про него обзор в прошлом семестре писали. Например, если известно, что бактерия является патогеном, то можно поискать белки, которые ей могут в этом помогать.

2024/2/pr8/hints (последним исправлял пользователь is_rusinov 2025-04-03 21:01:24)