U svijetu bioinformatike, analiza i upoređivanje sekvenci DNK, RNK i proteina je suštinski zadatak. Poravnavanje sekvenci je fundamentalni dio ovoga, a u ovom članku ćemo uroniti u to kako izvršiti poravnavanje FASTA datoteka koristeći BioPython. BioPython je biblioteka otvorenog koda koja pruža alate za računarsku biologiju i bioinformatiku. Omogućava jednostavno rukovanje podacima sekvence i nudi različite vrste poravnanja sekvenci. Proći ćemo kroz proces korak po korak, počevši od uvoza potrebnih biblioteka, čitanja FASTA datoteka i konačno, izvođenja poravnanja.
Uvoz biblioteka i čitanje FASTA datoteka
Prvo, uvezimo potrebne biblioteke za rad sa podacima sekvence u BioPython-u. Trebaće nam SeqIO modul za čitanje FASTA fajlova i PairwiseAligner modul za izvođenje poravnanja sekvenci.
from Bio import SeqIO from Bio.Align import PairwiseAligner
Sada kada imamo uvezene potrebne biblioteke, možemo preći na čitanje FASTA datoteka koje sadrže naše podatke o sekvenci. U ovom primjeru pretpostavljamo da imate dva FASTA fajla, sekvenca1.fasta i sekvenca2.fasta, i želite da ih poravnate.
sequence1 = SeqIO.read("sequence1.fasta", "fasta") sequence2 = SeqIO.read("sequence2.fasta", "fasta")
Gornji kod čita FASTA datoteke i pohranjuje sekvence u varijablama “sequence1” i “sequence2” kao SeqRecord objekte.
Izvođenje poravnanja sekvenci
Nakon što smo uvezli naše sekvence, vrijeme je da izvršimo poravnanje. Biblioteka BioPython nudi različite algoritme poravnanja, ali u ovom primjeru ćemo koristiti PairwiseAligner klasa za parno poravnanje.
aligner = PairwiseAligner() alignment = aligner(sequence1.seq, sequence2.seq)
Gornji kod inicijalizira instancu klase PairwiseAligner i poravnava sekvence pohranjene u varijablama “sequence1” i “sequence2”. Rezultirajući objekt poravnanja sadrži poravnate sekvence i njihove rezultate poravnanja.
Da biste vizualizirali rezultate poravnanja, možete proći kroz poravnanja i odštampati formatirane sekvence zajedno s njihovim rezultatom.
for i, a in enumerate(alignment): print("Alignment", i + 1, " score:", a.score) print(a)
Ovaj isječak koda iterira kroz sva poravnanja u objektu “alignment”, ispisuje broj poravnanja, rezultat poravnanja i poravnate sekvence.
Rad sa višestrukim poravnanjima sekvenci
U nekim slučajevima, možda ćete želeti da poravnate više od dve sekvence istovremeno, takođe poznato kao višestruko poravnanje sekvenci (MSA). BioPython pruža modul tzv AlignIO za rad sa višestrukim poravnanjima sekvenci. Možete integrirati AlignIO u naš prethodni primjer tako što ćete ga uvesti i izvršiti sljedeće korake:
1. Pročitajte i pohranite više sekvenci u listu.
2. Iskoristite MultipleSeqAlignment klase za kreiranje MSA objekta.
3. Izvršite poravnanje koristeći odgovarajući algoritam, kao što je Clustal Omega or MUSCLE.
Slijedi primjer kako možete koristiti AlignIO modul za izvođenje višestrukog slijeda:
from Bio import AlignIO from Bio.Align.Applications import ClustalOmegaCommandline sequence_list = [SeqIO.read("sequence1.fasta", "fasta"), SeqIO.read("sequence2.fasta", "fasta")] clustalo_cline = ClustalOmegaCommandline(infile="my_sequences.fasta", outfile="aligned_sequences.aln", force=True) clustalo_cline() MSA = AlignIO.read("aligned_sequences.aln", "clustal") print(MSA)
Prateći korake navedene u ovom članku, možete uspješno poravnati sekvence koristeći BioPython biblioteku. Biblioteka BioPython pruža fleksibilne i moćne alate za rad sa podacima o sekvencama, od poravnanja u paru do višestrukih poravnanja sekvenci, omogućavajući širok spektar aplikacija u bioinformatici i računarskoj biologiji.