depth-hist.py
# create a histogram of "samtools depth" outputs # the output format is: # #chr <bin range of [start pos-end pos]> <# of counted pos> <total depth> # bin size is fixed at 1Mb import sys def main(): col_chr = 0 col_pos = 1 col_depth = 2 bin_size = 1000000 with sys.stdin as fin: current_chr = "" current_start_pos = 0 current_end_pos = 0 total_depth_in_bin = 0 total_count_in_bin = 0 for line in fin: li = line.rstrip() ls = li.split("\t") chrm = ls[col_chr] pos = int(ls[col_pos]) depth = int(ls[col_depth]) if chrm != current_chr: # chr updated if current_start_pos != 0: print "%s\t%d-%d\t%d\t%d" %(current_chr, current_start_pos, current_end_pos, total_count_in_bin, total_depth_in_bin) current_chr = chrm current_start_pos = pos total_depth_in_bin = depth total_count_in_bin = 1 continue if pos - current_start_pos + 1 > bin_size: # a bin is full print "%s\t%d-%d\t%d\t%d" %(current_chr, current_start_pos, current_end_pos, total_count_in_bin, total_depth_in_bin) current_start_pos = pos total_depth_in_bin = depth total_count_in_bin = 1 continue total_depth_in_bin = total_depth_in_bin + depth total_count_in_bin = total_count_in_bin + 1 current_end_pos = pos #end of file print "%s\t%d-%d\t%d\t%d" %(current_chr, current_start_pos, current_end_pos, total_count_in_bin, total_depth_in_bin) return 0 if __name__ == '__main__': main()
bin size = 1Mb
$ samtools depth -a DRR028634.bam | python ~/depth-hist.py > DRR028634.bam.depth.hist &DRR028634.bam.depth.hist
♀ (XX), but it has an abnormal structure (X + X fragment)
♂ (XY)
♂ (XY)
Trisomy is detected in GLS1 cells.