Exemple #1
0
    def test_readFastaSequence(self):
        sd = SeqDepot.new()
        fixtures = [
            [""">""", [['', '']]],
            [""">1""", [['1', '']]],
            [""">1\n""", [['1', '']]],
            [""">1\nA""", [['1', 'A']]],
            [""">1\nAB""", [['1', 'AB']]],
            [""">1\nAB\n""", [['1', 'AB']]],
            [""">1\nAB\nC""", [['1', 'ABC']]],
            [""">1\nAB\nCD\n""", [['1', 'ABCD']]],
            [""">1\nA\n>""", [['1', 'A'], ['', '']]],
            [""">1\nA\n>2""", [['1', 'A'], ['2', '']]],
            [""">1\nA\n>2\n""", [['1', 'A'], ['2', '']]],
            [""">1\nA\n>2\nA""", [['1', 'A'], ['2', 'A']]],
            [""">1\nA\n>2\nB\n""", [['1', 'A'], ['2', 'B']]],
            [""">1\nA\n>2\nB\n>""", [['1', 'A'], ['2', 'B'], ['', '']]],

            # Trim leading and trailing whitespace
            ["""> 1 \nA\n""", [['1', 'A']]],

            # Invalid symbols
            [""">!@#$\n12345678900""", [['!@#$', '@@@@@@@@@@@']]],

            # Skip empty lines
            [
                """\n\n>1\nAB\n\n\tCD\n\n>2\n\nEF""",
                [['1', 'ABCD'], ['2', 'EF']]
            ],
            [
                """>Ecoli CheY\r\nABCDEF\r\n>Ecoli CheA\r\nGHI\r\nJKL\r\n""",
                [['Ecoli CheY', 'ABCDEF'], ['Ecoli CheA', 'GHIJKL']]
            ]
        ]

        for fixture in fixtures:
            sd = SeqDepot.new()
            fasta, expect = fixture
            actual = []
            fh = io.StringIO(fasta)
            seq = sd.readFastaSequence(fh)
            while seq:
                actual.append(seq)
                seq = sd.readFastaSequence(fh)

            self.assertEqual(len(expect), len(actual))
            i = 0
            for i in range(len(expect)):
                self.assertEqual(expect[i][0], actual[i][0])
                self.assertEqual(expect[i][1], actual[i][1])
Exemple #2
0
    def test_isToolDone(self):
        sd = SeqDepot.new()

        fixtures = [
            [0, '', ''],
            [0, 'bob', ''],
            [0, None, None],
            [0, 'pfam26', None],
            [0, None, 'TTT'],
            [1, 'agfam1', 'T'],
            [1, 'agfam1', 'd'],
            [0, 'agfam1', '-'],
            [0, 'ecf', 'TTT'],
            [1, 'ecf', 'TTdT'],
            [1, 'ecf', 'TTdd'],
            [1, 'ecf', 'TTdd-'],
            [1, 'ecf', 'TTdd-T'],
            [0, 'tigrfam', '------------------'],
            [1, 'tigrfam', '-----------------T'] ]

        i = 0
        for fixture in fixtures:
            expect, toolId, status = fixture
            i += 1
            if expect:
                assert(sd.isToolDone(toolId, status))
            else:
                assert(not sd.isToolDone(toolId, status))
