Exemplo n.º 1
0
 def test_wuss_to_vienna(self):
     """wuss_to_vienna() should transform Wuss into Vienna"""
     empty = WussStructure('.....')
     normal = WussStructure('[.{[<...}}}}')
     pseudo = WussStructure('[..AA..]..aa')
     self.assertEqual(wuss_to_vienna(normal), '(.(((...))))')
     self.assertEqual(wuss_to_vienna(empty), '.....')
     self.assertEqual(wuss_to_vienna(pseudo), '(......)....')
Exemplo n.º 2
0
 def test_wuss_to_vienna(self):
     """wuss_to_vienna() should transform Wuss into Vienna"""
     empty = WussStructure('.....')
     normal = WussStructure('[.{[<...}}}}')
     pseudo = WussStructure('[..AA..]..aa')
     self.assertEqual(wuss_to_vienna(normal),'(.(((...))))')
     self.assertEqual(wuss_to_vienna(empty),'.....')
     self.assertEqual(wuss_to_vienna(pseudo),'(......)....')
Exemplo n.º 3
0
def CMfinderParser(lines):
    """Parser for CMfinder output format

    Parser tested through RfamParser test
    """
    for info, alignment, struct in RfamParser(lines,strict=False):
        struct = wuss_to_vienna(struct)
        pairs = struct.toPairs()
    return [alignment, pairs]
Exemplo n.º 4
0
def CMfinderParser(lines):
    """Parser for CMfinder output format

    Parser tested through RfamParser test
    """
    for info, alignment, struct in RfamParser(lines,strict=False):
        struct = wuss_to_vienna(struct)
        pairs = struct.toPairs()
    return [alignment, pairs]
Exemplo n.º 5
0
    def test_cmalign_from_alignment(self):
        """cmalign_from_alignment should work as expected.
        """
        #Align with cmalign_from_alignment without original alignment.
        aln, struct = cmalign_from_alignment(aln=self.seqs2_aligned,\
            structure_string=self.struct2_aligned_string,\
            seqs=self.seqs1_unaligned_gaps,moltype=RNA,include_aln=False)
        #Check correct alignment
        self.assertEqual(aln.todict(),self.seqs1_aligned)
        #Check correct struct
        self.assertEqual(wuss_to_vienna(str(struct)),\
            self.seqs1_aligned_struct_string)

        #should work with gapped seqs.  Need to test this is taken care of
        # since cmalign segfaults when there are gaps in the seqs to be aligned.
        aln, struct = cmalign_from_alignment(aln=self.seqs2_aligned,\
            structure_string=self.struct2_aligned_string,\
            seqs=self.seqs1_unaligned_gaps,moltype=RNA)
        #alignment should be correct
        self.assertEqual(aln.todict(),self.seqs1_and_seqs2_aligned)
        #structure should be correct
        self.assertEqual(wuss_to_vienna(str(struct)),\
            self.seqs1_and_seqs2_aligned_struct_string)

        #should work with ungapped seqs.
        aln, struct = cmalign_from_alignment(aln=self.seqs2_aligned,\
            structure_string=self.struct2_aligned_string,\
            seqs=self.seqs1_unaligned_gaps,moltype=RNA)
        #alignment should be correct
        self.assertEqual(aln.todict(),self.seqs1_and_seqs2_aligned)
        #structure should be correct
        self.assertEqual(wuss_to_vienna(str(struct)),\
            self.seqs1_and_seqs2_aligned_struct_string)

        #should return standard out
        aln, struct,stdout = cmalign_from_alignment(aln=self.seqs2_aligned,\
            structure_string=self.struct2_aligned_string,\
            seqs=self.seqs1_unaligned_gaps,moltype=RNA,\
            return_stdout=True)
        #Test that standard out is same length as expected
        self.assertEqual(len(stdout.split('\n')),\
            len(CMALIGN_STDOUT.split('\n')))
Exemplo n.º 6
0
    def test_cmalign_from_alignment(self):
        """cmalign_from_alignment should work as expected.
        """
        #Align with cmalign_from_alignment without original alignment.
        aln, struct = cmalign_from_alignment(aln=self.seqs2_aligned,\
            structure_string=self.struct2_aligned_string,\
            seqs=self.seqs1_unaligned_gaps,moltype=RNA,include_aln=False)
        #Check correct alignment
        self.assertEqual(aln.todict(),self.seqs1_aligned)
        #Check correct struct
        self.assertEqual(wuss_to_vienna(str(struct)),\
            self.seqs1_aligned_struct_string)

        #should work with gapped seqs.  Need to test this is taken care of
        # since cmalign segfaults when there are gaps in the seqs to be aligned.
        aln, struct = cmalign_from_alignment(aln=self.seqs2_aligned,\
            structure_string=self.struct2_aligned_string,\
            seqs=self.seqs1_unaligned_gaps,moltype=RNA)
        #alignment should be correct
        self.assertEqual(aln.todict(),self.seqs1_and_seqs2_aligned)
        #structure should be correct
        self.assertEqual(wuss_to_vienna(str(struct)),\
            self.seqs1_and_seqs2_aligned_struct_string)
        
        #should work with ungapped seqs.
        aln, struct = cmalign_from_alignment(aln=self.seqs2_aligned,\
            structure_string=self.struct2_aligned_string,\
            seqs=self.seqs1_unaligned_gaps,moltype=RNA)
        #alignment should be correct
        self.assertEqual(aln.todict(),self.seqs1_and_seqs2_aligned)
        #structure should be correct
        self.assertEqual(wuss_to_vienna(str(struct)),\
            self.seqs1_and_seqs2_aligned_struct_string)
        
        #should return standard out
        aln, struct,stdout = cmalign_from_alignment(aln=self.seqs2_aligned,\
            structure_string=self.struct2_aligned_string,\
            seqs=self.seqs1_unaligned_gaps,moltype=RNA,\
            return_stdout=True)
        #Test that standard out is same length as expected
        self.assertEqual(len(stdout.split('\n')),\
            len(CMALIGN_STDOUT.split('\n')))
Exemplo n.º 7
0
    def test_cmalign_from_file(self):
        """cmalign_from_file should work as expected.
        """
        #Align with cmalign_from_file without original alignment.
        aln,struct = cmalign_from_file(cm_file_path=self.cmfile,\
            seqs=self.seqs1_unaligned,\
            moltype=RNA)
        #Check correct alignment
        self.assertEqual(aln.todict(),self.seqs1_aligned)
        #Check correct struct
        self.assertEqual(wuss_to_vienna(str(struct)),\
            self.seqs1_aligned_struct_string)

        #Align with cmalign_from_file using original alignment.
        aln,struct = cmalign_from_file(cm_file_path=self.cmfile,\
            seqs=self.seqs1_unaligned,\
            moltype=RNA,\
            alignment_file_path=self.aln2_file,\
            include_aln=True)
        #alignment should be correct
        self.assertEqual(aln.todict(),self.seqs1_and_seqs2_aligned)
        #structure should be correct
        self.assertEqual(wuss_to_vienna(str(struct)),\
            self.seqs1_and_seqs2_aligned_struct_string)
Exemplo n.º 8
0
 def test_cmalign_from_file(self):
     """cmalign_from_file should work as expected.
     """
     #Align with cmalign_from_file without original alignment.
     aln,struct = cmalign_from_file(cm_file_path=self.cmfile,\
         seqs=self.seqs1_unaligned,\
         moltype=RNA)
     #Check correct alignment
     self.assertEqual(aln.todict(),self.seqs1_aligned)
     #Check correct struct
     self.assertEqual(wuss_to_vienna(str(struct)),\
         self.seqs1_aligned_struct_string)
     
     #Align with cmalign_from_file using original alignment.
     aln,struct = cmalign_from_file(cm_file_path=self.cmfile,\
         seqs=self.seqs1_unaligned,\
         moltype=RNA,\
         alignment_file_path=self.aln2_file,\
         include_aln=True)
     #alignment should be correct
     self.assertEqual(aln.todict(),self.seqs1_and_seqs2_aligned)
     #structure should be correct
     self.assertEqual(wuss_to_vienna(str(struct)),\
         self.seqs1_and_seqs2_aligned_struct_string)