Пример #1
0
    def __init__(self,
                 start,
                 phase=None,
                 strand='+',
                 pattern=None,
                 pattern_offset=(0, 0),
                 pssm_score=None,
                 gff={}):
        """
        Initialization function of Basal SpliceSite logic
        Recommended is to use only one of the inheriting classes

        @type  start: number
    	@param start: start coord of site (e.g GT) or pattern (e.g. tgtGTcgat)

        @type  phase: number
    	@param phase: [0,1,2] or None

        @type  phase: number
    	@param phase: [0,1,2] or None, default None

        @type  strand: string
    	@param strand: ['+','-'] or None, default '+'

        @type  pattern: string
    	@param pattern: splice site pattern sequence (e.g. tgtGTcgat)

        @type  pattern_offset: tuple
    	@param pattern_offset: tuple with 2 integers, specifying 5p and 3p
                               offset towards actual splice site.
                               e.g. (3,4) for tgtGTcgat

        @type  pssm_score: float
    	@param pssm_score: PSSM score of splice site pattern

        @type  gff: dictionary
    	@param gff: dictionary with gff data. Possible keys are:
                    'fref', 'fmethod', 'fstrand', 'fsource', 'gclass', 'gname'

        """
        BasicGFF.__init__(self)
        self.start = start
        self.strand = strand
        self.phase = phase
        self.end = None  # to be filled in inheriting classes
        self.pos = None  # to be filled in inheriting classes
        self.canonical_donor = "GT"
        self.canonical_acceptor = "AG"
        # pattern, pattern_offset and pssm_score are only truely
        # functional in inheriting classes SpliceDonor and SpliceAcceptor
        self.pattern = pattern
        self.pssm_score = pssm_score
        self._offset_5p = pattern_offset[0]
        self._offset_3p = pattern_offset[1]
        # and some GFF data thingies
        self._gff['fscore'] = self.pssm_score
        self._gff.update(gff)
        # and error-check the data
        self.check()
Пример #2
0
 def __init__(self,start,end,pattern="",gff={}):
     """ """
     BasicGFF.__init__(self)
     self._gff.update(gff)
     self.start      = start
     self.end        = end
     self.pos        = self.start
     self.pattern    = pattern
Пример #3
0
 def __init__(self,pos,gff={}):
     """ """
     BasicGFF.__init__(self)
     self._gff.update(gff)
     self.pos        = pos
     self.start      = self.pos
     self.end        = self.start+3
     self.pssm_score = 1.0  # default, dummy value
     self.phase      = 0
Пример #4
0
 def __init__(self, pos, gff={}):
     """ """
     BasicGFF.__init__(self)
     self._gff.update(gff)
     self.pos = pos
     self.start = self.pos
     self.end = self.start + 3
     self.pssm_score = 1.0  # default, dummy value
     self.phase = 0
Пример #5
0
    def __init__(self, acceptor, donor, gff={}):
        BasicGFF.__init__(self)
        self.donor = donor
        self.acceptor = acceptor

        # init by splice site objects
        self._init_by_splicesites()
        # update gff attributes
        self._gff.update(gff)
Пример #6
0
    def __init__(self,acceptor,donor,gff={}):
        BasicGFF.__init__(self)
        self.donor      = donor
        self.acceptor   = acceptor

        # init by splice site objects
        self._init_by_splicesites()
        # update gff attributes
        self._gff.update(gff)
Пример #7
0
 def __init__(self, pos, gff={}):
     """ """
     BasicGFF.__init__(self)
     self._gff.update(gff)
     self.pos = pos
     self.start = self.pos - 2
     self.end = self.pos
     self.pssm_score = 1.0  # default, dummy value
     self.phase = None  # no phase for this feature!
Пример #8
0
    def __init__(self,start,phase='.',strand='+',pattern=None,
        pattern_offset=(0,0),pssm_score=None,gff={}):
        """
        Initialization function of Basal TranslationalStartSiteBase logic
        Recommended is to use only one of the inheriting classes

        @type  start: number
    	@param start: start coord of site (ATG) or pattern (e.g. nncancATGgcnnn)

        @type  phase: number
    	@param phase: [0,1,2] or None; only relevant when sequence ISA orf

        @type  strand: string
    	@param strand: ['+','-'] or None, default '+'

        @type  pattern: string
    	@param pattern: splice site pattern sequence (e.g. nncancATGgcnnn)

        @type  pattern_offset: tuple
    	@param pattern_offset: tuple with 2 integers, specifying 5p and 3p
                               offset towards actual splice site.
                               e.g. (0,0) for the base class (no PSSM)
                               e.g. (6,5) for nncancATGgcnnn
                               e.g. (9,7) for another implementation

        @type  pssm_score: float
    	@param pssm_score: PSSM score of splice site pattern

        @type  gff: dictionary
    	@param gff: dictionary with gff data. Possible keys are:
                    'fref', 'fmethod', 'fstrand', 'fsource', 'gclass', 'gname'

        """
        # initialize basal BasicGff
        BasicGFF.__init__(self)
        self.start      = start
        self.strand     = strand
        self.phase      = phase
        self.end        = None  # to be filled in inheriting classes
        self.pos        = None  # to be filled in inheriting classes
        self.tss        = None  # to be filled in inheriting classes
        self.canonical_tss = "ATG"
        # pattern, pattern_offset and pssm_score are only truely
        # functional in inheriting class TranslationalStartSite,
        # not in TranslationalStartSiteATG
        self.pattern    = pattern
        self.pssm_score = pssm_score
        self._offset_5p = pattern_offset[0]
        self._offset_3p = pattern_offset[1]
        # update gff dict
        self._gff.update(gff)
        # and error-check the data
        IsProperPhase(self.phase)
        self.check()