Exemple #3
0
    def test_findOne(self):
        sd = SeqDepot.new()

        ids = 'naytI0dLM_rK2kaC1m3ZSQ'
        seq = 'MNNEPLRPDPDRLLEQTAAPHRGKLKVFFGACAGVGKTWAMLAEAQRLRAQGLDIVVGVVETHGRKDTAAMLEGLAVLPLKRQAYRGRHISEFDLDAALARRPALILMDELAHSNAPGSRHPKRWQDIEELLEAGIDVFTTVNVQHLESLNDVVSGVTGIQVRETVPDPFFDAADDVVLVDLPPDDLRQRLKEGKVYIAGQAERAIEHFFRKGNLIALRELALRRTADRVDEQMRAWRGHPGEEKVWHTRDAILLCIGHNTGSEKLVRAAARLASRLGSVWHAVYVETPALHRLPEKKRRAILSALRLAQELGAETATLSDPAEEKAVVRYAREHNLGKIILGRPASRRWWRRETFADRLARIAPDLDQVLVALDEPPARTINNAPDNRSFKDKWRVQIQGCVVAAALCAVITLIAMQWLMAFDAANLVMLYLLGVVVVALFYGRWPSVVATVINVVSFDLFFIAPRGTLAVSDVQYLLTFAVMLTVGLVIGNLTAGVRYQARVARYREQRTRHLYEMSKALAVGRSPQDIAATSEQFIASTFHARSQVLLPDDNGKLQPLTHPQGMTPWDDAIAQWSFDKGLPAGAGTDTLPGVPYQILPLKSGEKTYGLVVVEPGNLRQLMIPEQQRLLETFTLLVANALERLTLTASEEQARMASEREQIRNALLAALSHDLRTPLTVLFGQAEILTLDLASEGSPHARQASEIRQHVLNTTRLVNNLLDMARIQSGGFNLKKEWLTLEEVVGSALQMLEPGLSSPINLSLPEPLTLIHVDGPLFERVLINLLENAVKYAGAQAEIGIDAHVEGENLQLDVWDNGPGLPPGQEQTIFDKFARGNKESAVPGVGLGLAICRAIVDVHGGTITAFNRPEGGACFRVTLPQQTAPELEEFHEDM'
        obj = sd.findOne(ids, {'fields' : 's,l'})
        self.assertEqual(len(seq), obj['l'])
        self.assertEqual(ids, obj['id'])
        self.assertEqual(seq, obj['s'])

        obj = sd.findOne(ids)
        self.assertEqual(len(seq), obj['l'])
        self.assertEqual(ids, obj['id'])
        self.assertEqual(seq, obj['s'])

        # Attempt to get gis
        obj = sd.findOne(ids, {'fields' : 'x(gi)'})
        assert(obj['x']['gi'])
        assert(len(obj['x']['gi']) > 0)

        # Search via GI, PDB, UniProt, and MD5_Hex
        fixtures = { 'gi' : 1651302, 'uni':'B1X6M6_ECODH', 'md5_hex' : '9dacad23474b33facada4682d66dd949' }

        for fixture in list(fixtures.keys()):
            obj = sd.findOne(fixtures[fixture], {'fields' : 'l', 'type' : fixture})
            assert(obj);
            self.assertEqual(len(seq), obj['l'])
            self.assertEqual(ids, obj['id'])

            # now by pdb
        obj = sd.findOne('4dpk', {'fields' : 'l', 'type' :'pdb'})
        assert(obj)
        self.assertEqual(359, obj['l']);
        self.assertEqual('-0tNbPaXZtNA2gGW668Kqg', obj['id'])
Exemple #4
0
    def test_find(self):
        sd = SeqDepot.new()
        results = sd.find(['naytI0dLM_rK2kaC1m3ZSQ', 'GS8z3QwN5MzpxU0aTuxuaA']);
        self.assertEqual(2, len(results));
        self.assertEqual(894, results[0]['data']['l']);

        results = sd.find('naytI0dLM_rK2kaC1m3ZSQ', {'labelToolData' : 1})
Exemple #5
0
    def test_find(self):
        sd = SeqDepot.new()
        results = sd.find(['naytI0dLM_rK2kaC1m3ZSQ', 'GS8z3QwN5MzpxU0aTuxuaA'])
        self.assertEqual(2, len(results))
        self.assertEqual(894, results[0]['data']['l'])

        results = sd.find('naytI0dLM_rK2kaC1m3ZSQ', {'labelToolData': 1})
Exemple #6
0
 def test_toolNames(self):
     sd = SeqDepot.new()
     toolNames = sd.toolNames()
     checks = {}
     for name in toolNames:
         checks[name] = 1
     assert (checks['das'])
     assert (checks['tigrfam'])
Exemple #7
0
 def test_toolNames(self):
     sd = SeqDepot.new()
     toolNames = sd.toolNames()
     checks = {}
     for name in toolNames:
         checks[name] = 1
     assert(checks['das'])
     assert(checks['tigrfam'])
