Вариант 1
1. Дан набор нуклеотидных последовательностей в формате fasta seq.fasta. Каждую последовательность транслировать в белок до первого стоп-кодона. Результат вывести в файл в формате genbank.
2. Написать класс DNAsequence, который представляет последовательность ДНК. Объекты класса содержат поля id (идентификатор последовательности) и последовательность. В конструкторе при создании проверяется, является ли поданная на вход последовательность действительно последовательностью ДНК, при несоответствии выбрасывается исключение. В классе реализовать методы transcribe() и complement().
3. Написать класс MutableDNAsequence, который отличается от DNAsequence наличием метода mutate(), который выбирает случайную позицию и заменяет нуклеотид на случайный. Создать несколько обычных последовательностей и несколько мутабельных, положить в один список. Написать метод rnd_mutate, который выбирает в списке случайным образом последовательность и мутирует ее, если она мутабельная. В противном случает печатает "Can't mutate"
Вариант 2
1. Дано выравнивание в формате stokholm aln.sth. Посчитать длины безделеционных блоков выравнивания. Упорядочить длины безделеционных блоков и вывести на экран.
2. Написать класс Human. Объекты класса содержат поля name (имя), sex (пол),eye_col1 (первый аллель для цвета глаз) и eye_col2 (второй аллель для цвета глаз). Аллели могут принимать значения 0 (голубые глаза) либо 1 (карие, доминантный признак). В классе реализовать метод getPhenotype(), который возвращает цвет глаз. В основной программе реализовать метод getChild(parent1, parent2, newName), который возвращает объект Human, у которого имя = newName, а аллели выбираются случайным образом по одному от каждого родителя. Создать список из нескольких людей. Несколько раз случайным образом выбрать двух людей из списка и породить ребенка, вывести на экран фенотипы родителей и фенотип ребенка. Если parent1 и parent2 оказываются одного пола, выбрасывается ислючение и ребенок не порождается.
3. Написать класс HeteroChromHuman (человек с разноцветными глазами), который отличается от Human тем, что в случае, если аллели разные, возвращает фенотип "один глаз голубой, один карий". Пусть в 20 процентов случаев метод getChild(parent1, parent2, newName) возвращает объект HeteroChromHuman.
Материалы: