Exemple #1
0
    def test_contains(self):
        """MolType contains should return correct result"""
        for i in 'UCAGWSMKRYBDHVN-' + 'UCAGWSMKRYBDHVN-'.lower():
            self.assertContains(RnaMolType, i)
        for i in 'x!@#$%^&ZzQq':
            self.assertNotContains(RnaMolType, i)

        a = MolType(dict.fromkeys('ABC'), add_lower=True)
        for i in 'abcABC':
            self.assertContains(a, i)
        self.assertNotContains(a, 'x')
        b = MolType(dict.fromkeys('ABC'), add_lower=False)
        for i in 'ABC':
            self.assertContains(b, i)
        for i in 'abc':
            self.assertNotContains(b, i)
Exemple #2
0
 def test_init_minimal(self):
     """MolType should init OK with just monomers"""
     a = MolType('Abc')
     self.assertContains(a.Alphabet, 'A')
     self.assertNotContains(a.Alphabet, 'a')  # case-sensitive
     self.assertContains(a.Alphabet, 'b')
     self.assertNotContains(a.Alphabet, 'B')
     self.assertNotContains(a.Alphabet, 'x')
Exemple #3
0
 def test_init_everything(self):
     """MolType should init OK with all parameters set"""
     k = dict.fromkeys
     a = MolType(k('Abc'), Ambiguities={'d':'bc'}, Gaps=k('~'), \
         Complements={'b':'c','c':'b'}, Pairs={}, add_lower=False)
     for i in 'Abcd~':
         self.assertContains(a, i)
     self.assertEqual(a.complement('b'), 'c')
     self.assertEqual(a.complement('AbcAA'), 'AcbAA')
     self.assertEqual(a.firstDegenerate('AbcdA'), 3)
     self.assertEqual(a.firstGap('a~c'), 1)
     self.assertEqual(a.firstInvalid('Abcx'), 3)
Exemple #4
0
 def test_countGaps(self):
     """MolType countGaps should return correct gap count"""
     c = RnaMolType.countGaps
     self.assertEqual(c(''), 0)
     self.assertEqual(c('ACUGUCAGUACGHFSDKJCUICDNINS'), 0)
     self.assertEqual(c('GUACGUIACAKJDC-SDFHJDSFK'), 1)
     self.assertEqual(c('-DSHFUHDSF'), 1)
     self.assertEqual(c('UACHASJAIDS-'), 1)
     self.assertEqual(c('---CGAUgCAU---ACGHc---ACGUCAGU---'), 12)
     a = MolType({'A': 1}, Gaps=dict.fromkeys('!@#$%'))
     c = a.countGaps
     self.assertEqual(c(''), 0)
     self.assertEqual(c('!!!'), 3)
     self.assertEqual(c('!@#$!@#$!@#$'), 12)
     self.assertEqual(c('cguua!cgcuagua@cguasguadc#'), 3)
Exemple #5
0
 def test_gapList(self):
     """MolType gapList should return correct gap positions"""
     g = RnaMolType.gapList
     self.assertEqual(g(''), [])
     self.assertEqual(g('ACUGUCAGUACGHFSDKJCUICDNINS'), [])
     self.assertEqual(g('GUACGUIACAKJDC-SDFHJDSFK'), [14])
     self.assertEqual(g('-DSHFUHDSF'), [0])
     self.assertEqual(g('UACHASJAIDS-'), [11])
     self.assertEqual(g('---CGAUgCAU---ACGHc---ACGUCAGU---'), \
         [0,1,2,11,12,13,19,20,21,30,31,32])
     a = MolType({'A': 1}, Gaps=dict.fromkeys('!@#$%'))
     g = a.gapList
     self.assertEqual(g(''), [])
     self.assertEqual(g('!!!'), [0, 1, 2])
     self.assertEqual(g('!@#$!@#$!@#$'), list(range(12)))
     self.assertEqual(g('cguua!cgcuagua@cguasguadc#'), [5, 14, 25])
