# ------------------------------------ # Classes # ------------------------------------ # ------------------------------------ # Main # ------------------------------------ if __name__=="__main__": # Get parameters args=argParser() fh = IO.mopen(args.ofname) genome=FastaFile(args.genome) for i,item in enumerate(IO.BioReader(args.ifname,args.ftype)): try: strand = item.strand except: strand = "+" seq=genome.getSeq(item.chrom,item.start,item.stop,strand) if len(seq)>0: print >> fh, '>'+(item.id!="NONAME" and item.id or "item_"+str(i)) if args.linelength: seq = seq.formatSeq(args.linelength) if args.case=='u': seq=seq.upper() elif args.case=='l': seq=seq.lower() print >> fh, seq genome.close() IO.mclose(fh)
# ------------------------------------ # Main # ------------------------------------ if __name__=="__main__": args = argParser() fh = IO.mopen(args.ofname, 'w') # Parse chromosome region if args.region: m = re.search("(\S+):(\S*)-(\S*):(\S*)",args.region) chrom, start, end, strand = m.groups() else: chrom = args.chrom start = args.start end = args.end strand= args.strand if not chrom: raise ValueError("chromosome name is required.") start = int(start) if start else None end = int(end) if end else None strand = strand if strand in ["+","-","."] else "+" # Get seq from Fasta file fa = FastaFile(args.ifname) seq = fa.getSeq(chrom,start,end,strand) fa.close() # Print result print >>fh, ">{0}:{1}-{2}:{3}".format(chrom, start and start or "", end and end or "", strand) print >>fh, seq.formatSeq() IO.mclose(fh)