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 из командной строки.
Чтобы скачать белковые записи, принадлежащие одному протеому, вам нужно:
- придумать поисковый запрос к UniProtKB, который выдаст все необходимые белки;
- преобразовать запрос в URL, который позволит получить записи в нужном формате;
- написать правильную команду в 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 одинарными кавычками):
В отчете надо указать полную команду, которую вы использовали для скачивания протеома.
3. Где в записи искать указания на ферментативную активность
Существует классификация ферментов по катализируемой реакции, в рамках которой белку присваивают один или несколько кодов EC. Такие коды могут быть указаны в поле DE, а в расширенном поиске на сайте UniProt есть возможность поиска по EC (можно использовать *, если интересует наличие, а не конкретное значение).
Поле СС разделено на тематические блоки, один из которых называется 'CATALYTIC ACTIVITY'. Не думаю, что этот блок может появляться в записях про белки, которые каталитической активностью не обладают.
В UniProt нет общего ключевого слова (поле KW), которое бы присваивалось каждому белку с предсказанной ферментативной активностью. Однако есть, например, ключевое слово 'Hydrolase' (KW-0378).
Названия ферментов, как правило, оканчиваются на 'ase'. Хотя это правило, конечно, не строгое. Кроме того, ферментативную активность могут проявлять белки, основная функция которых не связана с катализом. Например, тубулин является ГТФазой, но в названии белка это никак не отражается.
Все перечисленное можно использовать как для поиска на сайте, так и для поиска по тексту записей в командной строке. Запрос на сайте и конвейер не обязаны использовать информацию из одинаковых полей. Но постарайтесь придумать методы оценки, которые не будут выдавать совсем уж неадекватные результаты. Например, никак не может быть у бактерии/археи всего около сотни ферментов в протеоме.
3 и 4. Работа со сжатыми файлами .gz
Можно было бы распаковать файл с помощью gunzip, как вы это делали в прошлом семестре. Но протеомы все-таки занимают довольно много места на диске, поэтому в этом практикуме требуется так не поступать. Тем более, что работать с файлами .gz совсем не сложно, и при чтении на распаковку данных практически не тратится дополнительного времени.
Для работы с .gz в командной строке можно использовать команду zcat. Программа работает аналогично cat, но предварительно распаковывает файлы. Поэтому zcat, в отличие от cat, имеет смысл использовать в качестве первой команды конвейера в случае работы с одиночным файлом. Примеры:
Еще есть zgrep, который является аналогом grep для файлов .gz, можете использовать его.
Для просмотра сжатых текстовых файлов есть программа zless – аналог less.
Если вы хотите читать файлы .gz из питона, то это тоже делается без проблем. В стандартной библиотеке есть модуть gzip, который позволяет читать и писать файла, сжатые с помощью gzip, ровно так же, как обычные файлы.
4. Предлагаемые характеристики протеома для изучения
Если вам все это не интересно, или совсем не хватает времени, то можете просто проверить, является ли первая аминокислота каждого белка в протеоме метионином. Если в одном из протеомов найдутся белки, последовательность которых не начинается с М, интересно выяснить, с чем это связано. Для получения первой аминокислоты каждого белка из протеома проще всего использовать seqret и правильный USA, но можно обойтись и конвейером из grep и cut. Но придумайте команду самостоятельно! Всегда готов отвечать на вопросы. А за скопированные команды буду наказывать.
Еще можно подсчитать, сколько раз в протеоме встречаются разные ключевые слова. Аккуратно выполнить это задание не так просто, как кажется на первый взгляд. Насколько сложно может быть устроено это поле можете увидеть в записи D6YSU1. Вряд ли получится обойтись средствами командной строки, проще написать скрипт на Python. Только лишь чисел не будет достаточно. Попытайтесь сделать по ним какие-то выводы о протеоме, которые и приведите в отчете.
Аналогично сравнению частот ключевых слов можно сравнить частоты ключей в таблице локальных особенностей. Хотя в данном случае один ключ может встречаться много раз в одной записи, поэтому общие частоты не будут показательными. Попробуйте придумать, как можно подсчитать количество белков в протеоме, в аннотации которых встречается какой-нибудь интересующий вас ключ. Это вполне можно сделать с помощью знакомых вам команд bash, правда не совсем тривиально. Советую обратить внимание на опции -A и -B у grep, может быть они будут полезны.
Как насчет оценки изученности протеома, путем подсчета количества статей из PubMed, на которые есть ссылки в белковых записях? На сколько это хорошая оценка?
В EMBOSS есть полезная программа wordcount, с помощью которой легко можно оценить частоты разных аминокислот в протеоме. Еще полезной может оказаться infoseq.
Лучше придумайте что-нибудь свое. Особенно будет интересно, если оцениваемая характеристика будет специфичной именно для выбранного вами организма, не зря же вы про него обзор в прошлом семестре писали. Например, если известно, что бактерия является патогеном, то можно поискать белки, которые ей могут в этом помогать.