Exemple #6
0
 def test_init_everything(self):
     """MolType should init OK with all parameters set"""
     k = dict.fromkeys
     a = MolType(k('Abc'), Ambiguities={'d':'bc'}, Gaps=k('~'), \
         Complements={'b':'c','c':'b'}, Pairs={}, add_lower=False)
     for i in 'Abcd~':
         self.assertContains(a, i)
     self.assertEqual(a.complement('b'), 'c')
     self.assertEqual(a.complement('AbcAA'), 'AcbAA')
     self.assertEqual(a.firstDegenerate('AbcdA'), 3)
     self.assertEqual(a.firstGap('a~c'), 1)
     self.assertEqual(a.firstInvalid('Abcx'), 3)
Exemple #7
0
 def test_gapVector(self):
     """MolType gapVector should return correct gap positions"""
     g = RnaMolType.gapVector
     self.assertEqual(g(''), [])
     self.assertEqual(g('ACUGUCAGUACGHFSDKJCUICDNINS'), [False] * 27)
     self.assertEqual(g('GUACGUIACAKJDC-SDFHJDSFK'),
                      map(bool, map(int, '000000000000001000000000')))
     self.assertEqual(g('-DSHFUHDSF'), map(bool, map(int, '1000000000')))
     self.assertEqual(g('UACHASJAIDS-'), map(bool, map(int,
                                                       '000000000001')))
     self.assertEqual(g('---CGAUgCAU---ACGHc---ACGUCAGU---'), \
      map(bool, map(int,'111000000001110000011100000000111')))
     a = MolType({'A': 1}, Gaps=dict.fromkeys('!@#$%'))
     g = a.gapVector
     self.assertEqual(g(''), [])
     self.assertEqual(g('!!!'), map(bool, [1, 1, 1]))
     self.assertEqual(g('!@#$!@#$!@#$'), [True] * 12)
     self.assertEqual(g('cguua!cgcuagua@cguasguadc#'),
                      map(bool, map(int, '00000100000000100000000001')))
Exemple #8
0
 def test_iter(self):
     """MolType iter should iterate over monomer order"""
     self.assertEqual(list(RnaMolType),
                      ['U', 'C', 'A', 'G', 'u', 'c', 'a', 'g'])
     a = MolType('ZXCV')
     self.assertEqual(list(a), ['Z', 'X', 'C', 'V'])
Exemple #9
0
__email__ = "*****@*****.**"
__status__ = "Production"

#ind some of the standard alphabets to reduce typing
RnaBases = RNA.Alphabets.Base
DnaBases = DNA.Alphabets.Base
AminoAcids = PROTEIN.Alphabets.Base

#the following classes are to preserve compatibility for older test code
#that assumes mixed-case is OK.
RnaMolType = MolType(
    Sequence=sequence.RnaSequence,
    motifset=IUPAC_RNA_chars,
    Ambiguities=IUPAC_RNA_ambiguities,
    label="rna_with_lowercase",
    MWCalculator=RnaMW,
    Complements=IUPAC_RNA_ambiguities_complements,
    Pairs=RnaStandardPairs,
    add_lower=True,
    preserve_existing_moltypes=True,
    make_alphabet_group=True,
)
DnaMolType = MolType(
    Sequence=sequence.DnaSequence,
    motifset=IUPAC_DNA_chars,
    Ambiguities=IUPAC_DNA_ambiguities,
    label="dna_with_lowercase",
    MWCalculator=DnaMW,
    Complements=IUPAC_DNA_ambiguities_complements,
    Pairs=DnaStandardPairs,
    add_lower=True,
    preserve_existing_moltypes=True,
Exemple #10
0
    """
    try:
        validity = isinstance(a, ndarray)
    except:
        validity = False

    return validity


#make an alphabet that allows '.' as additional gaps
DNA_with_more_gaps = MolType(
    Sequence=DnaSequence,
    motifset=IUPAC_DNA_chars,
    Ambiguities=IUPAC_DNA_ambiguities,
    label="dna",
    Gaps=".",
    MWCalculator=DnaMW,
    Complements=IUPAC_DNA_ambiguities_complements,
    Pairs=DnaStandardPairs,
    make_alphabet_group=True,
    ModelSeq=ModelDnaSequence,
)


def degap_fasta_aln(seqs):
    """degap a Fasta aligment.

    seqs: list of label,seq pairs
    """

    for (label, seq) in seqs:
        degapped_seq = Sequence(moltype=DNA_with_more_gaps,