Skip to content
Snippets Groups Projects
ClassSegFeat.py 1.84 KiB
Newer Older
class Segment:
    def __init__(self,id,feature,chr,start,stop):
        self.id=id
        self.features=feature # list of the features on this segment. if thre feature is on the + strand, it will be named '+feature_id', else '-feature_id'

NMarthe's avatar
NMarthe committed
        # position on the original genome
        self.chr=chr
        self.start=int(start)
        self.stop=int(stop)
        # segments précedent et suivant.
        # séquence.
        # cf odgi objets
        
        self.size=self.stop-self.start+1
        
    def __str__(self):
NMarthe's avatar
NMarthe committed
        return f"id={self.id}, position on the original genome={self.chr}:{self.start}-{self.stop}, size={self.size}, features={self.features}"
class Feature:
    def __init__(self,id,type,chr,start,stop,annot,childs,parent,seg):
        self.id=id
        self.type=type
        
NMarthe's avatar
NMarthe committed
        # position on the original genome
        self.chr=chr
        self.start=int(start)
        self.stop=int(stop)
        
        self.size=int(stop)-int(start)+1

        self.pos_start=0 # position sur le premier segment
        self.pos_stop=0 # position sur le dernier segment
        
        self.annot=annot
        self.childs=childs # liste of childs features (exons, cds, etc)
        self.parent=parent
        self.segments_list=seg # list of oriented segment on which the feature is (-s1/+s1, depending on the strand)
NMarthe's avatar
NMarthe committed
            return f"id={self.id}, type={self.type}, segments={self.segments_list}, position on the original genome={self.chr}:{self.start}-{self.stop}, childs={self.childs}, annotation={self.annot}"
NMarthe's avatar
NMarthe committed
            return f"id={self.id}, type={self.type}, segments={self.segments_list}, position on the original genome={self.chr}:{self.start}-{self.stop}, parent={self.parent}, childs={self.childs}, annotation={self.annot}"