def __init__(self,id,strand=None): if(type(id)!=EssexNode): # not an EssexNode self.transcriptId=id self.strand=strand self.exons=[] self.UTR=[] self.rawExons=None self.stopCodons={"TAG":1,"TGA":1,"TAA":1} self.startCodon=None self.extraFields=None else: # EssexNode essex=id self.transcriptId=essex.getAttribute("ID") self.strand=essex.getAttribute("strand") self.source=essex.getAttribute("source") self.begin=essex.getAttribute("begin") self.end=essex.getAttribute("end") self.geneId=essex.getAttribute("gene") self.substrate=essex.getAttribute("substrate") self.exons=[] self.UTR=[] self.rawExons=None self.startCodon=None self.extraFields=None self.stopCodons={"TAG":1,"TGA":1,"TAA":1} exons=self.exons UTR=self.UTR exonsElem=essex.findChild("exons") if(exonsElem): n=exonsElem.numElements() for i in range(0,n): exon=exonsElem.getIthElem(i) begin=int(exon.getIthElem(0)) end=int(exon.getIthElem(1)) exon=Exon(begin,end,self) exons.append(exon) utrElem=essex.findChild("UTR") if(utrElem): n=utrElem.numElements() for i in range(0,n): exon=utrElem.getIthElem(i) begin=int(exon.getIthElem(0)) end=int(exon.getIthElem(1)) exon=Exon(begin,end,self) UTR.append(exon)