I have been stuck on a problem for three days... searched everywhere, posted on StackOverflow, still waiting for EMBL to respond to emails...
After aligning sequences with EMBOSSwin
needle() (pairwise global alignments) I get alignment files in
pair, with a
.needle file extension. I want to use Biopython to read these alignments for later analysis.
AlignIO.read(open('alignment.needle'),'emboss') following the instructions in Biopython's wiki but I keep getting an
>>> from Bio import AlignIO >>> alignment = AlignIO.read(open("data/all/out/pair1_alignment.needle"), "emboss")
Traceback (most recent call last): File "<console>", line 1, in <module> File "C:\Python27\lib\Bio\AlignIO\__init__.py", line 423, in read first = next(iterator) File "C:\Python27\lib\Bio\AlignIO\__init__.py", line 370, in parse for a in i: File "C:\Python27\lib\Bio\AlignIO\EmbossIO.py", line 150, in __next__ assert seq.replace("-", "") != "" AssertionError
Example Alignment File:
Download the alignment file here
- Windows 7
- Python version 2.7.3
- Biopython version 1.63
- EMBOSS version 2.10.0-0.8
I suspect this may be related to a warning message I kept getting when actually making the alignments, which was outputted by EMBOSS
Warning: Sequence character string not found in ajSeqCvtKS
Thank you for reading.