Kodomo

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

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

1. Пурин или пиримидин

Нужно овладеть

(1) пользователь вводит данные в строке с обращением к программе так:

python3.6  pr8_nucleobase  G

и ждет ответа. "G" считается первым аргументом из командной строки (нулевой - имя программы, после пробела можно добавлять второй и др. аргументы)

Программа узнаёт про аргументы так. В начале программы пишем:

import(sys)  
    # загружается модуль (файл) sys 
    # с функциями,расширяющими возможности python 
    # В частности,список sys.argv содержит все аргументы 
    # командной строки согласно их порядку в 
 командной строке; разделитель - пробел 

letter = sys.argv[1] 
    # переменная letter содержит в примере
    # строку из одной буквы "G"  

(2) догадайтесь каковы ответы: print(len("ABCD")) print(len([1,2,3,0,-1])

len() пригодится для проверки корректности входных данных

(3) методы строки можно узнать так

python3.6 Запускается python как калькулятор >>>help(str) Появляется список методов строки. Те, которые имеют вид __xxxxx__, пропустите, такие - не для людей :). Ниже них перечислены методы для людей, с описаниями.

Пример, метод строки isdecimal(). Возвращет True, если все символы - цифры. Методы применяются так:

>>>m = "123"
123
>>>m.isdecimal()
True
>>>h = "a125,1"
a125,1
>>>h.isdecimal(h)
False

Найдите нужный метод и примените его, чтобы вместо буквы "a" получить букву "A"

(5) Вот так можно создать словарь:

nucls = { "A":"purine", "C":"pyrimidine", "G":"purine","T":"pyrimidine"}

До двоеточия - ключ словаря. Обязан быть неизменяемым (например,не может быть списком). После двоеточия - значение, может быть данными любого типа

Вот что можно делать, и что вы можете использовать в этой программе

>>> nucls["C"]
pyrimidine
>>> "N" in nucleotides
False
>>> "G" in nucleotides
True

2. Среднее по больнице

Нужно владеть

f = open("my_data.txt",'r') # 'r' - от read, читать; можно опустить 'r',              
                            # так как  по умолчанию подразумевается 
                            # открыть для чтения
                            # открытие резервирует этот файл на диске  чтобы          
                            # избежать конфликтов с другими программами,
                            # которые вдруг захотят работать 
                            # именно с этим файлом. 
                            # f - переменная типа file; методы файла см. ниже
for x in f:                 # цикл for позволяет читать файл строка за строкой;
    print(x)                # выглядит так, как будто мы перебирам элементы из 
                            # списка строк файла. 
                            #На печати появятся все строки файла, одна за одной.
f.close()                   # Сообщили, операционной системе что этот файл мы 
                            # больше не используем

# можно прочесть файл иначе

f = open("my_data.txt")
lines = f.readlines()       # lines в точности, список строк файла!    
f.close()                   # преимущество: можно прочитать любую строку, не по
                            # порядку; например, прочитать строку 
                            # lines[125] или посчитать число строк len(lines)
for x in lines:             # недостаток: файл может быть очень большим и 
    print(x)                # не поместиться в память компьютера

8.Медиана

Нужно владеть

3. Простое число

Нужно владеть

>>>"123".isdecimal()

>>>"-1".isdecimal()

>>>"0".isdecimal()

>>>5.isdecimal()

>>> a = list(range(2,10))) # a - список значений, перебираемых 
                           # "итератором" range. list() - функция, переводящая
                           # аргумент в список, (если это возможно)
                           # (слово итератор понимать не обязательно)  
>>> a
[2,3,4,5,6,7,8,9]

Важно, 2 - первое значение, берутрся все значения меньше 10 c шагом 1 по умолчанию; можно указать шаг третьим параметром

    for n in range(2,10):
        ..... #проверка делит ли n данное число
        .....
        if ....  :
            print(....)
            exit()   # прекращение работы программы
    print(...)

4. Сложение чисел

Нужно овладеть умениями

5. Имена последовательностей

Нужно овладеть умениями

>>>s = " abc defg hklm  "
 abc defg hklm  
>>> s1 = s.strip() 
"abc defg hklm"
>>> s.strip().split(None, 1)# None - деление по пробелам, табуляторам и др. 
["abc","defg hklm"]         #невидимым символам (они называются "white symbols")
                            # 1 что делить надо только первый раз

g = open("sequence_names.txt",'w')# создали файл,открыли файл на запись 
                                  #(т.к. 'w' - от write
g.write(stroka + "\n")            # "\n" - символ конца строки; если его не 
                                  # добавить, то следующая строка запишется в 
                                  # в ту же строку файла
                                  # в этой задаче stroka = name + "\t" +  
                                  # description
                                  # строки имя последовательности name и 
                                  # описание последовательности description вы
                                  # получите при построчном чтении входного 
                                  # файла формата fasta, наткнувшись на
                                  # строку с названием очередной 
                                  # последовательности, т.е. символом ">" в
                                  # первой позиции строки 
g.close()                         # Если что-то открыли, то будьте любезны 
                                  # закрыть уходя :)

6. Кодирующие последовательности

Нужно овладеть навыками:

7. Эволюция как последовательность ошибок

Нужны навыки