- •Біоінформатика
- •Особливості реалізації
- •Лабораторна робота 1 побудова глобального вирівнювання
- •Обладнання
- •Порядок виконання роботи
- •Тестові приклади
- •Оформлення звіту та порядок його подання
- •Контрольні запитання та завдання
- •Лабораторна робота 2 побудова локального вирівнювання
- •Обладнання
- •Порядок виконання роботи
- •Тестові приклади
- •Оформлення звіту та порядок його подання
- •Контрольні запитання та завдання
- •Лабораторна робота 3 побудова псевдоглобального вирівнювання
- •Реалізація алгоритму
- •Обладнання
- •Порядок виконання роботи
- •Тестові приклади
- •Оформлення звіту та порядок його подання
- •Контрольні запитання та завдання
- •Лабораторна робота 4 загальна функція штрафу
- •Реалізація алгоритму
- •Обладнання
- •Порядок виконання роботи
- •Тестові приклади
- •Оформлення звіту та порядок його подання
- •Контрольні запитання та завдання
- •Лабораторна робота 5 порівняння подібних послідовностей
- •Реалізація алгоритму
- •Обладнання
- •Порядок виконання роботи
- •Тестові приклади
- •Оформлення звіту та порядок його подання
- •Контрольні запитання та завдання
- •Лабораторна робота 6 матриця рам
- •Реалізація алгоритму
- •Обладнання
- •Порядок виконання роботи
- •Тестові приклади
- •Оформлення звіту та порядок його подання
- •Контрольні запитання та завдання
- •Література та посилання
Реалізація алгоритму
#Лабораторная робота. Матриця PAM.
s1 = input('Введіть першу послідовність')
s2 = input('Введіть другу послідовність')
k = input("Введіть кількість PAM")
#Алфавіт амінокислот, потрібний для вірного розташування елементів у матрицях.
ALPHABET = 'ARNDCQEGHILKMFPSTWYV'
# Вірогідності появи різних амінокислот.
Pa = []
# Ініціалізуємо масиви
fa = []
ma = []
for i in range(20):
fa.append(0)
ma.append(0)
Pa.append(0.05)
# Підрахуємо кількість мутацій для кожної амінокислоти
for i in range(len(s1)):
if s1[i] != s2[i]:
n = ALPHABET.find(s1[i])
fa[n] = fa[n] + 1
n = ALPHABET.find(s2[i])
fa[n] = fa[n] + 1
# Підрахуємо загальну кількість мутацій
f = 0
for i in fa:
f = f + i
# Відносна мутабельність кожної амінокіслоти розраховується так:
for i in range(20):
ma[i] = fa[i]/(f*100*Pa[i])
# Ініціалізуємо масиви
fab = []
Mab = []
Sab = []
for i in range(20):
stroka = []
stroka2 = []
stroka3 = []
for j in range(20):
stroka.append(0)
stroka2.append(0)
stroka3.append(0)
fab.append(stroka)
Mab.append(stroka2)
Sab.append(stroka3)
# Підрахуємо конкретну кілкість мутацій однієї амінокислоти в іншу:
for i in range(len(s1)):
if s1[i] != s2[i]:
x = ALPHABET.find(s1[i])
y = ALPHABET.find(s2[i])
fab[x][y] = fab[x][y] + 1
# Підрахуємо 1 PAM.
for i in range(20):
for j in range(20):
if i == j:
Mab[i][j] = 1 - ma[i]
else:
if fa[i] != 0:
Mab[i][j] = fab[i][j] * ma[i] / fa[i]
# Почнемо возведення Mab у ступінь k:
# Результат збережемо у матрицю MabK.
# Дляпочатку створемо MabK як копію Mab:
MabK = []
for i inrange(Mab):
line = []
for j inrange(Mab[i]):
line.append(Mab[i][j])
MabK.append(line)
# k разів помножимо її на матрицю Mab:
for times inrange(k):
result = []
for i inrange(Mab):
line = []
for j inrange(MabK):
element = 0
for r inrange(Mab):
element = element + MabK[i][r] * Mab[r][j]
line.append(element)
result.append(line)
MabK = result
# Імпорт математичної бібліотеки для можливості розрахунку
# десяткового логарифму:
importmath
# Розрахунок вагової матриці для kPAM
for i inrange(20):
for j inrange(20):
if MabK[i][j] != 0:
Sab[i][j] = math.log10(MabK[i][j]/Pa[j])
Обладнання
Комп’ютер з встановленим Python та текстовим редактором.
Порядок виконання роботи
Ознайомитися з методом програмування вагових матриць для різних еволюційних відстаней.
Написати програму для реалізації алгоритму цих розрахунків.
Провести вирівнювання тестового прикладу послідовності відповідно до варіанту без допомоги програми.
Дописати програму для коректного відображення результатів.
Тестові приклади
1 |
sMGISTVILEMCLLWGQVLST tGGWIPRTTDYASLIPSEVPL |
Фрагмент амінокислотної послідовності білка організму людини [2] |
2 |
sAEGSPFPSESTLESTAAEGS t PISLESTLESTVAEGSLIPS |
Фрагмент амінокислотної послідовності організму людини [2] |
3 |
s ASTAGSESSLALRLVNGGDR t CQGRVEVLYRGSWGTVCDDY |
Фрагмент амінокислотної послідовності організму Geobacillusstearothermophilus [3] |
4 |
s WDTNDANVVCRQLGCGWAM t NAKSFSLNEKTEANALIDFI |
Фрагмент амінокислотної послідовності організму Geobacillusstearothermophilus [3] |
5 |
s KDNNLKKLKALLAIMNSFVF t AQVRANLSTNHISLGIIRRA |
Фрагмент амінокислотної послідовностібілка організму Geobacillusstearothermophilus [3] |
6 |
s DNYVNEESELLLEVKVAKAY t GLSFEDFSSILSLFDKIGKD |
Фрагмент амінокислотної послідовностібілка організму Geobacillusstearothermophilus [3] |
7 |
s MSIQHFRVALIPFFAAFCLP t VFAHPETLVKVKDAEDQLGA |
Фрагмент амінокислотної послідовності білка організму E. coli [3] |
8 |
s IELDLNSGKILESFRPEERF t PMVSTFKVLLCGAVLSRVDA |
Фрагмент амінокислотної послідовності білка організму E. coli [3] |
9 |
s AKRTKKVGITGKYGVRYGSS t LRRQVKKLEIQQHARYDCSF |
Фрагментамінокислотноїпослідовності білка Sacaharomyces cerevisial [3] |
10 |
s CGKKTVKRGAAGIWTCSCCK t KTVAGGAYTVSTAAAATVRS |
Фрагмент амінокислотної послідовності білка Saaharomycescerevisial [3] |