Exemple #8
0
    def test_readFastaSequence(self):
        sd = SeqDepot.new()
        fixtures = [
            [""">""", [['', '']]],
            [""">1""", [['1', '']]],
            [""">1\n""", [['1', '']]],
            [""">1\nA""", [['1', 'A']]],
            [""">1\nAB""", [['1', 'AB']]],
            [""">1\nAB\n""", [['1', 'AB']]],
            [""">1\nAB\nC""", [['1', 'ABC']]],
            [""">1\nAB\nCD\n""", [['1', 'ABCD']]],
            [""">1\nA\n>""", [['1', 'A'], ['', '']]],
            [""">1\nA\n>2""", [['1', 'A'], ['2', '']]],
            [""">1\nA\n>2\n""", [['1', 'A'], ['2', '']]],
            [""">1\nA\n>2\nA""", [['1', 'A'], ['2', 'A']]],
            [""">1\nA\n>2\nB\n""", [['1', 'A'], ['2', 'B']]],
            [""">1\nA\n>2\nB\n>""", [['1', 'A'], ['2', 'B'], ['', '']]],

                # Trim leading and trailing whitespace
            ["""> 1 \nA\n""", [['1', 'A']]],

            # Invalid symbols
            [""">!@#$\n12345678900""", [['!@#$', '@@@@@@@@@@@']]],

            # Skip empty lines
            ["""\n\n>1\nAB\n\n\tCD\n\n>2\n\nEF""", [['1', 'ABCD'], ['2', 'EF']]],

            [""">Ecoli CheY\r\nABCDEF\r\n>Ecoli CheA\r\nGHI\r\nJKL\r\n""", [['Ecoli CheY', 'ABCDEF'], ['Ecoli CheA', 'GHIJKL']]] ]

        for fixture in fixtures:
            sd = SeqDepot.new()
            fasta, expect = fixture
            actual = []
            fh = io.StringIO(fasta)
            seq = sd.readFastaSequence(fh)
            while seq:
                actual.append(seq)
                seq = sd.readFastaSequence(fh)

            self.assertEqual(len(expect), len(actual))
            i = 0
            for i in range(len(expect)):
                self.assertEqual(expect[i][0], actual[i][0])
                self.assertEqual(expect[i][1], actual[i][1])
Exemple #9
0
 def test_toolFields(self):
     sd = SeqDepot.new()
     self.assertIsNone(sd.toolFields('bob'))
     assert(sd.toolFields('das'))
     names = sd.toolFields('das')
     self.assertEqual(5, len(names))
     self.assertEqual('start', names[0])
     self.assertEqual('stop', names[1])
     self.assertEqual('peak', names[2])
     self.assertEqual('peak_score', names[3])
     self.assertEqual('evalue', names[4])
Exemple #10
0
def getSeqDepot(seq):
    """Fetch seqdepot annotation for sequence"""

    import SeqDepot
    sd = SeqDepot.new()
    aseqid = sd.aseqIdFromSequence(seq)
    try:
        result = sd.findOne(aseqid)
    except Exception, e:
        print e
        result=None
Exemple #11
0
 def test_toolFields(self):
     sd = SeqDepot.new()
     self.assertIsNone(sd.toolFields('bob'))
     assert (sd.toolFields('das'))
     names = sd.toolFields('das')
     self.assertEqual(5, len(names))
     self.assertEqual('start', names[0])
     self.assertEqual('stop', names[1])
     self.assertEqual('peak', names[2])
     self.assertEqual('peak_score', names[3])
     self.assertEqual('evalue', names[4])
Exemple #12
0
    def test_isToolDone(self):
        sd = SeqDepot.new()

        fixtures = [[0, '', ''], [0, 'bob', ''], [0, None, None],
                    [0, 'pfam26', None], [0, None, 'TTT'], [1, 'agfam1', 'T'],
                    [1, 'agfam1', 'd'], [0, 'agfam1', '-'], [0, 'ecf', 'TTT'],
                    [1, 'ecf', 'TTdT'], [1, 'ecf', 'TTdd'],
                    [1, 'ecf', 'TTdd-'], [1, 'ecf', 'TTdd-T'],
                    [0, 'tigrfam', '------------------'],
                    [1, 'tigrfam', '-----------------T']]

        i = 0
        for fixture in fixtures:
            expect, toolId, status = fixture
            i += 1
            if expect:
                assert (sd.isToolDone(toolId, status))
            else:
                assert (not sd.isToolDone(toolId, status))
