Example #1
0
def test_invalid_migration():
    with pytest.raises(ValueError) as e:
        options = Option_Parser.admixture_option_parser()\
            .parse_args(['-g', 'AU_AF_1.5e-5'])
        Demography_Models.Base_demography(options).simulate(1)

    assert 'AU not a known population' in str(e)

    with pytest.raises(ValueError) as e:
        options = Option_Parser.admixture_option_parser()\
            .parse_args(['-g', 'EU_AF_NUMBER'])
        Demography_Models.Base_demography(options).simulate(1)

    assert 'could not convert' in str(e)
def test_write_f4dstats():
    parser = Option_Parser.admixture_option_parser()
    opts = parser.parse_args([])

    with File_Printer.file_printer(opts) as fp:
        ind = io.StringIO()
        fp.writers['ind'] = ind
        eigen = io.BytesIO()
        fp.writers['eigen'] = eigen
        snp = io.StringIO()
        fp.writers['snp'] = snp

        model = Demography_Models.Tenn_demography(opts)
        sim = model.simulate(1)
        Admixture_Simulation.write_f4dstats(sim, fp, model)

        ind = ind.getvalue().split('\n')
        assert ind[0] == 'Sample_0\tU\tNeand1'
        assert ind[9] == 'Sample_9\tU\tEUR'
        snp = snp.getvalue().split('\n')
        snp0 = snp[0].split('\t')
        assert snp0[0] == 'rs1'
        assert snp0[1] == '1'
        assert snp0[3] == '129'
        assert snp0[4] == 'A'
        assert snp0[5] == 'T'

        snp9 = snp[9].split('\t')
        assert snp9[0] == 'rs10'
        assert snp9[1] == '1'
        assert snp9[3] == '965'
        assert snp9[4] == 'A'
        assert snp9[5] == 'T'
Example #3
0
def test_construction():
    parser = Option_Parser.admixture_option_parser()
    options = parser.parse_args([])

    Demography_Models.Base_demography(options).simulate(1)
    Demography_Models.Tenn_demography(options).simulate(1)
    Demography_Models.Tenn_no_modern_migration(options).simulate(1)
    Demography_Models.Tenn_pulsed_migration(options).simulate(1)
    Demography_Models.Sriram_demography(options).simulate(1)
    Demography_Models.SplitPop_demography(options).simulate(1)
    with pytest.raises(NotImplementedError):
        Demography_Models.Out_of_africa_demography(options).simulate(1)
def test_get_model():
    parser = Option_Parser.admixture_option_parser()
    opts = parser.parse_args([])

    assert type(Admixture_Simulation.get_model(opts)) == \
        Demography_Models.Tenn_demography
    opts.model = "SplitPop"
    assert type(Admixture_Simulation.get_model(opts)) == \
        Demography_Models.SplitPop_demography

    with pytest.raises(ValueError) as e:
        opts.model = "NONE"
        Admixture_Simulation.get_model(opts)

    assert "unsupported model: NONE" in str(e)
def test_get_samples():
    parser = Option_Parser.admixture_option_parser()
    opts = parser.parse_args([])

    samp = Admixture_Simulation.get_human_samples(opts)
    assert samp == range(6, 2020)

    opts.pop = "AFR"
    samp = Admixture_Simulation.get_human_samples(opts)
    assert samp == range(4, 6)

    with pytest.raises(ValueError) as e:
        opts.pop = "NONE"
        samp = Admixture_Simulation.get_human_samples(opts)

    assert "unknown human sample: NONE" in str(e)
Example #6
0
def nonDefault():
    parser = Option_Parser.admixture_option_parser()
    options = parser.parse_args([
        '-s',
        '4',
        '-n',
        '0.003',
        '-d',
        '0.001',
        '--Neand1_sample_size',
        '3',
        '--Neand2_sample_size',
        '1',
        '-t',
        '450',
        '--time_N1_sample',
        '50',
        '--time_N2_sample',
        '120',
        '-l',
        '1e4',
        '-e',
        '1007',
        '-a',
        '1007',
        '-r',
        '3',
        '-g',
        'AF_EU_1.5e-5',
        '-g',
        'EU_AF_1.5e-5',
        '-g',
        'AF_AS_0.78e-5',
        '-g',
        'AS_AF_0.79e-5',
        '-g',
        'EU_AS_3.11e-5',
    ])
    return Demography_Models.Base_demography(options)
Example #7
0
def default():
    parser = Option_Parser.admixture_option_parser()
    options = parser.parse_args([])
    return Demography_Models.Base_demography(options)
Example #8
0
def parser():
    return Option_Parser.admixture_option_parser()
def test_tree_running():
    parser = Option_Parser.admixture_option_parser()
    opts = parser.parse_args([])
    sim = Demography_Models.Tenn_demography(opts).simulate(1)
    entries = Admixture_Simulation.get_haplo_entries(next(sim), opts)
    assert entries == {}