Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ФБТ БИ 2курс / Методичка.docx
Скачиваний:
28
Добавлен:
10.04.2018
Размер:
175.97 Кб
Скачать

Реалізація алгоритму

#Лабораторная робота. Матриця 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. Ознайомитися з методом програмування вагових матриць для різних еволюційних відстаней.

  2. Написати програму для реалізації алгоритму цих розрахунків.

  3. Провести вирівнювання тестового прикладу послідовності відповідно до варіанту без допомоги програми.

  4. Дописати програму для коректного відображення результатів.

Тестові приклади

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]

Соседние файлы в папке ФБТ БИ 2курс