Пример #9
0
 def __init__(self, start, end, pattern="", gff={}):
     """ """
     BasicGFF.__init__(self)
     self._gff.update(gff)
     self.start = start
     self.end = end
     self.pos = self.start
     self.pattern = pattern
     self.length = self.end - self.start
     if not self._gff.has_key('fscore'):
         self._gff['fscore'] = self.length
Пример #10
0
 def __init__(self,start,end,pattern="",gff={}):
     """ """
     BasicGFF.__init__(self)
     self._gff.update(gff)
     self.start      = start
     self.end        = end
     self.pos        = self.start
     self.pattern    = pattern
     self.length     = self.end - self.start
     if not self._gff.has_key('fscore'):
         self._gff['fscore'] = self.length
Пример #11
0
    def __init__(self,start,phase=None,strand='+',pattern=None,
        pattern_offset=(0,0),pssm_score=None,gff={}):
        """
        Initialization function of Basal SpliceSite logic
        Recommended is to use only one of the inheriting classes

        @type  start: number
    	@param start: start coord of site (e.g GT) or pattern (e.g. tgtGTcgat)

        @type  phase: number
    	@param phase: [0,1,2] or None

        @type  phase: number
    	@param phase: [0,1,2] or None, default None

        @type  strand: string
    	@param strand: ['+','-'] or None, default '+'

        @type  pattern: string
    	@param pattern: splice site pattern sequence (e.g. tgtGTcgat)

        @type  pattern_offset: tuple
    	@param pattern_offset: tuple with 2 integers, specifying 5p and 3p
                               offset towards actual splice site.
                               e.g. (3,4) for tgtGTcgat

        @type  pssm_score: float
    	@param pssm_score: PSSM score of splice site pattern

        @type  gff: dictionary
    	@param gff: dictionary with gff data. Possible keys are:
                    'fref', 'fmethod', 'fstrand', 'fsource', 'gclass', 'gname'

        """
        BasicGFF.__init__(self)
        self.start      = start
        self.strand     = strand
        self.phase      = phase
        self.end        = None  # to be filled in inheriting classes
        self.pos        = None  # to be filled in inheriting classes
        self.canonical_donor = "GT"
        self.canonical_acceptor = "AG"
        # pattern, pattern_offset and pssm_score are only truely
        # functional in inheriting classes SpliceDonor and SpliceAcceptor
        self.pattern    = pattern
        self.pssm_score = pssm_score
        self._offset_5p = pattern_offset[0]
        self._offset_3p = pattern_offset[1]
        # and some GFF data thingies
        self._gff['fscore'] = self.pssm_score
        self._gff.update(gff)
        # and error-check the data
        self.check()
Пример #12
0
 def __init__(self,start,end,score,tss=None,intron=None,gff={}):
     """
     @attention: when spliced by intron:
                 a) provide Intron object
                 b) provide end coordinate as if UNSPLICED (length*3nt)
     """
     BasicGFF.__init__(self)
     self.start      = start
     self.pos        = self.start
     self.end        = end
     self.length     = self.end - self.start
     self.pssm_score = score
     self.tss        = tss
     self.intron     = intron
     self._gff.update(gff)
     if not self._gff.has_key('fmethod'):
         self._gff['fmethod'] = 'predSignalPeptide'
Пример #13
0
 def __init__(self, start, end, score, tss=None, intron=None, gff={}):
     """
     @attention: when spliced by intron:
                 a) provide Intron object
                 b) provide end coordinate as if UNSPLICED (length*3nt)
     """
     BasicGFF.__init__(self)
     self.start = start
     self.pos = self.start
     self.end = end
     self.length = self.end - self.start
     self.pssm_score = score
     self.tss = tss
     self.intron = intron
     self._gff.update(gff)
     if not self._gff.has_key('fmethod'):
         self._gff['fmethod'] = 'predSignalPeptide'
