def sample(chr): L=len(chr) pos=int(random.uniform(0,L-100000)) while(pos<L-3): codon=chr[pos:pos+3] if(codon=="ATG"): break pos+=3 if(codon!="ATG"): return -1 codons=0 while(pos<L-3): codon=chr[pos:pos+3] if(codon[0]=='N' or codon[1]=='N' or codon[2]=='N'): return -1 if(stops.get(codon,False)): break codons+=1 pos+=3 return codons #============================ main() ============================== reader=FastaReader(filename) while(True): [defline,seq]=reader.nextSequence() if(not defline): break for i in range(NUM_ORFS): length=sample(seq) if(length<0): continue print(length,flush=True) reader.close()