Skip to content

Step 1: Description of output files needed for generating chr_array

Luca Santuari edited this page Feb 5, 2020 · 1 revision

scripts run per chromosome

script: clipped_read_pos.py

output: clipped_read_pos.json.gz (type: GZip JSON format)

content:

  • tuple with:
    • left_clipped_pos_cnt: dict, keys: chromosome names -> Counter object (python module: collections) with keys:positions, values: count of left clipped reads
    • right_clipped_pos_cnt: dict, keys: chromosome names -> Counter object (python module: collections) with keys:positions, values: count of right clipped reads

script: split_reads.py

output: split_reads.json.gz (type: GZip JSON format)

content:

  • tuple with
    • positions_with_min_support_ls: dict, keys: chromosome names -> list with positions where the number of left split reads >= min_support
    • positions_with_min_support_rs: dict, keys: chromosome names -> list with positions where the number of right split reads >= min_support
    • total_reads_coord_min_support: list of tuples (chr1, pos1, chr2, pos2) where both pos1 and pos2 have number of supporting reads >= min_support
      • supporting reads: left split reads, right split reads or reads with CIGAR 'D' for DEL >= 50bp
    • split_reads: dict of dict of dict (3 nested dict)
      • 1st level dict keys: chromosome names; values: 2nd level dict
      • 2nd level dict keys: "right_F" for right split Forward reads, "left_F" for left split Forward reads, "right_R" for right split Reverse reads, "left_R" for left split Reverse reads; values: 3rd level dict
      • 3rd level dict keys: positions; values: count of split reads according to 2nd level key
    • split_read_distance: dict of dict of dict (3 nested dict)
      • 1st level dict keys: chromosome names; values: 2nd level dict
      • 2nd level dict keys: "right_F" for right split Forward reads, "left_F" for left split Forward reads, "right_R" for right split Reverse reads, "left_R" for left split Reverse reads; values: 3rd level dict
      • 3rd level dict keys: positions; values: list of absolute distances between the split read positions for reads satisfying the 2nd level key

script: clipped_reads.py

output: clipped_reads.json.gz (type: GZip JSON format)

content:

  • tuple with (clipped_reads, clipped_reads_inversion, clipped_reads_duplication, clipped_reads_translocation)
  • clipped_reads: dict of dict of dict (3 nested dict)
    • 1st level dict keys: chromosome names; values: 2nd level dict
    • 2nd level dict keys: ['left_F', 'left_R', 'right_F', 'right_R', 'disc_right_F', 'disc_right_R', 'disc_left_F', 'disc_left_R', 'D_left_F', 'D_left_R', 'D_right_F', 'D_right_R', 'I_F', 'I_R'] values: 3rd level dict
      • 'left_F': left clipped Forward reads
      • 'left_R': left clipped Reverse reads
      • 'right_F': right clipped Forward reads
      • 'right_R': right clipped Reverse reads
      • 'disc_right_F': discordant right clipped Forward reads
      • 'disc_right_R': discordant right clipped Reverse reads
      • 'disc_left_F': discordant left clipped Forward reads
      • 'disc_left_R': discordant left clipped Reverse reads
      • 'D_left_F': Forward reads with CIGAR 'D', leftmost DEL position
      • 'D_left_R': Reverse reads with CIGAR 'D', leftmost DEL position
      • 'D_right_F': Forward reads with CIGAR 'D', rightmost DEL position
      • 'D_right_R': Reverse reads with CIGAR 'D', rightmost DEL position
      • 'I_F': Forward reads with CIGAR 'I', leftmost INS position
      • 'I_R': Reverse reads with CIGAR 'I', leftmost INS position
    • 3rd level dict keys: positions; values: count of reads according to 2nd level key
  • clipped_reads_inversion: dict of dict of dict (3 nested dict)
    • 1st level dict keys: chromosome names; values: 2nd level dict
    • 2nd level dict keys: ['before', 'after'] values: 3rd level dict
      • 'before': reads in read pairs in FF (Forward-Forward) or RR (Reverse-Reverse) orientation where the mate is mapped before the read, both reads are mapped on the same chromosome
      • 'after': reads in read pairs in FF (Forward-Forward) or RR (Reverse-Reverse) orientation where the mate is mapped after the read, both reads are mapped on the same chromosome
    • 3rd level dict keys: positions; values: count of reads according to 2nd level key
  • clipped_reads_duplication: dict of dict of dict (3 nested dict)
    • 1st level dict keys: chromosome names; values: 2nd level dict
    • 2nd level dict keys: ['before', 'after'] values: 3rd level dict
      • 'before': reads in read pairs in FR (Forward-Reverse) orientation where the mate is mapped before the read, both reads are mapped on the same chromosome
      • 'after': reads in read pairs in RF (Reverse-Forward) orientation where the mate is mapped after the read, both reads are mapped on the same chromosome
    • 3rd level dict keys: positions; values: count of reads according to 2nd level key
  • clipped_reads_translocation: dict of dict of dict (3 nested dict)
    • 1st level dict keys: chromosome names; values: 2nd level dict
    • 2nd level dict keys: ['opposite', 'same'] values: 3rd level dict
      • 'opposite': reads in FR (Forward-Reverse) or RF (Reverse-Forward) orientation, read and mate are mapped on the different chromosomes
      • 'same': reads in FF (Forward-Forward) or RR (Reverse-Reverse) orientation, read and mate are mapped on the different chromosomes
    • 3rd level dict keys: positions; values: count of reads according to 2nd level key

scripts run per BAM

script: coverage.py

output: [chromosome_name]_coverage.npy.gz (type: GZip Numpy format)

content:

  • Numpy array with shape (4, chromosome_length):
  • row 1: read coverage for reads mapping on the same chromosome in opposite orientation
  • row 2: read coverage for discordant Forward reads. Discordant reads are determined by is_proper_pair set by bwa mem according to the fragment length distribution. Make sure you are using a recent version of bwa for the mapping. Older versions of BWA set proper pair flag based only correct chromosome and orientation and not on the estimated fragment length distribution.
  • row 3: read coverage for discordant Reverse reads
  • row 4: mean read mapping quality (MAPQ)

script: snv.py

output: [chromosome_name]_snv.npy.gz (type: GZip Numpy format)

content:

  • Numpy array with shape (2, chromosome_length):
  • row 1: median base quality
  • row 2: SNV frequency: number of bases different from the reference over the total number of bases

script: clipped_read_distance.py

output: [chromosome_name]_clipped_read_distance.json.gz (type: GZip JSON format)

content:

  • clipped_read_distance: dict of dict of dict (3 nested dict)
    • 1st level dict keys: forward or reverse read orientation; values: 2nd level dict
    • 2nd level dict keys: ['left', 'right', 'all'] values: 3rd level dict
      • 'left': absolute distance between left clipped read and mate (leftmost position)
      • 'right': absolute distance between right clipped read and mate (leftmost position)
      • 'all': absolute distance between read (all, both clipped and not clipped) and mate (leftmost position)
    • 3rd level dict keys: positions; values: list of distances for reads according to 2nd level key