Пример #14
0
    def __init__(self,donor,acceptor,shared_nts,gff={}):
        # input validation
        IsDonor(donor)
        IsAcceptor(acceptor)
        # initialization
        BasicGFF.__init__(self)
        self._gff.update(gff)
        self.donor      = donor
        self.acceptor   = acceptor
        # init by splice site objects
        self._init_by_splicesites()

        # forward compatibility with IntronConnectingOrfs
        self.nt_from_stop_donor = None
        self.nt_from_stop_acceptor = None

        # set shared nt/aa data
        self.shared_nts = shared_nts 
        self.shared_aa  = ""
        if self.shared_nts:
            self.shared_aa = dna2prot.dna2protein(self.shared_nts)
Пример #15
0
    def togff(self, gff={}):
        """ Overwrites BasicGFF.togff() functionality """
        if not self._gff.has_key('gname'):
            self._gff['gname'] = "%s_%s" % (self.start, self.end)
        if not self._gff.has_key('gclass'):
            self._gff['gclass'] = self.__class__.__name__
        # call basal BasicGFF.togff() function
        gfflines = [BasicGFF.togff(self)]
        # gff default for TSS/ATG
        tss_gff = {
            'fref': self._gff['fref'],
            'gname': self._gff['gname'],
            'gclass': self._gff['gclass'],
        }

        # if SignalPeptide is spliced -> make 2 tracks!
        if self.intron:
            # calculate lengths
            signalp_length = self.end - self.start
            signalp_5p_length = self.intron.donor.pos - self.start
            signalp_3p_length = signalp_length - signalp_5p_length
            # create SignalP 5p and 3p tracks
            exon5p = list(gfflines[0])
            exon3p = list(gfflines[0])
            exon5p[4] = self.intron.donor.pos
            exon3p[3] = self.intron.acceptor.pos + 1
            exon3p[4] = self.intron.acceptor.pos + signalp_3p_length
            if self.tss: exon5p[3] += 3
            gfflines = [tuple(exon5p), tuple(exon3p)]
            if self.tss: gfflines.insert(0, self.tss.togff(gff=tss_gff))
        elif self.tss:
            # correct SignalPeptide start coord to 1nt after the ATG codon
            track = list(gfflines[0])
            track[3] += 3
            gfflines = [tuple(track)]
            gfflines.insert(0, self.tss.togff(gff=tss_gff))
        else:
            pass
        # return list with gff tuples
        return gfflines
Пример #16
0
    def togff(self,gff={}):
        """ Overwrites BasicGFF.togff() functionality """
        if not self._gff.has_key('gname'):
            self._gff['gname'] = "%s_%s" % (self.start,self.end)
        if not self._gff.has_key('gclass'):
            self._gff['gclass'] = self.__class__.__name__
        # call basal BasicGFF.togff() function
        gfflines = [ BasicGFF.togff(self) ]
        # gff default for TSS/ATG
        tss_gff = { 'fref'  : self._gff['fref'],
                    'gname' : self._gff['gname'],
                    'gclass': self._gff['gclass'], }

        # if SignalPeptide is spliced -> make 2 tracks!
        if self.intron:
            # calculate lengths
            signalp_length    = self.end-self.start
            signalp_5p_length = self.intron.donor.pos - self.start
            signalp_3p_length = signalp_length - signalp_5p_length
            # create SignalP 5p and 3p tracks
            exon5p = list(gfflines[0])
            exon3p = list(gfflines[0])
            exon5p[4] = self.intron.donor.pos
            exon3p[3] = self.intron.acceptor.pos + 1
            exon3p[4] = self.intron.acceptor.pos + signalp_3p_length
            if self.tss: exon5p[3]+=3
            gfflines = [ tuple(exon5p), tuple(exon3p) ]
            if self.tss: gfflines.insert(0, self.tss.togff(gff=tss_gff) )
        elif self.tss:
            # correct SignalPeptide start coord to 1nt after the ATG codon
            track = list(gfflines[0])
            track[3]+=3
            gfflines = [ tuple(track) ]
            gfflines.insert(0, self.tss.togff(gff=tss_gff) )
        else:
            pass
        # return list with gff tuples
        return gfflines
Пример #17
0
 def togff(self,gff={}):
     """ Overwrites BasicGFF.togff() """
     if not gff.has_key('gname') and not self._gff.has_key('gname'):
         gff['gname'] = "%s-%s" % (self.start, self.end)
     return BasicGFF.togff(self,gff=gff)
Пример #18
0
 def togff(self, gff={}):
     """ Overwrites BasicGFF.togff() """
     if not gff.has_key('gname'): gff['gname'] = str(self.pos)
     return BasicGFF.togff(self, gff=gff)
Пример #19
0
 def togff(self,gff={}):
     """ Overwrites BasicGFF.togff() """
     if not gff.has_key('gname'): gff['gname'] = str(self.pos)
     return BasicGFF.togff(self,gff=gff)