def write_clustal(self, f): """ write Clustal alignment to a file code from Bio.AlingIO.ClustalIO is used :param f: :return: """ # transform possible unclustal gap characters to dashes clustalized_alig = self._clustalize_alignment(self) writer = ClustalWriter(f) writer.write_alignment(clustalized_alig)
def test_write_read(self): """Checking write/read.""" alignments = (list(ClustalIterator(StringIO(aln_example1))) + list(ClustalIterator(StringIO(aln_example2))) * 2) handle = StringIO() self.assertEqual(3, ClustalWriter(handle).write_file(alignments)) handle.seek(0) for i, a in enumerate(ClustalIterator(handle)): self.assertEqual(a.get_alignment_length(), alignments[i].get_alignment_length())
def test_write_read_single(self): """Testing write/read when there is only one sequence.""" alignment = next(ClustalIterator(StringIO(aln_example1))) # Now thae just the first row as a new alignment: alignment = alignment[0:1] handle = StringIO() ClustalWriter(handle).write_file([alignment]) handle.seek(0) for i, a in enumerate(ClustalIterator(handle)): self.assertEqual(a.get_alignment_length(), alignment.get_alignment_length()) self.assertEqual(len(a), 1)