import sys infile = sys.argv[1] pop_ids = [sys.argv[2], sys.argv[3]] projections = [int(sys.argv[4]), int(sys.argv[5])] if len(sys.argv) == 9: params = np.loadtxt(sys.argv[8], delimiter=" ", unpack=False) else: params = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.5] # mutation rate per sequenced portion of genome per generation: for A.millepora, 0.02 mu = float(sys.argv[6]) # generation time, in thousand years: 0.005 (5 years) gtime = float(sys.argv[7]) dd = Misc.make_data_dict(infile) # set Polarized=False below for folded AFS analysis data = Spectrum.from_data_dict(dd, pop_ids, projections, polarized=False) ns = data.sample_sizes np.set_printoptions(precision=3) #------------------- # split into unequal pop sizes with asymmetrical migration def sc2ielsm1(params, ns): # p_misid: proportion of misidentified ancestral states nu1_1, nu2_1, nu1_2, nu2_2, T0, T, m, mi, m12_2, m21_2, m12_2i, m21_2i, P = params sts = moments.LinearSystem_1D.steady_state_1D(ns[0] + ns[1]) fs = moments.Spectrum(sts) fs = moments.Manips.split_1D_to_2D(fs, ns[0], ns[1])
#!/usr/bin/env python import moments import numpy as np from numpy import array from moments import Misc,Spectrum import sys infile=sys.argv[1] pop_ids=[sys.argv[2],sys.argv[3]] projections=[int(sys.argv[4]),int(sys.argv[5])] outname=pop_ids[0]+pop_ids[1]+"_sfs" dd = Misc.make_data_dict(infile) data = Spectrum.from_data_dict(dd, pop_ids,projections,polarized=True) Spectrum.to_file(data,outname,precision=4,foldmaskinfo=False)