> Modules non standards > Biopython > Manipulation des alignements
Manipulation des alignements
Multiple Sequence Alignment :
- import : from Bio import AlignIO
- lecture d'alignement :
- pour un seul alignement : align = AlignIO.read('align.txt', 'clustal')
- pour plusieurs alignements : for align in AlignIO.read('align.txt', 'clustal')
- retourne un objet de type Bio.Align.MultipleSeqAlignment
- ecriture d'alignements : AlignIO.write(align, 'myFile.txt', 'clustal')
- propriétés et fonctions :
- il semble que les positions ne soient pas parsées.
Blast (en local) :
- biopython offre un lanceur et parseur pour le blast du NCBI (pas celui de Washington University). Attention, ce n'est pas pour la vieille version blastall (écrite en C), mais la nouvelle version (écrite en C++ en 2009)
- from Bio.Blast.Applications import NcbiblastnCommandline pour blastn (pour blastx par exemple, c'est NcbiblastxCommandline)
- com = NcbiblastnCommandline(query = 'seqFile.fas', db = 'blastDatabase', evalue = 0.01, outfmt = 5, out = 'blast2.xml') : définit la recherche sur la base blast blastDatabase (fichiers blastDatabase.*), avec un format de sortie en xml, mais ne la lance pas !
- si on veut utiliser une seule séquence plutôt qu'une base blast, utiliser subject = 'seqFile2.fas' au lieu de db = 'blastDatabase'.
- pour la lancer, il faut faire ensuite : myStdout, myStderr = com()
- on peut mettre outfmt = 0 pour avoir un format txt traditionnel, ou outfmt = 6 pour le format tableau.
- si l'outil blastn (par exemple) n'est pas dans le path, utiliser en plus l'argument cmd = '/myPath/blastn'
- 2 types de parseurs de blast : parseur du format xml, largement recommandé car beaucoup plus stable, et parseur plain text (mais format plain text évolue souvent selon les versions de blast)
Blast via le web :
- from Bio.Blast import NCBIWWW; result = CBIWWW.qblast('blastn', 'nt', seqRecord.format('fasta')) : par défault, le résultat est sous format xml.
- le type retourné est cStringIO.StringI.
- on peut faire une seule fois result.read() ou alors aussi result.getvalue()
Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert