Ejemplo n.º 1
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 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
Ejemplo n.º 3
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': {}}})
Ejemplo n.º 4
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': {}
                           }
                       })