Esempio n. 1
0
def run(bam, track_file_name, window_size):
    track = tb.openFile(track_file_name, "w")
    track_name = bam.split(".bam")[0]
    print(track_name)
    test = checkIfNodeExists(track, track_name)
    if test: return
    bam_file = pysam.Samfile(bam)
    chrs = bam_file.references
    vals = []
    chr_length = 0
    start = 0
    end = window_size
    i = 0
    for chr in chrs:
        chr_length = bam_file.lengths[bam_file.references.index(chr)]
        vals = np.zeros(chr_length / window_size)
        print chr
        #track_chr = track._f_getChild(chr_name)
        print ">> Counting..."
        while end < chr_length:
            vals[i] = float(bam_file.count(reference=chr, start=start, end=end)) / bam_file.mapped
            i += 1
            start = start + window_size
            end = end + window_size
        print ">> Creating array..."    
        track.createArray("/" + track_name, chr, vals)
 #       out_track_chr = out.getNode("/" + out_track_name, chr_name)
        track_util.setTrackAttributes(track, track_name + "/" + chr, 0, chr_length / window_size, chr, window_size)
#        def setTrackAttributes(file, node, start, stop, name, resolution):
#        for name in track_chr._v_attrs._f_list():
#            out.etNodeAttr("/" + "/".join([out_track_name, chr_name]), name, track_chr._v_attrs[name])
    print "Flushing..."
    track.flush()
    track.close()
Esempio n. 2
0
def write_values(obj, pos_vect, chrom, chr_length):
    if obj.output_type == "wig":
        out = "fixedStep chrom={0} start={1} step={2} span={2}\n".format(
            chrom, "1", obj.window_size)
        obj.outfile.write(out)
        for val in pos_vect:
            obj.outfile.write(str(val) + "\n")
    elif obj.output_type == "h5":
        obj.outfile.createArray("/" + obj.track_name, chrom, pos_vect)
        track_util.setTrackAttributes(obj.outfile,
                                      obj.track_name + "/" + chrom, 0,
                                      chr_length / obj.window_size, chrom,
                                      obj.window_size)
Esempio n. 3
0
def write_values(obj, pos_vect, chrom, chr_length):
    if obj.output_type == "wig":
        out = "fixedStep chrom={0} start={1} step={2} span={2}\n".format(chrom, 
                                                                         "1", 
                                                                         obj.window_size)
        obj.outfile.write(out)
        for val in pos_vect:
            obj.outfile.write(str(val) + "\n")
    elif obj.output_type == "h5":
        obj.outfile.createArray("/" + obj.track_name, chrom, pos_vect)
        track_util.setTrackAttributes(obj.outfile, 
                                      obj.track_name + "/" + chrom, 
                                      0, 
                                      chr_length / obj.window_size, 
                                      chrom, 
                                      obj.window_size)