can not get the alignment result from needle alignment
1
0
Entering edit mode
9.1 years ago
Medhat 9.8k

I am using this script to compare to sequence and parse the result:

from Bio.Emboss.Applications import NeedleCommandline
from Bio import AlignIO

needle_cline = NeedleCommandline(asequence="a.fa",
                bsequence="b.fa",
                gapopen=10, gapextend=0.5, outfile="needle.txt")

filename= "needle.txt"
format = "emboss"

alignments = list(AlignIO.parse(filename, format))

when I try to print the results in the alignments list it gives me only part of the last line

like that

SingleLetterAlphabet() alignment with 2 rows and 2258 columns
TTGATGAGTGGGCACCATGATTGCCCGACTGTTATTACCGTCAA...TCT ref
TGGATGAGTGGGCACCATGATTGCCCGACTGTTATTACCGTCAA...T-- corr

Any idea?

sequence alignment • 2.0k views
ADD COMMENT
0
Entering edit mode
9.1 years ago
Kamil ★ 2.3k

Consider checking the examples in the documentation for the MultipleSeqAlignment class returned by AlignIO.

I guess this might do what you want:

print alignments[:,:]
ADD COMMENT
1
Entering edit mode

I figured it I need to add another loop to get the sequence

for alignment in AlignIO.parse(filename, format):
    for sequence in alignment:
        print(sequence.seq)
ADD REPLY
0
Entering edit mode

I changed the method from parse to read like this

alignments = AlignIO.read(filename, format)
print alignments[:,:]

but, the result is the same

SingleLetterAlphabet() alignment with 2 rows and 2258 columns
TTGATGAGTGGGCACCATGATTGCCCGACTGTTATTACCGTCAA...TCT ref
TGGATGAGTGGGCACCATGATTGCCCGACTGTTATTACCGTCAA...T-- corr

any Idea?

ADD REPLY

Login before adding your answer.

Traffic: 1657 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6