# The above imports should allow this program to run in both Python 2 and # Python 3. You might need to update your version of module "future". import sys from FastaReader import FastaReader from FastaWriter import FastaWriter from GffTranscriptReader import GffTranscriptReader if(len(sys.argv)!=4): exit(sys.argv[0]+" <in.fasta> <in.gff> <out.fasta>") (fastaFile,gffFile,outFile)=sys.argv[1:] reader=GffTranscriptReader() transcripts=reader.loadGFF(gffFile) keep=set() for transcript in transcripts: if(transcript.getID()[:3]!="ALT"): continue keep.add(transcript.getSubstrate()) reader=FastaReader(fastaFile) writer=FastaWriter() fh=open(outFile,"wt") while(True): (defline,seq)=reader.nextSequence() if(not defline): break (id,attr)=FastaReader.parseDefline(defline) if(id not in keep): continue writer.addToFasta(defline,seq,fh) fh.close() print("[done]",file=sys.stderr)
# print("length="+str(L)) #filename="/home/bmajoros/1000G/assembly/BRCA1-NA19782.fasta"; filename="/Users/bmajoros/python/test/data/subset.fasta" print(FastaReader.getSize(filename)) [defline,seq]=FastaReader.firstSequence(filename) print(len(seq)) #filename="/home/bmajoros/1000G/assembly/test.fasta" filename="/Users/bmajoros/python/test/data/subset.fasta" hash=FastaReader.readAllAndKeepDefs(filename) for key in hash.keys(): [defline,seq]=hash[key] print(defline) [id,attrs]=FastaReader.parseDefline(defline) print("id="+id) for key,value in attrs.items(): print(key+"="+value) writer=FastaWriter() writer.writeFasta(">ABCD","ATCGATCGTAGCTAGTCTGCGCGTATCGTCAGTCTCTATCGATCGTACTGCGATCTAGCTAGCTGATCGTAGCTTCTATGACTGCTAGTCATCTAGCTAGCTGATCGTAGCTGCGCGCGATATATTGCATCTATGCTATCATTGCATGCTAGCTCTAGCTAGTCGATGCTATCTTAGCTAC","test1.fasta") writer.appendToFasta(">XYZ","GATTACA","test1.fasta") print(Translation.translate(seq)) print("forward:",seq) print("revcomp: ",Translation.reverseComplement(seq))