В этом примере показано, как обрабатывать матрицы подсчета с помощью инструментов выравнивания последовательности. В примере используются белки, связанные с ретинобластомой, болезнью, вызванной опухолью, которая развивается из незрелой сетчатки.
Больше информации о ретинобластоме можно найти в разделе «Гены и болезни» веб-сайта NCBI.
Ссылка «BLink» на этой странице показывает родственные последовательности в разных организмах. Эти ссылки могут часто меняться, поэтому в данном примере можно загрузить набор ранее сохраненных данных из MAT-файла.
load retinoblastoma
Можно также использовать getgenpept
функция для извлечения информации о последовательности из репозитория данных NCBI и загрузки ее в MATLAB.
human = getgenpept('AAA69808','SequenceOnly',true); chicken = getgenpept('NP_989750','SequenceOnly',true); trout = getgenpept('AAD13390','SequenceOnly',true); xenopus = getgenpept('A44879','SequenceOnly',true);
Одним из подходов к изучению связи между этими двумя белками является использование глобального выравнивания со nwalign
функция.
[sc,hvc] = nwalign(human,chicken)
sc = 1.4543e+03
hvc = 3x938 char array
'MPPKTPRKTAATAAAAAAEPPAPPPPPPPEEDPEQDSGPEDLPLVRLEFEETEEPDFTALCQKLKIPDHVRERAWLTWEKVSSVDGVLGGYIQKKKELWGICIFIAAVDLDEMSFTFTELQKNIEISVHKFFNLLKE--I--DT-STKVDNAMSRLLKKYDVLFALFSKLERTCELIYLTQPSSSISTEINSALVLKVSWITFLLAKGEVLQMEDDLVISFQLMLCVLDYFIKLSPPMLLKEPYKTAV--IPINGSPRTPRRGQNRSARIAKQLENDTRIIEVLCKEHECNIDEVKNVYFKNFIPFMNSLGLVTSNGLPEVENLSKRYEEIYLKNKDLDARLFLDHDKTLQTDSIDSFETQRTPRKSNLDEEVNVIPPHTPVRTVMNTIQQLMMILNSASDQPSENLISYFNNCTVNPKESILKRVKDIGYIFKEKFAKAVGQGCVEIGSQRYKLGVRLYYRVMESMLKSEEERLSIQNFSKLLNDNIFHMSLLACALEVVMATYSRSTSQ-NLDSG-TDLSFPWILNVLNLKAFDFYKVIESFIKAEGNLTREMIKHLERCEHRIMESLAWLSDSPLFDLIKQSKDREGPTDHLESACPLNLPLQNNHTAADMYLSPVRSPKKKGSTTRVNSTANAETQATSAFQTQKPLKSTSLSLFYKKVYRLAYLRLNTLCERLLSEHPELEHIIWTLFQHTLQNEYELMRDRHLDQIMMCSMYGICKVKNIDLKFKIIVTAYKDLPHAVQETFKRVLIKEEEYDSIIVFYNSVFMQRLKTNILQYASTRPPTLSPIPHIPRSPYKFPSSPLRIP-GGNIYISPLKSPYKISEGLPTPTKMTPRSRILVSIGESFGTSEKFQKINQMVCNSDRVLKRSAEGSNPPKPLKKLRFDIEGSDEADGSKHLPGESKFQQKLAEMTSTRTRMQKQKMNDSMDTSNKEEK'
'|||| | : |::| : : | : | | :| :||| |: | |:|||: || || |||:||:|:::::::||: ::| :|||| ||:||||:|:|||||:|||||| |:: ||| ||::||| : || |||||:::||| ||||||:||: |:|||| |||| |||| ||:|::|:|||| |||||||||:||||||||||||||:||||||||||||| :||||||:|| : :||| |||||||||:|| :||:::||::||:|||||:||:|||||||| :||||:||||:|:|||||||: |||:|:|:||||||:|||||||||:||| | | : :|||||:| ||||| : |:||||::||||||||||||||:|:||::||:|||||||||::||||||:::|:|||:|||:||||||:|||||||:||||||||||||||||||||||::|||||||||||| ||||||||:|||||:|::|| : |: |||||||||||::|||||||||||||||:| :|||:|||||||||||||||||| |||||||||||||:||| ||: | : ||||||:||||||:|||||||||||:| ::|:| ::| ::: ||||| ||||||||||||:|||||||:|| |||||||:|| :|||||||||||| ||||||||||||||||||||||||:||:|| ||:|||:||:: |||||||||:||:||||||||| ||||:||||||||||:||||||||||||||||:| :|| |:| |:||||||||||||:|:|: :||||||||||||||||:|||||||||||||||||: :||||| |: |||||:|||||||:|||||:|||| ||||||||||||||||||||||:||: ||| :|||'
'MPPK-PLRRAGAARSQRTSPEGGAGTASP---P---GG------TRLEVGEA-E--FVALCDALKAPDSVREKAWMTYQSLAAADGA-SAYNKKKKETWGVCIFIVAIDLDEMTFTFTELLKSLSISVCTFFQFLKEVDVNMDTVSTKVDSTVSRLKKKYDVLLALYHKFERTCGLIYLEQPSSEISAELSSVLVLKNYWITFLLAKGKVLQMEDDLVISFQLLLCVLDYFIKLSPPAMLKEPYKSAVTALTVNGSTRTPRRGQNRNARASKQIDTDTKVIEILCKEHDCNLDEVKNVYFTSFIPFLNSLGVVASNGLPEVDVLSKQYDELYLKNKDIDARLFLDHDETLQPDVIACSQLERTPRKNNPDEEVNHVLPQTPVRAAMNTIQQLMMILNSATDKPSDTLIAYFNNCTVNPEDSILKRVESLGHIFKKKFAEAVGQGCAEIGSQRYQLGVRLYYRVMESMLKSEEERLSVHNFSKLLNDNIFHTSLLACALEIVMATYGRTASQSDGTSAETDLSFPWILNVFDLKAFDFYKVIESFIKVEPSLTRDMIKHLERCEHRIMESLAWQSDSPLFDLIKQSKEREGQTDQPEPTSTLNLPLQHNHTAADLYLSPVRSPKKKASGHPQSGTSNPDAQPSATSQTQKPQKSTSLSLFYKKVFRLAYLRLHTLFFRLLSEHPDLEPLIWTLFQHTLQNESELMRDRHLDQIMMCSMYGICKVKNVDLRFKTIVSAYKELPNTNQETFKRVLIREEQYDSIIVFYNLVFMQKLKTNILQYASNRPPTLSPIPHIPRSPYQFSNSPRRVPAGNNIYISPLKSPYKFSDGFHSPTKMTPRSRILVSIGETFGTSEKFQKINQMVCNSESHVKRSAEPSDAPKPLKRLRFDIEGQDEADGGKHLPQESKFQQKLAEMTSTRTRMQKQKLNDGNDTSANEEK'
В этом выравнивании функция использовала матрицу оценки по умолчанию, BLOSUM62. Различные матрицы скоринга могут давать различные выравнивания. Как найти лучшее выравнивание? Один из подходов состоит в том, чтобы попробовать различные матрицы оценки и искать самый высокий счет. Когда счет от функций выравнивания находится в одной шкале (в этом случае, битах), можно сравнить различные выравнивания, чтобы увидеть, который дает самый высокий счет.
Этот пример использует семейство матриц PAM, хотя используемый подход может также использоваться с семейством матриц оценки BLOSUM. Семейство PAM матриц в Bioinformatics Toolbox™ состоит из 50 матриц, PAM10, PAM20..., PAM490, PAM500.
Берите две последовательности (CAH72243 и CAA51019) и выравнивайте их по каждому представителю семейства PAM, а затем ищите самый высокий счет.
score = zeros(1,50);
fprintf('Trying different PAM matrices ')
Trying different PAM matrices
for step = 1:50 fprintf('.') PamNumber = step * 10; [matrix,info] = pam(PamNumber); score(step) = nwalign(human,chicken,'scoringmatrix',matrix,'scale',info.Scale); end
..................................................
Можно использовать plot
функция для создания графика результатов.
x = 10:10:500; plot(x,score) legend('Human vs. Chicken'); title('Global Alignment Scores for Different PAM Scoring Matrices'); xlabel('PAM matrix');ylabel('Score (bits)');
Можно использовать max
с двумя выходами, чтобы найти самый высокий счет и индекс в векторе результатов, где произошло самое высокое значение. В этом случае самый высокий счет произошел с третьей матрицей, то есть PAM30.
[bestScore, idx] = max(score)
bestScore = 2.2605e+03
idx = 3
Повторите это с разными организмами: ксенопусом и радужной форелью.
xenopusScore = zeros(1,50);
troutScore = zeros(1,50);
fprintf('Trying different PAM matrices ')
Trying different PAM matrices
for step = 1:50 fprintf('.') PamNumber = step * 10; [matrix,info] = pam(PamNumber); xenopusScore(step) = nwalign(human,xenopus,'scoringmatrix',matrix,'scale',info.Scale); troutScore(step) = nwalign(human,trout,'scoringmatrix',matrix,'scale',info.Scale); end
..................................................
Можно использовать команду hold on
чтобы сообщить MATLAB ® добавить новые графики к существующему рисунку. Завершив это, вы должны не забывать отключить эту функцию при помощи hold off
.
hold on plot(x,xenopusScore,'g') plot(x,troutScore,'r') legend({'Human vs. Chicken','Human vs. Xenopus','Human vs. Trout'});box on title('Global Alignment Scores for Different PAM Scoring Matrices'); xlabel('PAM matrix');ylabel('Score (bits)'); hold off
Вы увидите, что различные матрицы дают самые высокие счета для различных организмов. Для человека и ксенопуса лучший счет с PAM40, а для человека и форели лучший счет PAM50.
[bestXScore, Xidx] = max(xenopusScore)
bestXScore = 1607
Xidx = 4
[bestTScore, Tidx] = max(troutScore)
bestTScore = 1484
Tidx = 5
Матрица оценки PAM, дающая лучшее выравнивание для двух последовательностей, является показателем относительного эволюционного интервала, поскольку организмы расходились: Чем меньше число PAM, тем более тесно связаны организмы. Поскольку организмы и белковые семейства между организмами развиваются с широко меняющимися скоростями, нет простой корреляции между расстоянием PAM и эволюционным временем. Однако для анализа определенного семейства белков по нескольким видам соответствующие матрицы PAM обеспечивают относительное эволюционное расстояние между видами и позволяют точное филогенетическое отображение. В этом примере результаты показывают, что последовательность человека более тесно связана с последовательностью курицы, чем с последовательностью лягушки, которая, в свою очередь, более тесно связана, чем последовательность форели.