def test_calc_inbreeding_coeficient(self): variations = {'/calls/GT': numpy.array([[[0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [1, 1], [0, 0]]]), '/variations/alt': numpy.zeros((1, 1))} result = calc_inbreeding_coef(variations, min_num_genotypes=0, chunk_size=None) expected = numpy.array([1 - (0.4 / 0.42)]) assert numpy.allclose(result, expected) variations = {'/calls/GT': numpy.array([]), '/variations/alt': numpy.array([])} result = calc_inbreeding_coef(variations, min_num_genotypes=0, chunk_size=None) assert result.shape[0] == 0
def test_calc_inbreeding_coeficient(self): variations = {'/calls/GT': numpy.array([[[0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [1, 1], [0, 0]]]), '/variations/alt': numpy.zeros((1, 1))} result = calc_inbreeding_coef(variations, min_num_genotypes=0, chunk_size=None) expected = numpy.array([1 - (0.4 / 0.42)]) assert numpy.allclose(result, expected) variations = {'/calls/GT': numpy.array([]), '/variations/alt': numpy.array([])} result = calc_inbreeding_coef(variations, min_num_genotypes=0, chunk_size=None) assert result.shape[0] == 0
def plot_inbreeding_coefficient(variations, max_num_allele, data_dir, window_size, chunk_size=SNPS_PER_CHUNK, min_num_genotypes=MIN_NUM_GENOTYPES_FOR_POP_STAT, write_bg=False, calc_genome_wise=False): # Calculate Inbreeding coefficient distribution inbreed_coef = calc_inbreeding_coef(variations, chunk_size=chunk_size, min_num_genotypes=min_num_genotypes) ic_distrib, bins = histogram(inbreed_coef, 50, range_=(-1, 1)) fpath = join(data_dir, 'inbreeding_coef_distribution.png') fhand = open(fpath, 'w') title = 'Inbreeding coefficient distribution all samples' plot_distrib(ic_distrib, bins, fhand=fhand, mpl_params={'set_xlabel': {'args': ['Inbreeding coefficient'], 'kwargs': {}}, 'set_ylabel': {'args': ['Number of SNPs'], 'kwargs': {}}, 'set_title': {'args': [title], 'kwargs': {}}, 'set_xlim': {'args': [-1, 1], 'kwargs': {}}}) # Save in bedgraph file if calc_genome_wise: bg_fhand = open(join(data_dir, 'ic.bg'), 'w') chrom = _load_matrix(variations, CHROM_FIELD) pos = _load_matrix(variations, POS_FIELD) pos_ic = PositionalStatsCalculator(chrom, pos, inbreed_coef) if write_bg: pos_ic.write(bg_fhand, 'IC', 'Inbreeding coefficient', track_type='bedgraph') # Plot Ic along genome taking sliding windows pos_ic = pos_ic.calc_window_stat() chrom, pos, ic_windows = pos_ic.chrom, pos_ic.pos, pos_ic.stat fpath = join(data_dir, 'ic_manhattan.png') fhand = open(fpath, 'w') title = 'Inbreeding coefficient (IC) along the genome' manhattan_plot(chrom, pos, ic_windows, fhand=fhand, figsize=(15, 7.5), ylim=-1, mpl_params={'set_xlabel': {'args': ['Chromosome'], 'kwargs': {}}, 'set_ylabel': {'args': ['IC'], 'kwargs': {}}, 'set_title': {'args': [title], 'kwargs': {}}})
def plot_inbreeding_coefficient( variations, max_num_allele, data_dir, window_size, chunk_size=SNPS_PER_CHUNK, min_num_genotypes=MIN_NUM_GENOTYPES_FOR_POP_STAT, write_bg=False, calc_genome_wise=False): # Calculate Inbreeding coefficient distribution inbreed_coef = calc_inbreeding_coef(variations, chunk_size=chunk_size, min_num_genotypes=min_num_genotypes) ic_distrib, bins = histogram(inbreed_coef, 50, range_=(-1, 1)) fpath = join(data_dir, 'inbreeding_coef_distribution.png') fhand = open(fpath, 'w') title = 'Inbreeding coefficient distribution all samples' plot_distrib(ic_distrib, bins, fhand=fhand, mpl_params={ 'set_xlabel': { 'args': ['Inbreeding coefficient'], 'kwargs': {} }, 'set_ylabel': { 'args': ['Number of SNPs'], 'kwargs': {} }, 'set_title': { 'args': [title], 'kwargs': {} }, 'set_xlim': { 'args': [-1, 1], 'kwargs': {} } }) # Save in bedgraph file if calc_genome_wise: bg_fhand = open(join(data_dir, 'ic.bg'), 'w') chrom = _load_matrix(variations, CHROM_FIELD) pos = _load_matrix(variations, POS_FIELD) pos_ic = PositionalStatsCalculator(chrom, pos, inbreed_coef) if write_bg: pos_ic.write(bg_fhand, 'IC', 'Inbreeding coefficient', track_type='bedgraph') # Plot Ic along genome taking sliding windows pos_ic = pos_ic.calc_window_stat() chrom, pos, ic_windows = pos_ic.chrom, pos_ic.pos, pos_ic.stat fpath = join(data_dir, 'ic_manhattan.png') fhand = open(fpath, 'w') title = 'Inbreeding coefficient (IC) along the genome' manhattan_plot(chrom, pos, ic_windows, fhand=fhand, figsize=(15, 7.5), ylim=-1, mpl_params={ 'set_xlabel': { 'args': ['Chromosome'], 'kwargs': {} }, 'set_ylabel': { 'args': ['IC'], 'kwargs': {} }, 'set_title': { 'args': [title], 'kwargs': {} } })