Kodomo

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

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

Профиль pftools

К 30 апр на сайте представить результаты:

Построить профиль домена по выравниванию и найти всех представителей в банке Uniprot/SwissProt.

  1. Подготовьте выравнивание в формате MSF.

Программа pfmake очень строга к msf формату :(. Выравнивание, сохраненное в msf из JalView, не проходит контроль. Как и выравнивание, переведенное в msf с помощью seqret input.msf msf::output.msf - номера колонок оказываются в неположенном месте.

Выход 1: сохранить msf из GenDoc

Выход 2: сдвинуть номера позиций после seqret на положенное место; должно выглядеть так: sample.msf; обратите внимание на положение номеров колонок, например, чисел 1 и 50.

  1. Уберите символы возврата строки. Можно использовать программу noreturn пакета EMBOSS. (Пакет pftools требует юниксовского формата текстовых файлов.)
  2. Добавьте веса последовательностей в выравнивание

pfw my_alignment.msf > weighted_alignment.msf

  1. Создайте профиль

pfmake weighted_alignment.msf /usr/share/pftools23/blosum62.cmp > my.prf

  1. Создайте нормализованный профиль. Нормализация позволяет выбрать универсальный порог веса находки. [см. внизу страницы]


Нормализация профиля

  1. Выбирается банк случайных последовательностей. У нас - /srv/databases/uniprot/sprot_shuffled.fasta (ниже input_shuffled.fasta), банк, полученный перемешиванием каждой из последовательностей swissprot. Для этого была запущена программа shuffle, работает быстро.
  2. Запускается команда поиска по профилю:

pfsearch –C 10 –f my.prf input_shuffled.fasta| sort -nr > scores.txt

Замечание 1. Опция -C с целым значением задает порог на обычный вес. Опция -C с десятичным значением - с точкой - задает порог на нормализованный вес.

Замечание 2. Опция -C 10 отрезает случайные находки с весом меньше 10, уменьшая размер выдачи. Если находок остается достаточное число - несколько тысяч, то их достаточно для нормализации. Число 10 можно изменять.

  1. Запускается команда нормализации профиля

pfscale scores.txt my.prf > scaled.prf


  1. Найдите в SwissProt всех представителей домена, используя поиск по профилю.

Используйте SwissProt в fasta формате: /srv/databases/uniprot/sprot.fasta.

Ниже input.fasta обозначает этот файл.

pfsearch –C 5.5 –f scaled.prf input.fasta| sort -nr > scores.txt

Команда sort используется для сортировки находок по убыванию веса.


Если не было нормализации, то порог, отличающий хорошие находки, надо подбирать глядя на результат. Для этого можно установить порог нормализованного веса (-С 1.0) низким, возможно много ложных находок:

pfsearch –C 1.0 –f my.prf input.fasta| sort -nr > my.xls

Без этапа нормализации (нормализованный вес)= (обычный вес)/100.

Впрочем, в наших заданиях следует использовать этап нормализации и все сказанное - мимо ...

  1. Сравните находки с наличием данного домена в них по аннотациям SwissProt

Создайте таблицу Excel с находками. Отметьте в ней последовательности, в которых имеется домен Pfam. Список последовательностей, содержащих данный домен, был получен при выполнении предыдущих заданий.

  1. Постройте график весов находок pfsearch, отсортированных по убыванию. Ступенька на этом графике можно интерпретировать как порог нормализованного веса для находок из семейства.
  2. Постройте т.н. ROC-кривую, считая находку правильной в том случае, если в ней имеется данный домен по данным Pfam (это не обязательно так, может быть ваш профиль лучше, чем в Pfam; но все-таки, на первый раз примем Pfam за истину :) ). Предложите порог (или пороги) нормализованного веса, дающие малое число ошибок Iго и IIго рода, по сравнению с Pfam.

Замечание. Для построения ROC-кривой условимся считать ее только по полученному (с запасом) списку находок, а не по всему swissprot (иначе специфичность окажется почти 1 для любого порога - swissprot гораздо больше, чем число представителей любого семейства белков).

  1. Напишите заключение. Удалось ли создать профили, позволяющие отличить заданные группы последовательностей?

Нормализация профиля

  1. Выбирается банк случайных последовательностей. У нас - /srv/databases/uniprot/sprot_shuffled.fasta (ниже input_shuffled.fasta), банк, полученный перемешиванием каждой из последовательностей swissprot. Для этого была запущена программа shuffle, работает быстро.
  2. Запускается команда поиска по профилю:

pfsearch –C 10 –f my.prf input_shuffled.fasta| sort -nr > scores.txt

Замечание 1. Опция -C с целым значением задает порог на обычный вес. Опция -C с десятичным значением - с точкой - задает порог на нормализованный вес.

Замечание 2. Опция -C 10 отрезает случайные находки с весом меньше 10, уменьшая размер выдачи. Если находок остается достаточное число - несколько тысяч, то их достаточно для нормализации. Число 10 можно изменять.

  1. Запускается команда нормализации профиля

pfscale scores.txt my.prf > scaled.prf

  1. Для поиска по банку использовать нормализованный профиль. Если не задавать порог нормализованного веса, то используется порог 8.5. Ожидается, что находки с нормализованным весом более чем 8.5 - правильные. Для нашей задачи следует снизить порог

pfsearch –C 5.5 –f scaled.prf input.fasta| sort -nr > scores.txt