len(species_names) + 0.5],
    color='#fee0d2')
divergence_axis.text(exp((log(1e-06) + log(low_divergence_threshold)) / 2),
                     len(species_names) + 0.5 +
                     (len(species_names) + 2) * 0.02,
                     "'closely\nrelated'",
                     fontsize=5,
                     fontstyle='italic',
                     ha='center',
                     color='#fc9272')

# get better haploid species names
pretty_species_names = []
for species_name in species_names:

    base_name = figure_utils.get_pretty_species_name(species_name)
    pretty_name = base_name
    if pretty_name in pretty_species_names:
        idx = 1
        while pretty_name in pretty_species_names:
            idx += 1
            pretty_name = base_name + (" %d" % (idx))

    pretty_species_names.append(pretty_name)

yticks = numpy.arange(0, len(species_names))
yticklabels = [
    "%s, n=%d" % (pretty_species_names[i], sample_sizes[i])
    for i in xrange(0, len(sample_sizes))
]
Beispiel #2
0
    snp_axis.set_ylim([-0.02, 1.02])
    snp_axis.set_xticklabels([])
    snp_axes.append(snp_axis)

    gene_axis = plt.Subplot(fig, outer_grid[1, example_idx])
    fig.add_subplot(gene_axis)
    line, = gene_axis.semilogy([0.5, 3.5], [0.5, 0.5], ':', color='0.7')
    line.set_dashes((1, 1))
    line, = gene_axis.semilogy([0.5, 3.5], [0.05, 0.05], ':', color='0.7')
    line.set_dashes((1, 1))
    gene_axis.set_xlim([0.6, 3.4])
    gene_axis.set_xticks([1, 2, 3])
    gene_axis.set_ylim([0.02, 2])
    gene_axes.append(gene_axis)

    snp_axis.set_title(figure_utils.get_pretty_species_name(
        examples[example_idx][0]),
                       fontsize=6)
    gene_axis.set_xlabel('Visit number')
    if example_idx == 0:
        snp_axis.set_ylabel('SNV frequency')
        gene_axis.set_ylabel('Gene copynum')
    else:
        snp_axis.set_yticklabels([])
        gene_axis.set_yticklabels([])

# Now actually plot
for example_idx in xrange(0, len(examples)):

    species_name = examples[example_idx][0]

    sys.stderr.write("Loading whitelisted genes...\n")
Beispiel #3
0
#depth_axis.set_ylim([1e01,3e03])
#depth_axis.set_xticks([])

#depth_axis.set_title(species_name,fontsize=fontsize)

polymorphism_axis = plt.Subplot(fig, polymorphism_grid[1])
fig.add_subplot(polymorphism_axis)

polymorphism_axis.set_xlabel("Ranked samples (n=%d)" % len(desired_samples))
polymorphism_axis.set_ylabel(
    "Within-sample polymorphism ($0.2 \leq f \leq 0.8$)")

polymorphism_axis.set_ylim([1e-06, 2e-01])
polymorphism_axis.set_xticks([])

polymorphism_axis.set_title(figure_utils.get_pretty_species_name(species_name),
                            fontsize=fontsize)

#polymorphism_axis.set_title(species_name,fontsize=fontsize)

##############################################################################
#
# Panel (b). Three example (folded) SFSs for focal species
#
##############################################################################

sfs_grid = gridspec.GridSpecFromSubplotSpec(4,
                                            1,
                                            height_ratios=[1, 1, 1, 1],
                                            subplot_spec=focal_grid[0],
                                            hspace=0.25)
sample_sizes = numpy.array(sample_sizes)

passed_species = species_phylogeny_utils.sort_phylogenetically(
    passed_species,
    first_entry=focal_speciess[0],
    second_sorting_attribute=(-1 * sample_sizes))

#passed_species = species_phylogeny_utils.sort_phylogenetically(passed_species)
num_passed_species = len(passed_species)

inconsistency_axis.plot([1], [-1],
                        '-',
                        color=focal_colors[0],
                        linewidth=1,
                        alpha=1,
                        label=figure_utils.get_pretty_species_name(
                            focal_speciess[0], include_number=False))
inconsistency_axis.plot([1], [-1],
                        '-',
                        color=focal_colors[1],
                        linewidth=1,
                        alpha=1,
                        label=figure_utils.get_pretty_species_name(
                            focal_speciess[1], include_number=False))
