示例#1
0
import sys
import numpy
import parse_file
from scipy.special import gammaln as loggamma
from math import log, exp

populations = parse_file.all_lines

coverages = []
nonmutator_coverages = []

for population in populations:

    sys.stderr.write("Processing %s...\t" %
                     parse_file.get_pretty_name(population))

    # calculate mutation trajectories
    # load mutations
    mutations, depth_tuple = parse_file.parse_annotated_timecourse(population)

    population_avg_depth_times, population_avg_depths, clone_avg_depth_times, clone_avg_depths = depth_tuple

    coverages.extend(population_avg_depths[population_avg_depths >= 5])

    if population in parse_file.complete_nonmutator_lines:
        nonmutator_coverages.extend(
            population_avg_depths[population_avg_depths >= 5])

    sys.stderr.write("Done!\n")
示例#2
0
                                                hspace=0.2)  #, hspace=0.08)

inner_grids = [inner_grid_1, inner_grid_2]

axes = []
for metapopulation_idx in xrange(0, 2):
    axes.append([])
    for population_idx in xrange(0, 6):

        population = metapopulations[metapopulation_idx][population_idx]

        axis = plt.Subplot(fig,
                           inner_grids[metapopulation_idx][population_idx])
        fig.add_subplot(axis)
        axes[metapopulation_idx].append(axis)
        axis.set_title(parse_file.get_pretty_name(population),
                       fontsize=5,
                       y=0.96,
                       loc='left')

        axis.spines['top'].set_visible(False)
        axis.spines['right'].set_visible(False)
        axis.get_yaxis().tick_left()
        axis.get_yaxis().set_tick_params(direction='out', length=2)
        axis.set_xticks([])
        axis.set_ylabel('Fixed mutations')

        axis.set_xlim([-1, 22])

        if population_idx == 5:
            axis.set_xlabel('Clones')
示例#3
0
    std_dx40 = 0
    std_dx50 = individual_50k_std_dxs[i]
    std_dx60 = individual_60k_std_dxs[i]
    
    late_fitness_ts = numpy.array([t40, t50, t60])
    late_fitness_xs = numpy.array([dx40, dx50, dx60])
    late_fitness_std_xs = numpy.array([std_dx40, std_dx50, std_dx60])
    
    late_fitness_trajectories[population] = (late_fitness_ts, late_fitness_xs, late_fitness_std_xs)
sys.stderr.write("Done!\n")


sys.stderr.write("Loading mutation data...\n")
for population in populations:
    
    sys.stderr.write("Processing %s...\t" % parse_file.get_pretty_name(population))

    # calculate mutation trajectories
    # load mutations
    mutations, depth_tuple = parse_file.parse_annotated_timecourse(population)
    
    population_avg_depth_times, population_avg_depths, clone_avg_depth_times, clone_avg_depths = depth_tuple
    
    dummy_times,fmajors,fminors,haplotype_trajectories = parse_file.parse_haplotype_timecourse(population)
    state_times, state_trajectories = parse_file.parse_well_mixed_state_timecourse(population)
        
    times = mutations[0][10]
    Ms = numpy.zeros_like(times)*1.0
    fixed_Ms = numpy.zeros_like(times)*1.0
    
    transit_times[population] = []
pylab.figure(1,figsize=(5.45,3))
fig = pylab.gcf()

# make three panels panels
outer_grid  = gridspec.GridSpec(1, 2, width_ratios=[4,1], wspace=0.125)

inner_grid_1 = gridspec.GridSpecFromSubplotSpec(4, 1, height_ratios=[1,1,1,1],
                subplot_spec=outer_grid[0], hspace=0.30) #, hspace=0.08)

inner_grid_2 = gridspec.GridSpecFromSubplotSpec(len(remaining_populations), 1, height_ratios=([1]*len(remaining_populations)),
                subplot_spec=outer_grid[1], hspace=0.25) #, hspace=0.08)

fixed_axis = plt.Subplot(fig, inner_grid_1[0])
fig.add_subplot(fixed_axis)

fixed_axis.set_title('%s basal clade' % parse_file.get_pretty_name(focal_population),loc='right',fontsize=5,y=0.89)
    

fixed_axis.spines['top'].set_visible(False)
fixed_axis.spines['right'].set_visible(False)
fixed_axis.get_xaxis().tick_bottom()
fixed_axis.get_yaxis().tick_left()
fixed_axis.get_yaxis().set_tick_params(direction='out',length=2,pad=0)
fixed_axis.get_xaxis().set_tick_params(direction='out',length=2,pad=0)

fixed_axis.set_xticks(generation_ticks)
fixed_axis.set_xticklabels([])
fixed_axis.set_yticks(frequency_ticks)

#fixed_axis.set_ylabel('Allele frequency, $f(t)$')
                                                height_ratios=[1, 1, 1, 1],
                                                subplot_spec=outer_grid[0],
                                                hspace=0.30)  #, hspace=0.08)

inner_grid_2 = gridspec.GridSpecFromSubplotSpec(
    len(remaining_populations),
    1,
    height_ratios=([1] * len(remaining_populations)),
    subplot_spec=outer_grid[1],
    hspace=0.25)  #, hspace=0.08)

fixed_axis = plt.Subplot(fig, inner_grid_1[0])
fig.add_subplot(fixed_axis)

fixed_axis.set_title('%s basal clade' %
                     parse_file.get_pretty_name(focal_population),
                     loc='right',
                     fontsize=5,
                     y=0.89)

fixed_axis.spines['top'].set_visible(False)
fixed_axis.spines['right'].set_visible(False)
fixed_axis.get_xaxis().tick_bottom()
fixed_axis.get_yaxis().tick_left()
fixed_axis.get_yaxis().set_tick_params(direction='out', length=2, pad=0)
fixed_axis.get_xaxis().set_tick_params(direction='out', length=2, pad=0)

