def run(args): # logging.basicConfig(level=logging.DEBUG) dbi = DBI.init(args.bam, "bam") out = IO.fopen(args.output, "w") for i in TableIO.parse(IO.fopen(args.input, "r"), "bed12"): print("QR\t", i, file=out) for j in dbi.query(i, method="bam1", strand=args.strand): if compatible_with_transcript(j, i): print("HT\t{}".format(_translate_to_meta(i, j)), file=out) elif not args.hit: print("OP\t{}".format(j), file=out) print("", file=out)
def count_list(beds,bin_num,strand): bin_sum=[0.0 for i in xrange(bin_num)] neg_bin_sum=[0.0 for i in xrange(bin_num)] bin_dis=[[] for i in xrange(bin_num)] neg_bin_dis=[[] for i in xrange(bin_num)] for bed in beds: neg_bed=bed._replace(strand=reverse_strand(bed.strand)) bed_bin=[0.0 for i in xrange(bin_num)] neg_bed_bin=[0.0 for i in xrange(bin_num)] for read in bam.query(bed,"bam1",strand=strand): cdna_length=bed.cdna_length() bin_step=float(cdna_length)/bin_num if compatible_with_transcript(read,bed): gene_bed=_translate(bed,read) bin_start=gene_bed.start*bin_num/cdna_length bin_stop=(gene_bed.stop-1)*bin_num/cdna_length if bin_stop==bin_start: bed_bin[bin_start]+=float(gene_bed.stop-gene_bed.start)/bin_step else: bed_bin[bin_start]+=bin_start+1-float(gene_bed.start)/bin_step bed_bin[bin_stop]+=float(gene_bed.stop)/bin_step-bin_stop for i in xrange(bin_start+1,bin_stop): bed_bin[i]+=1.0 elif compatible_with_transcript(read,neg_bed): gene_bed=_translate(bed,read) bin_start=gene_bed.start*bin_num/cdna_length bin_stop=(gene_bed.stop-1)*bin_num/cdna_length if bin_stop==bin_start: neg_bed_bin[bin_start]+=float(gene_bed.stop-gene_bed.start)/bin_step else: neg_bed_bin[bin_start]+=bin_start+1-float(gene_bed.start)/bin_step neg_bed_bin[bin_stop]+=float(gene_bed.stop)/bin_step-bin_stop for i in xrange(bin_start+1,bin_stop): neg_bed_bin[i]+=1.0 for i in xrange(bin_num): bin_sum[i]+=bed_bin[i] neg_bin_sum[i]+=neg_bed_bin[i] bin_dis[i].append(int(bed_bin[i])) neg_bin_dis[i].append(int(neg_bed_bin[i])) return bin_sum,bin_dis,neg_bin_sum,neg_bin_dis
def run(args): #logging.basicConfig(level=logging.DEBUG) dbi=DBI.init(args.bam,"bam") mapped=dbi.mapped out=IO.fopen(args.output,"w") print("Gene\tRPKM",file=out); for i in TableIO.parse(IO.fopen(args.input,"r"),"bed12"): print(i.id,"\t",end="",file=out) s=0.0 l=i.cdna_length() if args.uniq: for j in dbi.query(i,method="bam1",strand=args.strand,uniq=args.uniq): if compatible_with_transcript(j,i): s+=1.0 else: for j in dbi.query(i,method="bam1",strand=args.strand,uniq=args.uniq): if compatible_with_transcript(j,i): (nh,_,_)=j.itemRgb.split(",") nh=int(nh) s+=1.0/nh rpkm=float(s)*(1000000.0/mapped)*(1000.0/float(l)) print(rpkm,file=out)
def run(args): if os.path.isfile(args.bed + ".tbi"): dbi = DBI.init(args.bed, "tabix", cls=BED12) else: dbi = DBI.init(args.bed, "binindex", cls=BED12) out = IO.fopen(args.output, "w") for i in TableIO.parse(IO.fopen(args.input, "r"), "bed12"): print("QR\t", i, file=out) for j in dbi.query(i): if compatible_with_transcript(j, i): print("HT\t{}".format(_translate_to_meta(i, j)), file=out) elif not args.hit: print("OP\t{}".format(j), file=out) print("", file=out)