inconsistency_axis.plot([1], [-1],
                        'r-',
                        linewidth=0.5,
                        alpha=0.3,
                        label='Other species')
inconsistency_axis.legend(loc='lower left',
                          frameon=False,
                          fontsize=5,
species_axis.set_xlim([-1.5, num_passed_species - 0.5])
#species_axis.set_ylabel('LD, $\sigma^2_d$')

species_axis.spines['top'].set_visible(False)
species_axis.spines['right'].set_visible(False)

species_axis.set_ylabel('Linkage Disequilibrium, $\sigma^2_d$')

species_axis.get_xaxis().tick_bottom()
species_axis.get_yaxis().tick_left()

xticks = numpy.arange(0, num_passed_species)
#xticklabels = ["%s (%d)" % (species_names[i],sample_sizes[i]) for i in xrange(0,len(sample_sizes))]
#xticklabels = ["%s" % (passed_species[i]) for i in xrange(0, num_passed_species)]
xticklabels = [
    "%s" % (figure_utils.get_pretty_species_name(passed_species[i]))
    for i in xrange(0, num_passed_species)
]

species_axis.set_xticks(xticks)
species_axis.set_xticklabels(xticklabels, rotation='vertical', fontsize=4)

#species_axis.set_ylim([2e-02,2])

####################################################
#
# Set up Figure (2 panels, arranged in 2x1 grid)
#
####################################################

pylab.figure(4, figsize=(4, 1))
#
# Set up Figure (3 panels, arranged in 3x1 grid)
#
####################################################

pylab.figure(3, figsize=(7, 1.25))

ld_fig = pylab.gcf()
# make three panels panels
ld_grid = gridspec.GridSpec(1, 3, width_ratios=[1, 1, 1], wspace=0.25)

ld_axis_1 = plt.Subplot(ld_fig, ld_grid[0])
ld_fig.add_subplot(ld_axis_1)

ld_axis_1.set_title(
    figure_utils.get_pretty_species_name('Bacteroides_fragilis_54507'),
    fontsize=5)
ld_axis_1.set_ylabel('Linkage disequilibrium, $\sigma^2_d$')
ld_axis_1.set_xlabel('Distance between SNPs, $\ell$')
ld_axis_1.spines['top'].set_visible(False)
ld_axis_1.spines['right'].set_visible(False)
ld_axis_1.spines['bottom'].set_zorder(22)
ld_axis_1.get_xaxis().tick_bottom()
ld_axis_1.get_yaxis().tick_left()
ld_axis_1.set_xlim([2, 1e04])
ld_axis_1.set_ylim([1e-02, 1])
ld_axis_1.text(6e03,
               3.5e-03,
               'Genome-\nwide',
               horizontalalignment='center',
               fontsize='5')
Beispiel #7
0
clade_fst_axis = plt.Subplot(fig, outer_grid[0])
fig.add_subplot(clade_fst_axis)

clade_fst_axis.set_ylabel('Fst (clades)')
clade_fst_axis.set_ylim([-0.05,1.05])
clade_fst_axis.set_xlim([-1,len(species_names)])


clade_fst_axis.spines['top'].set_visible(False)
clade_fst_axis.spines['right'].set_visible(False)
clade_fst_axis.get_xaxis().tick_bottom()
clade_fst_axis.get_yaxis().tick_left()

xticks = numpy.arange(0,len(species_names))
#xticklabels = ["%s (%d)" % (species_names[i],sample_sizes[i]) for i in xrange(0,len(sample_sizes))]
xticklabels = ["%s" % figure_utils.get_pretty_species_name(species_names[i]) for i in xrange(0, len(species_names))]

clade_fst_axis.set_xticks(xticks)
clade_fst_axis.set_xticklabels(xticklabels, rotation='vertical',fontsize=4)



# Plot percentiles of divergence distribution
for species_idx in xrange(0,len(species_names)):

    species_name = species_names[species_idx]

    #clade_fst_axis.plot([-1,len(species_names)+1],[0.2,0.2],'k:',linewidth=0.5)
    
    if species_name in clade_Fst:
        observed_fst, bootstrapped_fsts = clade_Fst[species_name]