fixed_axis.set_xticks(generation_ticks)
fixed_axis.set_xticklabels([])
fixed_axis.set_yticks(frequency_ticks)
示例#6
0
 replicate_str = "biological replicate 1"
 
 if sample_name_str in seen_sample_names:
 
     new_sample_name_str = sample_name_str
     idx = 1
     while new_sample_name_str in seen_sample_names:
         idx += 1
         new_sample_name_str = sample_name_str + (".%d" % idx)
     
     sample_name_str = new_sample_name_str
     replicate_str = "biological replicate %d" % idx
 
 
 
 population_str = ",".join([parse_file.get_pretty_name(population) for population in populations])
 if "BG" in strain_str:
     description_str = "%s clonal isolate" % (population_str)
 else:
     description_str = "%s %s mixed population sample" % (population_str, timepoint_str)
 
 
 column_strs = [" " for column in column_headers]
     
 column_strs[sample_name_idx] = sample_name_str
 
 column_strs[bioproject_accession_idx] = bioproject_accession_str 
 
 column_strs[organism_idx] = organsim_str 
 
 column_strs[strain_idx] = strain_str
    hspace=0.25)  #, hspace=0.08)

inner_grid_2 = gridspec.GridSpecFromSubplotSpec(
    len(remaining_populations),
    1,
    height_ratios=([1] * len(remaining_populations)),
    subplot_spec=outer_grid[1],
    hspace=0.2)  #, hspace=0.08)

focal_axes = []
for i in xrange(0, len(focal_populations)):
    axis = plt.Subplot(fig, inner_grid_1[i])
    focal_axes.append(axis)
    fig.add_subplot(axis)

    axis.set_title('%s' % parse_file.get_pretty_name(focal_populations[i]),
                   loc='right',
                   fontsize=5,
                   y=0.93)

    axis.spines['top'].set_visible(False)
    axis.spines['right'].set_visible(False)
    axis.get_xaxis().tick_bottom()
    axis.get_yaxis().tick_left()
    axis.get_yaxis().set_tick_params(direction='out', length=3, pad=1)
    axis.get_xaxis().set_tick_params(direction='out', length=3, pad=1)

    axis.set_xticks(generation_ticks)
    axis.set_yticks(frequency_ticks)

    if i == (len(focal_populations) - 1):
        axes = [axes]

    #fig = plt.figure(figsize=(fig_width,fig_height))
    #outer_grid  = gridspec.GridSpec(len(populations), 1)
    xticks = [5000 * i for i in xrange(0, 13)]
    xticklabels = ['%dk' % (5 * i) for i in xrange(0, 13)]
    xticklabels[0] = '0'

    freq_axis = None

    for population_idx in xrange(0, len(populations)):

        population = populations[population_idx]

        sys.stdout.write("Processing %s...\n" %
                         parse_file.get_pretty_name(population))

        # calculate mutation trajectories
        # load mutations
        mutations, depth_tuple = parse_file.parse_annotated_timecourse(
            population)

        population_avg_depth_times, population_avg_depths, clone_avg_depth_times, clone_avg_depths = depth_tuple

        dummy_times, fmajors, fminors, haplotype_trajectories = parse_file.parse_haplotype_timecourse(
            population)
        state_times, state_trajectories = parse_file.parse_well_mixed_state_timecourse(
            population)

        # set up figure axis
        freq_axis = axes[population_idx]
示例#9
0
xticklabels[0] = '0'
fixation_time_axis.set_xticks(xticks)
fixation_time_axis.set_xticklabels(xticklabels)

######
#
# Now do the calculations
#
######

#populations = ['m5','p2','p4','p1','p5','p6','p3','m4','m2','m1','m3','m6']
nonmutator_populations = ['m5', 'p2', 'p4', 'p1', 'm6', 'p5']
mutator_populations = ['m1', 'm2', 'm3', 'm4', 'p3', 'p6']

population_labels = {
    population: parse_file.get_pretty_name(population)
    for population in nonmutator_populations
}
population_colors = {
    nonmutator_populations[i]: parse_file.nonmutator_line_colors[i]
    for i in xrange(0, len(nonmutator_populations))
}

for i in xrange(0, len(mutator_populations)):
    population_labels[mutator_populations[i]] = parse_file.get_pretty_name(
        mutator_populations[i])
    population_colors[
        mutator_populations[i]] = parse_file.mutator_line_colors[i]

populations = mutator_populations + nonmutator_populations
示例#10
0
    axes = [axes]

#fig = plt.figure(figsize=(fig_width,fig_height))
#outer_grid  = gridspec.GridSpec(len(populations), 1)
xticks = [5000*i for i in xrange(0,13)]
xticklabels = ['%dk' % (5*i) for i in xrange(0,13)]
xticklabels[0] = '0'
    

freq_axis = None
    
for population_idx in xrange(0,len(populations)):        

    population = populations[population_idx]

    sys.stderr.write("Processing %s...\n" % parse_file.get_pretty_name(population))

    # calculate mutation trajectories
    # load mutations
    mutations, depth_tuple = parse_file.parse_annotated_timecourse(population)
    
    population_avg_depth_times, population_avg_depths, clone_avg_depth_times, clone_avg_depths = depth_tuple
    
    dummy_times,fmajors,fminors,haplotype_trajectories = parse_file.parse_haplotype_timecourse(population)
    state_times, state_trajectories = parse_file.parse_well_mixed_state_timecourse(population)
    
    # set up figure axis
    freq_axis = axes[population_idx]
    
    if additional_titles[population_idx]=="":
        title_text = parse_file.get_pretty_name(population)