Exemple #13
0
    def test_findOne(self):
        sd = SeqDepot.new()

        ids = 'naytI0dLM_rK2kaC1m3ZSQ'
        seq = 'MNNEPLRPDPDRLLEQTAAPHRGKLKVFFGACAGVGKTWAMLAEAQRLRAQGLDIVVGVVETHGRKDTAAMLEGLAVLPLKRQAYRGRHISEFDLDAALARRPALILMDELAHSNAPGSRHPKRWQDIEELLEAGIDVFTTVNVQHLESLNDVVSGVTGIQVRETVPDPFFDAADDVVLVDLPPDDLRQRLKEGKVYIAGQAERAIEHFFRKGNLIALRELALRRTADRVDEQMRAWRGHPGEEKVWHTRDAILLCIGHNTGSEKLVRAAARLASRLGSVWHAVYVETPALHRLPEKKRRAILSALRLAQELGAETATLSDPAEEKAVVRYAREHNLGKIILGRPASRRWWRRETFADRLARIAPDLDQVLVALDEPPARTINNAPDNRSFKDKWRVQIQGCVVAAALCAVITLIAMQWLMAFDAANLVMLYLLGVVVVALFYGRWPSVVATVINVVSFDLFFIAPRGTLAVSDVQYLLTFAVMLTVGLVIGNLTAGVRYQARVARYREQRTRHLYEMSKALAVGRSPQDIAATSEQFIASTFHARSQVLLPDDNGKLQPLTHPQGMTPWDDAIAQWSFDKGLPAGAGTDTLPGVPYQILPLKSGEKTYGLVVVEPGNLRQLMIPEQQRLLETFTLLVANALERLTLTASEEQARMASEREQIRNALLAALSHDLRTPLTVLFGQAEILTLDLASEGSPHARQASEIRQHVLNTTRLVNNLLDMARIQSGGFNLKKEWLTLEEVVGSALQMLEPGLSSPINLSLPEPLTLIHVDGPLFERVLINLLENAVKYAGAQAEIGIDAHVEGENLQLDVWDNGPGLPPGQEQTIFDKFARGNKESAVPGVGLGLAICRAIVDVHGGTITAFNRPEGGACFRVTLPQQTAPELEEFHEDM'
        obj = sd.findOne(ids, {'fields': 's,l'})
        self.assertEqual(len(seq), obj['l'])
        self.assertEqual(ids, obj['id'])
        self.assertEqual(seq, obj['s'])

        obj = sd.findOne(ids)
        self.assertEqual(len(seq), obj['l'])
        self.assertEqual(ids, obj['id'])
        self.assertEqual(seq, obj['s'])

        # Attempt to get gis
        obj = sd.findOne(ids, {'fields': 'x(gi)'})
        assert (obj['x']['gi'])
        assert (len(obj['x']['gi']) > 0)

        # Search via GI, PDB, UniProt, and MD5_Hex
        fixtures = {
            'gi': 1651302,
            'uni': 'B1X6M6_ECODH',
            'md5_hex': '9dacad23474b33facada4682d66dd949'
        }

        for fixture in list(fixtures.keys()):
            obj = sd.findOne(fixtures[fixture], {
                'fields': 'l',
                'type': fixture
            })
            assert (obj)
            self.assertEqual(len(seq), obj['l'])
            self.assertEqual(ids, obj['id'])

            # now by pdb
        obj = sd.findOne('4dpk', {'fields': 'l', 'type': 'pdb'})
        assert (obj)
        self.assertEqual(359, obj['l'])
        self.assertEqual('-0tNbPaXZtNA2gGW668Kqg', obj['id'])
Exemple #14
0
    def test_tools(self):
        sd = SeqDepot.new()
        tools = sd.tools()

        assert(tools['das']);
        assert(tools['ecf']);
Exemple #15
0
    def test_tools(self):
        sd = SeqDepot.new()
        tools = sd.tools()

        assert (tools['das'])
        assert (tools['ecf'])
Exemple #16
0
 def test_saveImage(self):
     sd = SeqDepot.new()
     assert(sd.saveImage(3355692, None, {'type' : 'gi'}))
     assert(os.path.isfile('3355692.png'))
     assert(os.path.getsize('3355692.png') > 24)
     os.remove('3355692.png')
Exemple #17
0
 def test_saveImage(self):
     sd = SeqDepot.new()
     assert (sd.saveImage(3355692, None, {'type': 'gi'}))
     assert (os.path.isfile('3355692.png'))
     assert (os.path.getsize('3355692.png') > 24)
     os.remove('3355692.png')