Kodomo

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

ДЗ 8

Yandex.ru не очень любит писателей роботов. Duckduckgo тоже не очень дружелюбен, но у него есть прекрасная версия "static html", в которой всё хорошо: https://duckduckgo.com/html/?q=битон (попробуйте посмотреть на исходники этой страницы)

Пользуясь этим поисковиком, представлением, что такое URL, и знанием, что URL не может содержать в себе ни пробелов, ни символов разнообразных кавычек (если он их содержит, то в зашифрованном виде), выполните задания:

  1. Создайте в репозитории папку hw8, и выполняйте дальше это задание в ней
  2. Напишите программу biton.py, которая скачает все тексты первых десяти находок duckduckgo по слову "битон".

  3. Напишите в ней функцию unique(elems), которая получает на вход список, и возвращает из всех упоминаний одного и того же значения только первое. Т.е. unique([1,2,2,3,1,5,2,4,4]) == [1,2,3,5,4]

  4. Напишите программу headers.py, которая выводит на экран из каждого скачанного вами файла первую строку, но не больше 80 символов (под первой строкой имеются в виду строки после очистки текста от html-тэгов).

  5. Посмотрите, тексты каких страничек у вас скачались в первой задаче, сравните с тем, что получается, если потыкать по ссылкам. Добейтесь того, чтобы скачивались правильные страницы.

Биологам

LUCA – last universal common ancestor – общий предок всего живого, что движется и не движется, дышит, фотосинтезирует или хемосинтезирует.

Белок – последовательность аминокислот – самый разнообразный и легкосинтезируемый класс молекул, использующихся живыми организмами для очень широкого круга целей (от микротрубочек клеточного скелета до гистонов и факторов транскрипции, связывающихся с определённой последовательностью ДНК). Выглядят белки примерно так же, как клубок ниток после того, как с ним основательно поиграли кошки. Если белок после этого состоит из одного комка, то говорят, что белок состоит из одного домена, если белок выглядит как нить, на которой навязано n "бород" (запутанных переплетений), то говорят, что этот белок состоит из n доменов. Как правило, домен играет существенную для огранизма роль белка, а окружающие части не играют никакой роли и в лучшем случае занимаются тем, что склеивают несколько доменов, чтобы те далеко не разлетались.

PFAM – база данных известных белков. Смотрите, какая она красивая: http://pfam.xfam.org/family/PF06160#tabview=tab7

Вопрос: были ли многодоменные былки у LUCA, или же то, что сейчас домены, у LUCA было всегда отдельными белками, а в процессе эволюции по разным причинам сложилось так, что некоторые домены живут в одном белке (нанизаны на одну нить).

Как на него отвечать?

  1. нужно найти такие домены, которые бывают у всех царств (а значит, были и у LUCA).
  2. нужно найти у каждого из таких доменов такие доменные архитектуры, которые представлены во всех царствах
  3. нужно проверить, не является ли факт присутствия такой доменной архитектуры у всех ошибкой, то есть нужно отметить разные архитектуры на дереве эволюции и посомотреть, похоже ли, что более древним вариантов был выбранный. (TODO: примеры)

Задание

Сейчас мы работаем с шагом 1

  1. Работаем в папке hw8
  2. Напишите в файле pfam.py функцию letter_families(letter), которая получает на вход букву, с которой начинается название семейства доменов, и возвращает список первых десяти названий доменов, начинающихся с этой буквы.

    • Например, по ссылке http://pfam.xfam.org/family/browse?browse=b можно найти все домены, начинающиеся с буквы b

    • Нас интересует идентификатор домена. Это строка вида PF и пять цифр
  3. Напишите в файле pfam.py функцию families(), которая возвращает список всех доменов PFAM