English version below:
Dzisiaj mówiliśmy o metodach uliniowienia wielu sekwencji. Slajdy są tu: wyk5
Na zajęciach naszym celem jest zapoznanie się z metodami uliniowienia wielu sekwencji w pakiecie Biopython oraz metodami uliniowienia progresywnego. Warto przeczytać odpowiedni rozdział tutorialu biopythona
0. Tutaj warto, aby każdy z Państwa korzystających z serwera jupyter, założył sobie na serwerze Jupyter własny folder, żeby pliki nam się nie mieszały. Proponuję numer indeksu, albo inny identyfikator jednoznaczny.
1.Weźmy na początek naszą rodzinę sekwencji białek histonowych. Jest dostępna na naszym serwerze jupyter w pliku histones.fa Na początek potrzebujemy wczytać je z pliku (SeqIO.parse) przetłumaczyć je na sekwencje białkowe (metoda translate()) i zapisać do pliku fasta (SeqIO.write) wraz z odpowiednimi identyfikatorami i usuniętymi kodonami stopu (*, która powstaje w wyniku translate)
2. Wykorzystajmy program clustalw (Bio.Align.Applications.ClustalwCommandline) do wykonania mulituliniowienia tych sekwencji na naszym serwerze plik wykonywalny jest zainstalowany w katalogu /usr/bin. Po wykonaniu zadania wczytaj uliniowienie z pliku .aln (AlignIO.read format “clustal”) oraz drzewo filogenetyczne z pliku .dnd (Phylo.read format=”newick”) (osoby pracujące na mac’ach mogą zainstalować sobie clustal Omega)
3. Wykorzystaj teraz program muscle (Bio.Align.Applications.MuscleCommandline) do wykonania multiuliniowienia tych samych sekwencji. Wczytaj je z pliku w formacie fasta
4. Stwórz drzewo filogenetyczne na podstawie uzyskanego uliniowienia metodą neighbor joining jak na poprzednich zajęciach. Porównaj to drzewo do drzewa otrzymanego z programu clustalw
5. Powtórz ćwiczenia 2-4 dla większego zbioru sekwencji (np. Human_PAH_homologs). Czy tutaj widoczne są większe różnice między metodami?
6(*). Praca domowa za 2 punkty. Napisz prostą implementację uliniowienia progresywnego, która wykorzystuje globalne uliniowienie z modułu Bio.pairwise2. To będzie wymagać implementacji funkcji call-back dla substytucji profili i niewielkich zmian w samym module pairwise2
English version
0. If you are using our Jupyter server, please make sure that you work in a separate folder that identifies you by name.
1.Firstly, let us take the histones.fa file. We need to parse it (using Bio.SeqIO.parse method), then translate each of them into protein alphabet (using the .translate() method) and save to another file using SeqIO.write( remember about removing the * symbols that represent translations of a stop codon)
2. Let us then use the clustalw (Bio.Align.Applications.ClustalwCommandline) to create a multiple alignment of these sequences (the clustalw executable should be in /usr/bin on the server). After you are able to run it, you need to read the .aln file with the alignment (AlignIO.read(file, format=”clustal”)) and the guide tree from the .dnd file (Phylo.read format=”newick”) (students using apple macs can install clustal Omega)
3. Now, for comparison, you can use the muscle program (Bio.Align.Applications.MuscleCommandline) to create a multiple alignment of the same sequences. It should give you the alignment in a fasta format.
4. You can use neighbor joining algorithm we discussed last week to create the tree based on the muscle alignment and compare it visually to the guide tree from clustalw. Do you see differences?
5. If you still have time, you can repeat assignments 2-4 for a larger set of sequences (e.g. Human_PAH_homologs). Are the differences between trees more visible here?
6(*). Homework assignment(2pts). Please implement a simple progressive alignment method that uses Bio.pairwise2 module. It is not as simple as it seems, as you need to implement profile substitution matrix using a callback function and possibly some changes in bio.pairwise2 module.