Example #1
0
    def test_duplicate(self):
        stream = fstream([(10,12,0.5), (14,15,1.2)], fields=['start','end','score'])
        res = duplicate(stream,'score','score2')
        expected = [(10,12,0.5,0.5), (14,15,1.2,1.2)]
        self.assertListEqual(res.fields,['start','end','score','score2'])
        self.assertEqual(list(res),expected)

        stream = fstream([(10,12,0.5), (14,15,1.2)], fields=['start','end','score'])
        res = duplicate(stream,'score',['s2','s3','s4'])
        expected = [(10,12,0.5,0.5,0.5,0.5), (14,15,1.2,1.2,1.2,1.2)]
        self.assertListEqual(res.fields,['start','end','score','s2','s3','s4'])
        self.assertEqual(list(res),expected)
Example #2
0
    def test_duplicate(self):
        stream = fstream([(10, 12, 0.5), (14, 15, 1.2)],
                         fields=['start', 'end', 'score'])
        res = duplicate(stream, 'score', 'score2')
        expected = [(10, 12, 0.5, 0.5), (14, 15, 1.2, 1.2)]
        self.assertListEqual(res.fields, ['start', 'end', 'score', 'score2'])
        self.assertEqual(list(res), expected)

        stream = fstream([(10, 12, 0.5), (14, 15, 1.2)],
                         fields=['start', 'end', 'score'])
        res = duplicate(stream, 'score', ['s2', 's3', 's4'])
        expected = [(10, 12, 0.5, 0.5, 0.5, 0.5), (14, 15, 1.2, 1.2, 1.2, 1.2)]
        self.assertListEqual(res.fields,
                             ['start', 'end', 'score', 's2', 's3', 's4'])
        self.assertEqual(list(res), expected)
Example #3
0
    def convert_junc_file(self, filename):
        """Convert a .junc SOAPsplice output file to bed format. Return the file name.

        :param filename: (str) name of the .junc file to convert.
        """
        t = track(filename, format='txt', fields=['chr','start','end','strand','score'],
                  chrmeta=self.assembly.chrmeta)
        stream = t.read()
        # Translate chromosome names
        s1 = map_chromosomes(stream, self.assembly.chromosomes)
        # Add junction IDs
        s2 = duplicate(s1,'strand','name')
        C = itertools.count()
        s3 = apply(s2,'name', lambda x: 'junction'+str(C.next()))
        # Convert to bed format
        outfile = unique_filename_in()
        bed = outfile + '.bed'
        out = track(bed, fields=s3.fields, chrmeta=self.assembly.chrmeta)
        out.write(s3)
        return bed
Example #4
0
    def convert_junc_file(self, filename):
        """Convert a .junc SOAPsplice output file to bed format. Return the file name.

        :param filename: (str) name of the .junc file to convert.
        """
        t = track(filename,
                  format='txt',
                  fields=['chr', 'start', 'end', 'strand', 'score'],
                  chrmeta=self.assembly.chrmeta)
        stream = t.read()
        # Translate chromosome names
        s1 = map_chromosomes(stream, self.assembly.chromosomes)
        # Add junction IDs
        s2 = duplicate(s1, 'strand', 'name')
        C = itertools.count()
        s3 = apply(s2, 'name', lambda x: 'junction' + str(C.next()))
        # Convert to bed format
        outfile = unique_filename_in()
        bed = outfile + '.bed'
        out = track(bed, fields=s3.fields, chrmeta=self.assembly.chrmeta)
        out.write(s3)
        return bed