Ejemplo n.º 1
0
# ------------------------------------
# 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)
Ejemplo n.º 2
0
# Misc functions
# ------------------------------------

# ------------------------------------
# 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
Ejemplo n.º 3
0
    p.add_argument("-n","--names",dest='names',type=str,metavar="names.lst",required=True,help='A file with sequence names. Can be "stdin".')
    p.add_argument("-o","--output",dest='ofname',type=str, default="stdout", metavar="output.fa",required=False,help='Output file name. Default is "stdout".')
    if len(sys.argv)==1:
        sys.exit(p.print_help())
    args = p.parse_args()
    return args

# ------------------------------------
# Classes
# ------------------------------------

# ------------------------------------
# Main
# ------------------------------------

if __name__=="__main__":
    args = argParser()
    fh = IO.mopen(args.ofname, 'w')
    # Fasta file
    fa = FastaFile(args.ifname)
    f = IO.mopen(args.names)
    for faid in f:
        faid=faid.rstrip()
        seq=fa.getSeq(faid)
        print >> fh, ">"+faid
        print >> fh, seq.formatSeq()
    fa.close()
    IO.mclose(f)
    IO.mclose(fh)