def test_pipeline_double_distance_only_insertions(): param = simulator.SimParameters(wgd_type="DD", num_genes=40, num_chr=2, ins_p=[0, 1], indel_length=[0, 3], events=[0, 10]) sim = simulator.Simulation(folder=None, sim_parameters=param) genomes = sim.run_simulation() assert 2 * len(genomes[0].chromosomes) == len(genomes[1].chromosomes) assert len(genomes[0].gene_count().keys()) < len(genomes[1].gene_count().keys())
def test_pipeline_no_wgd_only_deletions(): param = simulator.SimParameters(wgd_type=None, num_genes=40, num_chr=2, del_p=[1, 0], indel_length=[3, 0], events=[10, 0]) sim = simulator.Simulation(folder=None, sim_parameters=param) genomes = sim.run_simulation() assert len(genomes[0].chromosomes) >= len(genomes[1].chromosomes) assert len(genomes[0].gene_count().keys()) > len(genomes[1].gene_count().keys())
def test_genome_halving_only_rearrangements_pre_wgd(): param = simulator.SimParameters(wgd_type="GH", num_genes=40, num_chr=2, events=[10, 0]) sim = simulator.Simulation(folder=None, sim_parameters=param) genomes = sim.run_simulation() assert 2 * len(genomes[0].chromosomes) == len(genomes[2].chromosomes) assert len(genomes[0].gene_count().keys()) == len(genomes[2].gene_count().keys()) assert str(genomes[1].chromosomes[0]) == str(genomes[2].chromosomes[2])
def test_double_distance_events_before_wgd_event(): param = simulator.SimParameters(wgd_type="DD", num_genes=40, num_chr=2, del_p=[.3, 0], ins_p=[.3, 0], indel_length=[3, 0], duplication_p=[.2, 0], duplication_length=[3, 0], events=[10, 0]) sim = simulator.Simulation(folder=None, sim_parameters=param) genomes = sim.run_simulation() assert len(genomes[0].gene_count().keys()) == len(genomes[1].gene_count().keys()) assert 2 * sum(genomes[0].gene_count().values()) == sum(genomes[1].gene_count().values()) assert str(genomes[0].chromosomes[0]) == str(genomes[1].chromosomes[2])
def test_pipeline_double_distance_only_rearrangements(): param = simulator.SimParameters(wgd_type="DD", num_genes=40, num_chr=2, events=[0, 10]) sim = simulator.Simulation(folder=None, sim_parameters=param) genomes = sim.run_simulation() assert 2 * len(genomes[0].chromosomes) == len(genomes[1].chromosomes) assert len(genomes[0].gene_count().keys()) == len(genomes[1].gene_count().keys()) assert 2 * sum(genomes[0].gene_count().values()) == sum(genomes[1].gene_count().values())
def test_pipeline_no_wgd_with_only_inter_chromosomal_segmental_duplication(): param = simulator.SimParameters(wgd_type=None, num_genes=40, num_chr=2, duplication_p=[1, 0], duplication_length=[3, 0], events=[10, 0], inter_p=1) sim = simulator.Simulation(folder=None, sim_parameters=param) genomes = sim.run_simulation() assert len(genomes[0].chromosomes) == len(genomes[1].chromosomes) assert len(genomes[0].gene_count().keys()) == len(genomes[1].gene_count().keys()) assert sum(genomes[0].gene_count().values()) < sum(genomes[1].gene_count().values())
def test_running_events_on_genome(): genome = gen_genome(100, 5) curr_copy_num = genome.gene_count() param = simulator.SimParameters(num_genes=100, num_chr=5, events=[100, 0]) event_count, _ = test_sim.apply_random_events(param, genome, 101, curr_copy_num, postwgd=0) assert len(curr_copy_num.keys()) == 100 assert event_count["rearrangement"] == 100
def test_genome_halving_only_insertions_post_wgd(): param = simulator.SimParameters(wgd_type="GH", num_genes=40, num_chr=2, ins_p=[0, 1], indel_length=[0, 3], events=[0, 10]) sim = simulator.Simulation(folder=None, sim_parameters=param) genomes = sim.run_simulation() assert 2 * len(genomes[0].chromosomes) == len(genomes[2].chromosomes) assert len(genomes[0].gene_count().keys()) == len(genomes[1].gene_count().keys()) assert len(genomes[1].gene_count().keys()) < len(genomes[2].gene_count().keys())
def test_genome_halving_only_segmental_duplications_pre_wgd(): param = simulator.SimParameters(wgd_type="GH", num_genes=40, num_chr=2, duplication_p=[1, 0], duplication_length=[3, 0], events=[10, 0]) sim = simulator.Simulation(folder=None, sim_parameters=param) genomes = sim.run_simulation() assert 2 * len(genomes[0].chromosomes) == len(genomes[2].chromosomes) assert len(genomes[0].gene_count().keys()) == len(genomes[1].gene_count().keys()) assert len(genomes[1].gene_count().keys()) == len(genomes[2].gene_count().keys()) assert sum(genomes[0].gene_count().values()) < sum(genomes[1].gene_count().values()) assert 2 * sum(genomes[1].gene_count().values()) == sum(genomes[2].gene_count().values())
def test_simulation_parameters_with_no_rearrangements(): param = simulator.SimParameters(ins_p=[.4, 0], del_p=[.4, 0], duplication_p=[.2, 0])