Note
Go to the end to download the full example code.
ASW inference - One pulse model#
This example implements inference for the ASW population under a one pulse model of admixture, using the tracts package. Inference is performed using autosomal and X chromosome data, allowing for the specification of sex-biased admixture.
To implement this example, we use the following driver file:
samples:
directory: ./ASW_TrioPhased
individual_names: [
"NA19625","NA19700","NA19701","NA19703","NA19704","NA19707","NA19711","NA19712","NA19713","NA19818","NA19819",
"NA19834","NA19835","NA19900","NA19901","NA19904","NA19908","NA19909","NA19913","NA19914","NA19916","NA19917",
"NA19920","NA19921","NA19922","NA19923","NA19982","NA19984","NA20126","NA20127","NA20274","NA20276","NA20278",
"NA20281","NA20282","NA20287","NA20289","NA20291","NA20294","NA20296","NA20298","NA20299","NA20317",
"NA20318","NA20320","NA20321","NA20332","NA20334","NA20339","NA20340","NA20342","NA20346","NA20348","NA20351",
"NA20355","NA20356","NA20357","NA20359","NA20362","NA20412"]
male_names: [
"NA19700","NA19703","NA19711","NA19818","NA19834","NA19900","NA19904","NA19908","NA19916","NA19920",
"NA19922","NA19982","NA19984","NA20126","NA20278","NA20281","NA20291","NA20298","NA20318","NA20340",
"NA20342","NA20346","NA20348","NA20351","NA20356","NA20362"] #see Readme_dataprocessing.md for how this was generated
filename_format: "{name}_{label}_final.bed"
labels: [A, B] #If this field is omitted, 'A' and 'B' will be used by default
chromosomes: 1-22 #The chromosomes to use for analysis. Can be specified as a list or a range
allosomes: [X]
models:
model_filename: ../models/ppp.yaml
ad_model_autosomes: M
ad_model_allosomes: DC
start_params:
t: 4:8
REUR: 0.8
RNAT: 0.1
REUR_sex_bias: -0.2:0.2
RNAT_sex_bias: -0.2:0.2
optim:
repetitions: 5
maximum_iterations: 1000
seed: 10
unknown_labels_for_smoothing: ["UNK", "centromere","miscall"] # segments with these labels will be smoother over, that is, will be filled with neighbouring ancestries up to their midpoints.
exclude_tracts_below_cm: 2
npts: 50
two_steps_optimization: True
use_autosomes_for_sex_bias: False
output:
output_filename_format: "ASW_test_output_{label}"
log_filename: "ASW_one_pulse.log"
output_directory: ./output_one_pulse/{date}/
verbose_log: 1
verbose_screen: 30
log_scale: True
plot_migration_matrices: True
Complete results from this analysis are saved in the output directory specified in the driver file. Below, we display the optimal parameters estimated from this analysis, as well as the plots illustrating the inferred tract length distributions, compared to the observed histograms, for every source population and chromosome type (autosomes and X chromosome).
Optimal parameters#
parameter |
value |
|---|---|
REUR |
0.19290470543941354 |
REUR_sex_bias |
0.8412788683483536 |
RNAT |
0.030206716609705902 |
RNAT_sex_bias |
0.9989999999999999 |
t |
6.967339765823309 |
X_AFR_rate |
0.7768885779508805 |
X_AFR_sex_bias |
-0.862632492844165 |
likelihood -826.818 |
Optimal migration matrices#
Tract length histograms#
Autosomal admixture#
X chromosome admixture in females#
X chromosome admixture in males#
------------------------------------------------------------------------------------------------
Running tracts 2.0 with driver file: /home/runner/work/tracts/tracts/example/documentation_examples/ASW/ASW_one_pulse.yaml
------------------------------------------------------------------------------------------------
Results will be written to: output_one_pulse.
Using log file: output_one_pulse/ASW_one_pulse.log.
excluding_tracts_below set to 2.0 cM.
Re-optimization will be performed until convergence or maximum 5 times.
Ancestries: EUR, NAT, AFR
Data autosome proportions: [0.19342207 0.0279112 0.77866673]
Data allosome proportions: [0.16505079 0.02464857 0.81030064]
Model parameters and bounds:
-------------------------------------------
Parameter | Lower bound | Upper bound
-------------------------------------------
REUR | 1e-09 | 1
REUR_sex_bias | -1 | 1
RNAT | 1e-09 | 1
RNAT_sex_bias | -1 | 1
t | 1 | inf
-------------------------------------------
Multiple starting parameters will be generated and used for multiple optimization runs.
-------------------------------------------------------------------------------
Step 1 : Optimizing autosomal likelihood over parameters ['REUR', 'RNAT', 't'].
-------------------------------------------------------------------------------
Starting parameters for step 1 optimization
------------------------------------------------
Run | REUR | RNAT | t
------------------------------------------------
1 | 0.8 | 0.1 | 6.051
2 | 0.8 | 0.1 | 7.828
3 | 0.8 | 0.1 | 7.308
4 | 0.8 | 0.1 | 7.626
5 | 0.8 | 0.1 | 6.071
------------------------------------------------
Optimization run #1
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
30 , -9173.46 , array([ 0.774712 , 0 , 0.0907521 , 0 , 5.33571 ]), Autosomes
60 , -7007.96 , array([ 0.726074 , 0 , 0.0813179 , 0 , 5.03168 ]), Autosomes
90 , -5325.12 , array([ 0.669694 , 0 , 0.0756443 , 0 , 4.6787 ]), Autosomes
120 , -4072.14 , array([ 0.6046 , 0 , 0.0701423 , 0 , 4.56394 ]), Autosomes
150 , -3097.43 , array([ 0.534449 , 0 , 0.0659789 , 0 , 4.61427 ]), Autosomes
180 , -2331.78 , array([ 0.464515 , 0 , 0.0607899 , 0 , 4.72895 ]), Autosomes
210 , -1736.87 , array([ 0.395891 , 0 , 0.0564464 , 0 , 4.91948 ]), Autosomes
240 , -1269.88 , array([ 0.335354 , 0 , 0.0531158 , 0 , 5.35314 ]), Autosomes
270 , -928.363 , array([ 0.280106 , 0 , 0.048697 , 0 , 5.73279 ]), Autosomes
300 , -782.394 , array([ 0.250868 , 0 , 0.0451672 , 0 , 5.9774 ]), Autosomes
311 , -776.766 , array([ 0.250877 , 0 , 0.0451682 , 0 , 5.97801 ]), Autosomes
Optimization completed.
-----------------------
Optimization run #2
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
30 , -10513.2 , array([ 0.77979 , 0 , 0.0922985 , 0 , 6.43956 ]), Autosomes
60 , -7830.21 , array([ 0.743314 , 0 , 0.0859323 , 0 , 5.41473 ]), Autosomes
90 , -5990.52 , array([ 0.691748 , 0 , 0.0784853 , 0 , 4.95731 ]), Autosomes
120 , -4572.02 , array([ 0.63319 , 0 , 0.0726372 , 0 , 4.5997 ]), Autosomes
150 , -3493.87 , array([ 0.565421 , 0 , 0.0677625 , 0 , 4.6058 ]), Autosomes
180 , -2645.35 , array([ 0.495709 , 0 , 0.0626329 , 0 , 4.69618 ]), Autosomes
210 , -1984.75 , array([ 0.425733 , 0 , 0.058609 , 0 , 4.7945 ]), Autosomes
240 , -1460.22 , array([ 0.360828 , 0 , 0.0544211 , 0 , 5.12586 ]), Autosomes
270 , -1053.08 , array([ 0.301966 , 0 , 0.0503933 , 0 , 5.53405 ]), Autosomes
300 , -775.737 , array([ 0.250301 , 0 , 0.045177 , 0 , 5.98107 ]), Autosomes
330 , -699.189 , array([ 0.234421 , 0 , 0.0431452 , 0 , 6.27072 ]), Autosomes
360 , -620.906 , array([ 0.215224 , 0 , 0.0396889 , 0 , 6.5299 ]), Autosomes
390 , -572.129 , array([ 0.200363 , 0 , 0.0357289 , 0 , 6.76761 ]), Autosomes
420 , -549.691 , array([ 0.194191 , 0 , 0.0321449 , 0 , 6.9182 ]), Autosomes
450 , -540.296 , array([ 0.192906 , 0 , 0.0302085 , 0 , 6.96947 ]), Autosomes
452 , -540.181 , array([ 0.192905 , 0 , 0.0302067 , 0 , 6.96734 ]), Autosomes
Optimization completed.
-----------------------
Optimization run #3
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
30 , -9986.78 , array([ 0.77421 , 0 , 0.0917621 , 0 , 6.1846 ]), Autosomes
60 , -7491.3 , array([ 0.738273 , 0 , 0.0823493 , 0 , 5.30404 ]), Autosomes
90 , -5767.84 , array([ 0.688924 , 0 , 0.0747836 , 0 , 4.82829 ]), Autosomes
120 , -4434.14 , array([ 0.628798 , 0 , 0.0687552 , 0 , 4.62773 ]), Autosomes
150 , -3378.88 , array([ 0.560037 , 0 , 0.064119 , 0 , 4.61314 ]), Autosomes
180 , -2547.18 , array([ 0.48856 , 0 , 0.0599685 , 0 , 4.70495 ]), Autosomes
210 , -1904.05 , array([ 0.417908 , 0 , 0.0566819 , 0 , 4.84312 ]), Autosomes
240 , -1391.75 , array([ 0.353972 , 0 , 0.0527975 , 0 , 5.21649 ]), Autosomes
270 , -998.99 , array([ 0.295316 , 0 , 0.048327 , 0 , 5.62279 ]), Autosomes
300 , -750.446 , array([ 0.246839 , 0 , 0.0431032 , 0 , 6.0333 ]), Autosomes
330 , -597.056 , array([ 0.208994 , 0 , 0.0379575 , 0 , 6.63373 ]), Autosomes
360 , -550.389 , array([ 0.195593 , 0 , 0.0322154 , 0 , 6.89387 ]), Autosomes
385 , -542.422 , array([ 0.194499 , 0 , 0.0308753 , 0 , 6.96769 ]), Autosomes
Optimization completed.
-----------------------
Optimization run #4
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
30 , -10297.8 , array([ 0.773829 , 0 , 0.0921434 , 0 , 6.48264 ]), Autosomes
60 , -7709.71 , array([ 0.738883 , 0 , 0.0844834 , 0 , 5.52357 ]), Autosomes
90 , -5878.58 , array([ 0.685923 , 0 , 0.0782456 , 0 , 5.00444 ]), Autosomes
120 , -4462.81 , array([ 0.62738 , 0 , 0.0719445 , 0 , 4.62223 ]), Autosomes
150 , -3402.38 , array([ 0.559135 , 0 , 0.066849 , 0 , 4.61126 ]), Autosomes
180 , -2570.84 , array([ 0.488246 , 0 , 0.0624196 , 0 , 4.6771 ]), Autosomes
210 , -1923.98 , array([ 0.418306 , 0 , 0.0583386 , 0 , 4.81449 ]), Autosomes
240 , -1417.53 , array([ 0.355178 , 0 , 0.0548306 , 0 , 5.21437 ]), Autosomes
270 , -1020.62 , array([ 0.296627 , 0 , 0.0499652 , 0 , 5.58572 ]), Autosomes
300 , -774.41 , array([ 0.248792 , 0 , 0.0448357 , 0 , 5.95885 ]), Autosomes
325 , -764.509 , array([ 0.247529 , 0 , 0.0448371 , 0 , 5.97824 ]), Autosomes
Optimization completed.
-----------------------
Optimization run #5
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
30 , -8885.01 , array([ 0.766911 , 0 , 0.0904542 , 0 , 5.44419 ]), Autosomes
60 , -6763.53 , array([ 0.717014 , 0 , 0.0817404 , 0 , 5.04796 ]), Autosomes
90 , -5167.74 , array([ 0.661513 , 0 , 0.0761892 , 0 , 4.66633 ]), Autosomes
120 , -3962.07 , array([ 0.597494 , 0 , 0.0698458 , 0 , 4.61415 ]), Autosomes
150 , -3003.19 , array([ 0.527211 , 0 , 0.0648808 , 0 , 4.61779 ]), Autosomes
180 , -2264.7 , array([ 0.457247 , 0 , 0.0602639 , 0 , 4.70906 ]), Autosomes
210 , -1685.14 , array([ 0.389256 , 0 , 0.0558789 , 0 , 4.93555 ]), Autosomes
240 , -1246.23 , array([ 0.334463 , 0 , 0.0512355 , 0 , 5.39205 ]), Autosomes
270 , -899.271 , array([ 0.277771 , 0 , 0.0464328 , 0 , 5.7466 ]), Autosomes
300 , -688.948 , array([ 0.235427 , 0 , 0.0416161 , 0 , 6.30557 ]), Autosomes
330 , -568.286 , array([ 0.2002 , 0 , 0.0351413 , 0 , 6.79558 ]), Autosomes
360 , -541.842 , array([ 0.193271 , 0 , 0.0306378 , 0 , 6.97417 ]), Autosomes
382 , -541.166 , array([ 0.193489 , 0 , 0.0305407 , 0 , 6.968 ]), Autosomes
Optimization completed.
-----------------------
In Step 1: Results from multiple optimization runs with different starting parameters:
-----------------------------------------------------------------------------------------------
Run | LogLik | REUR | REUR_sex_bias | RNAT | RNAT_sex_bias | t
-----------------------------------------------------------------------------------------------
1 | -776.766 | 0.2509 | 0 | 0.04517 | 0 | 5.978
2 | -540.181 | 0.1929 | 0 | 0.03021 | 0 | 6.967
3 | -542.422 | 0.1945 | 0 | 0.03088 | 0 | 6.968
4 | -764.509 | 0.2475 | 0 | 0.04484 | 0 | 5.978
5 | -541.166 | 0.1935 | 0 | 0.03054 | 0 | 6.968
-----------------------------------------------------------------------------------------------
2026-08-07 17:29:46,754 - tracts.driver_utils - WARNING - In Step 1: final likelihoods close to the optimum were found only once among 5 runs (tolerance=0.5).
Selecting best parameters from step 1 and proceeding to step 2 optimization.
----------------------------------------------------------------------------------------------
Step 2 : Optimizing allosomal likelihood over parameters : ['REUR_sex_bias', 'RNAT_sex_bias'].
----------------------------------------------------------------------------------------------
Starting parameters for step 2 optimization (non-sex-bias parameters are fixed to the best step 1 estimates).
--------------------------------------------------------------------------------
Run | REUR | REUR_sex_bias | RNAT | RNAT_sex_bias | t
--------------------------------------------------------------------------------
1 | 0.1929 | -0.1169 | 0.03021 | -0.1403 | 6.967
2 | 0.1929 | 0.07561 | 0.03021 | -0.0298 | 6.967
3 | 0.1929 | -0.06471 | 0.03021 | 0.1013 | 6.967
4 | 0.1929 | -0.142 | 0.03021 | -0.1443 | 6.967
5 | 0.1929 | 0.1413 | 0.03021 | 0.1879 | 6.967
--------------------------------------------------------------------------------
Optimization run #1
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
30 , -200.6 , array([ 0.192905 , 0.0156531 , 0.0302067 , -0.0964457 , 6.96734 ]), Female allosomes
30 , -95.5348 , array([ 0.192905 , 0.0156531 , 0.0302067 , -0.0964457 , 6.96734 ]), Male allosomes
60 , -198.04 , array([ 0.192905 , 0.154079 , 0.0302067 , -0.042578 , 6.96734 ]), Female allosomes
60 , -96.1017 , array([ 0.192905 , 0.154079 , 0.0302067 , -0.042578 , 6.96734 ]), Male allosomes
90 , -196.814 , array([ 0.192905 , 0.2229 , 0.0302067 , -0.0141048 , 6.96734 ]), Female allosomes
90 , -96.4253 , array([ 0.192905 , 0.2229 , 0.0302067 , -0.0141048 , 6.96734 ]), Male allosomes
106 , -196.801 , array([ 0.192905 , 0.223565 , 0.0302067 , -0.0136252 , 6.96734 ]), Female allosomes
106 , -96.4288 , array([ 0.192905 , 0.223565 , 0.0302067 , -0.0136252 , 6.96734 ]), Male allosomes
Optimization completed.
-----------------------
Optimization run #2
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
30 , -198.36 , array([ 0.192905 , 0.123452 , 0.0302067 , -0.0137601 , 6.96734 ]), Female allosomes
30 , -96.0093 , array([ 0.192905 , 0.123452 , 0.0302067 , -0.0137601 , 6.96734 ]), Male allosomes
40 , -198.354 , array([ 0.192905 , 0.123802 , 0.0302067 , -0.0136743 , 6.96734 ]), Female allosomes
40 , -96.0108 , array([ 0.192905 , 0.123802 , 0.0302067 , -0.0136743 , 6.96734 ]), Male allosomes
Optimization completed.
-----------------------
Optimization run #3
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
30 , -198.213 , array([ 0.192905 , 0.0670908 , 0.0302067 , 0.148816 , 6.96734 ]), Female allosomes
30 , -96.0068 , array([ 0.192905 , 0.0670908 , 0.0302067 , 0.148816 , 6.96734 ]), Male allosomes
60 , -195.777 , array([ 0.192905 , 0.204508 , 0.0302067 , 0.199404 , 6.96734 ]), Female allosomes
60 , -96.6316 , array([ 0.192905 , 0.204508 , 0.0302067 , 0.199404 , 6.96734 ]), Male allosomes
90 , -193.613 , array([ 0.192905 , 0.332067 , 0.0302067 , 0.255016 , 6.96734 ]), Female allosomes
90 , -97.3188 , array([ 0.192905 , 0.332067 , 0.0302067 , 0.255016 , 6.96734 ]), Male allosomes
120 , -191.76 , array([ 0.192905 , 0.445324 , 0.0302067 , 0.316643 , 6.96734 ]), Female allosomes
120 , -98.0255 , array([ 0.192905 , 0.445324 , 0.0302067 , 0.316643 , 6.96734 ]), Male allosomes
150 , -190.214 , array([ 0.192905 , 0.541622 , 0.0302067 , 0.385006 , 6.96734 ]), Female allosomes
150 , -98.7115 , array([ 0.192905 , 0.541622 , 0.0302067 , 0.385006 , 6.96734 ]), Male allosomes
180 , -188.95 , array([ 0.192905 , 0.620346 , 0.0302067 , 0.459192 , 6.96734 ]), Female allosomes
180 , -99.3452 , array([ 0.192905 , 0.620346 , 0.0302067 , 0.459192 , 6.96734 ]), Male allosomes
210 , -187.93 , array([ 0.192905 , 0.682675 , 0.0302067 , 0.536406 , 6.96734 ]), Female allosomes
210 , -99.9074 , array([ 0.192905 , 0.682675 , 0.0302067 , 0.536406 , 6.96734 ]), Male allosomes
240 , -187.115 , array([ 0.192905 , 0.730916 , 0.0302067 , 0.612687 , 6.96734 ]), Female allosomes
240 , -100.391 , array([ 0.192905 , 0.730916 , 0.0302067 , 0.612687 , 6.96734 ]), Male allosomes
270 , -186.471 , array([ 0.192905 , 0.767676 , 0.0302067 , 0.684173 , 6.96734 ]), Female allosomes
270 , -100.795 , array([ 0.192905 , 0.767676 , 0.0302067 , 0.684173 , 6.96734 ]), Male allosomes
300 , -185.97 , array([ 0.192905 , 0.795241 , 0.0302067 , 0.748065 , 6.96734 ]), Female allosomes
300 , -101.125 , array([ 0.192905 , 0.795241 , 0.0302067 , 0.748065 , 6.96734 ]), Male allosomes
330 , -185.587 , array([ 0.192905 , 0.815333 , 0.0302067 , 0.80288 , 6.96734 ]), Female allosomes
330 , -101.386 , array([ 0.192905 , 0.815333 , 0.0302067 , 0.80288 , 6.96734 ]), Male allosomes
360 , -185.303 , array([ 0.192905 , 0.829139 , 0.0302067 , 0.848269 , 6.96734 ]), Female allosomes
360 , -101.581 , array([ 0.192905 , 0.829139 , 0.0302067 , 0.848269 , 6.96734 ]), Male allosomes
390 , -185.104 , array([ 0.192905 , 0.837512 , 0.0302067 , 0.884684 , 6.96734 ]), Female allosomes
390 , -101.718 , array([ 0.192905 , 0.837512 , 0.0302067 , 0.884684 , 6.96734 ]), Male allosomes
420 , -184.969 , array([ 0.192905 , 0.842789 , 0.0302067 , 0.912303 , 6.96734 ]), Female allosomes
420 , -101.793 , array([ 0.192905 , 0.842789 , 0.0302067 , 0.912303 , 6.96734 ]), Male allosomes
450 , -184.935 , array([ 0.192905 , 0.841969 , 0.0302067 , 0.924343 , 6.96734 ]), Female allosomes
450 , -101.809 , array([ 0.192905 , 0.841969 , 0.0302067 , 0.924343 , 6.96734 ]), Male allosomes
480 , -184.916 , array([ 0.192905 , 0.841277 , 0.0302067 , 0.929984 , 6.96734 ]), Female allosomes
480 , -101.834 , array([ 0.192905 , 0.841277 , 0.0302067 , 0.929984 , 6.96734 ]), Male allosomes
510 , -184.921 , array([ 0.192905 , 0.84128 , 0.0302067 , 0.930163 , 6.96734 ]), Female allosomes
510 , -101.814 , array([ 0.192905 , 0.84128 , 0.0302067 , 0.930163 , 6.96734 ]), Male allosomes
517 , -184.921 , array([ 0.192905 , 0.841278 , 0.0302067 , 0.930189 , 6.96734 ]), Female allosomes
517 , -101.814 , array([ 0.192905 , 0.841278 , 0.0302067 , 0.930189 , 6.96734 ]), Male allosomes
Optimization completed.
-----------------------
Optimization run #4
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
30 , -201.037 , array([ 0.192905 , -0.0118003 , 0.0302067 , -0.0925076 , 6.96734 ]), Female allosomes
30 , -95.4489 , array([ 0.192905 , -0.0118003 , 0.0302067 , -0.0925076 , 6.96734 ]), Male allosomes
60 , -198.442 , array([ 0.192905 , 0.127689 , 0.0302067 , -0.0398832 , 6.96734 ]), Female allosomes
60 , -95.9988 , array([ 0.192905 , 0.127689 , 0.0302067 , -0.0398832 , 6.96734 ]), Male allosomes
90 , -197.444 , array([ 0.192905 , 0.19282 , 0.0302067 , -0.0135883 , 6.96734 ]), Female allosomes
90 , -96.2639 , array([ 0.192905 , 0.19282 , 0.0302067 , -0.0135883 , 6.96734 ]), Male allosomes
105 , -197.268 , array([ 0.192905 , 0.193088 , 0.0302067 , -0.0136401 , 6.96734 ]), Female allosomes
105 , -96.2956 , array([ 0.192905 , 0.193088 , 0.0302067 , -0.0136401 , 6.96734 ]), Male allosomes
Optimization completed.
-----------------------
Optimization run #5
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
30 , -194.65 , array([ 0.192905 , 0.265772 , 0.0302067 , 0.238944 , 6.96734 ]), Female allosomes
30 , -96.9667 , array([ 0.192905 , 0.265772 , 0.0302067 , 0.238944 , 6.96734 ]), Male allosomes
60 , -192.635 , array([ 0.192905 , 0.387362 , 0.0302067 , 0.296114 , 6.96734 ]), Female allosomes
60 , -97.6696 , array([ 0.192905 , 0.387362 , 0.0302067 , 0.296114 , 6.96734 ]), Male allosomes
90 , -190.934 , array([ 0.192905 , 0.493161 , 0.0302067 , 0.359646 , 6.96734 ]), Female allosomes
90 , -98.3723 , array([ 0.192905 , 0.493161 , 0.0302067 , 0.359646 , 6.96734 ]), Male allosomes
120 , -189.532 , array([ 0.192905 , 0.581439 , 0.0302067 , 0.429627 , 6.96734 ]), Female allosomes
120 , -99.0378 , array([ 0.192905 , 0.581439 , 0.0302067 , 0.429627 , 6.96734 ]), Male allosomes
150 , -188.393 , array([ 0.192905 , 0.652441 , 0.0302067 , 0.504319 , 6.96734 ]), Female allosomes
150 , -99.6398 , array([ 0.192905 , 0.652441 , 0.0302067 , 0.504319 , 6.96734 ]), Male allosomes
180 , -187.481 , array([ 0.192905 , 0.707949 , 0.0302067 , 0.580312 , 6.96734 ]), Female allosomes
180 , -100.165 , array([ 0.192905 , 0.707949 , 0.0302067 , 0.580312 , 6.96734 ]), Male allosomes
210 , -186.757 , array([ 0.192905 , 0.750501 , 0.0302067 , 0.653573 , 6.96734 ]), Female allosomes
210 , -100.61 , array([ 0.192905 , 0.750501 , 0.0302067 , 0.653573 , 6.96734 ]), Male allosomes
240 , -186.19 , array([ 0.192905 , 0.78262 , 0.0302067 , 0.720677 , 6.96734 ]), Female allosomes
240 , -100.977 , array([ 0.192905 , 0.78262 , 0.0302067 , 0.720677 , 6.96734 ]), Male allosomes
270 , -185.752 , array([ 0.192905 , 0.806355 , 0.0302067 , 0.779444 , 6.96734 ]), Female allosomes
270 , -101.271 , array([ 0.192905 , 0.806355 , 0.0302067 , 0.779444 , 6.96734 ]), Male allosomes
300 , -185.424 , array([ 0.192905 , 0.823179 , 0.0302067 , 0.828961 , 6.96734 ]), Female allosomes
300 , -101.497 , array([ 0.192905 , 0.823179 , 0.0302067 , 0.828961 , 6.96734 ]), Male allosomes
330 , -185.186 , array([ 0.192905 , 0.834105 , 0.0302067 , 0.869292 , 6.96734 ]), Female allosomes
330 , -101.661 , array([ 0.192905 , 0.834105 , 0.0302067 , 0.869292 , 6.96734 ]), Male allosomes
360 , -185.026 , array([ 0.192905 , 0.839966 , 0.0302067 , 0.901168 , 6.96734 ]), Female allosomes
360 , -101.769 , array([ 0.192905 , 0.839966 , 0.0302067 , 0.901168 , 6.96734 ]), Male allosomes
390 , -184.944 , array([ 0.192905 , 0.842584 , 0.0302067 , 0.920196 , 6.96734 ]), Female allosomes
390 , -101.806 , array([ 0.192905 , 0.842584 , 0.0302067 , 0.920196 , 6.96734 ]), Male allosomes
420 , -184.921 , array([ 0.192905 , 0.841579 , 0.0302067 , 0.929198 , 6.96734 ]), Female allosomes
420 , -101.815 , array([ 0.192905 , 0.841579 , 0.0302067 , 0.929198 , 6.96734 ]), Male allosomes
450 , -184.909 , array([ 0.192905 , 0.84156 , 0.0302067 , 0.932817 , 6.96734 ]), Female allosomes
450 , -101.821 , array([ 0.192905 , 0.84156 , 0.0302067 , 0.932817 , 6.96734 ]), Male allosomes
480 , -184.905 , array([ 0.192905 , 0.841351 , 0.0302067 , 0.93472 , 6.96734 ]), Female allosomes
480 , -101.823 , array([ 0.192905 , 0.841351 , 0.0302067 , 0.93472 , 6.96734 ]), Male allosomes
510 , -184.898 , array([ 0.192905 , 0.841277 , 0.0302067 , 0.935269 , 6.96734 ]), Female allosomes
510 , -101.844 , array([ 0.192905 , 0.841277 , 0.0302067 , 0.935269 , 6.96734 ]), Male allosomes
516 , -184.903 , array([ 0.192905 , 0.841292 , 0.0302067 , 0.935266 , 6.96734 ]), Female allosomes
516 , -101.824 , array([ 0.192905 , 0.841292 , 0.0302067 , 0.935266 , 6.96734 ]), Male allosomes
Optimization completed.
-----------------------
In Step 2: Results from multiple optimization runs with different starting parameters:
-----------------------------------------------------------------------------------------------
Run | LogLik | REUR | REUR_sex_bias | RNAT | RNAT_sex_bias | t
-----------------------------------------------------------------------------------------------
1 | -293.23 | 0.1929 | 0.2236 | 0.03021 | -0.01363 | 6.967
2 | -294.365 | 0.1929 | 0.1238 | 0.03021 | -0.01367 | 6.967
3 | -286.735 | 0.1929 | 0.8413 | 0.03021 | 0.9302 | 6.967
4 | -293.564 | 0.1929 | 0.1931 | 0.03021 | -0.01364 | 6.967
5 | -286.727 | 0.1929 | 0.8413 | 0.03021 | 0.9353 | 6.967
-----------------------------------------------------------------------------------------------
Selecting best parameters from step 2.
Step 2 used allosomal data only. Final likelihood is evaluated on autosomal + allosomal data at the selected optimal parameters.
--------------------------------------------------------------------------------------------------
Launching re-optimization until convergence is achieved or 5 re-optimizations have been performed.
--------------------------------------------------------------------------------------------------
Re-optimization 1/5: re-optimizing starting from the current optimal parameters (likelihood = -826.907346).
-------------------------------------------------------------------------------
Step 1 : Optimizing autosomal likelihood over parameters ['REUR', 'RNAT', 't'].
-------------------------------------------------------------------------------
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
18 , -540.181 , array([ 0.192905 , 0.841292 , 0.0302067 , 0.935266 , 6.96734 ]), Autosomes
Optimization completed.
-----------------------
----------------------------------------------------------------------------------------------
Step 2 : Optimizing allosomal likelihood over parameters : ['REUR_sex_bias', 'RNAT_sex_bias'].
----------------------------------------------------------------------------------------------
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
30 , -184.899 , array([ 0.192905 , 0.841345 , 0.0302067 , 0.936428 , 6.96734 ]), Female allosomes
30 , -101.826 , array([ 0.192905 , 0.841345 , 0.0302067 , 0.936428 , 6.96734 ]), Male allosomes
60 , -184.897 , array([ 0.192905 , 0.841281 , 0.0302067 , 0.936964 , 6.96734 ]), Female allosomes
60 , -101.827 , array([ 0.192905 , 0.841281 , 0.0302067 , 0.936964 , 6.96734 ]), Male allosomes
68 , -184.897 , array([ 0.192905 , 0.841279 , 0.0302067 , 0.936973 , 6.96734 ]), Female allosomes
68 , -101.827 , array([ 0.192905 , 0.841279 , 0.0302067 , 0.936973 , 6.96734 ]), Male allosomes
Optimization completed.
-----------------------
No further improvement in likelihood after 1 repetitions. Re-optimization completed.
Final parameters and corresponding likelihood computed on autosomal + allosomal data:
-------------------------------------------------------------------------------------------------------------------------
LogLik | REUR | REUR_sex_bias | RNAT | RNAT_sex_bias | t | X_AFR_rate | X_AFR_sex_bias
-------------------------------------------------------------------------------------------------------------------------
-826.905 | 0.1929 | 0.8413 | 0.03021 | 0.937 | 6.967 | 0.7769 | -0.8542
-------------------------------------------------------------------------------------------------------------------------
Parameters X_AFR_rate, X_AFR_sex_bias correspond to the dependent ancestry and were not free in the optimization.
The optimal solution has sex-bias parameter(s) RNAT_sex_bias near their ±1 boundary.
Re-optimizing with sex-bias parameter(s) RNAT_sex_bias fixed at their boundary value.
-------------------------------------------------------------------------------
Step 1 : Optimizing autosomal likelihood over parameters ['REUR', 'RNAT', 't'].
-------------------------------------------------------------------------------
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
18 , -540.181 , array([ 0.192905 , 0.841279 , 0.0302067 , 0.999 , 6.96734 ]), Autosomes
Optimization completed.
-----------------------
-----------------------------------------------------------------------------
Step 2 : Optimizing allosomal likelihood over parameters : ['REUR_sex_bias'].
-----------------------------------------------------------------------------
Iter. Log-likelihood Model parameters Transmission
-------------------------------------------------------------
10 , -184.695 , array([ 0.192905 , 0.841279 , 0.0302067 , 0.999 , 6.96734 ]), Female allosomes
10 , -101.942 , array([ 0.192905 , 0.841279 , 0.0302067 , 0.999 , 6.96734 ]), Male allosomes
Optimization completed.
-----------------------
Final parameters and corresponding likelihood computed on autosomal + allosomal data:
-------------------------------------------------------------------------------------------------------------------------
LogLik | REUR | REUR_sex_bias | RNAT | RNAT_sex_bias | t | X_AFR_rate | X_AFR_sex_bias
-------------------------------------------------------------------------------------------------------------------------
-826.818 | 0.1929 | 0.8413 | 0.03021 | 0.999 | 6.967 | 0.7769 | -0.8626
-------------------------------------------------------------------------------------------------------------------------
Parameters X_AFR_rate, X_AFR_sex_bias correspond to the dependent ancestry and were not free in the optimization.
No free sex-bias parameters remain at a boundary. Boundary re-optimization completed.
Predicted autosome proportions: [0.19290471 0.03020672 0.77688858]
Predicted allosome proportions: [0.24700026 0.04026555 0.71273419]
Results saved to : output_one_pulse
{'destination_dir': PosixPath('/home/runner/work/tracts/tracts/docs/source/auto_examples/ASW/output_one_pulse'), 'table_file': PosixPath('/home/runner/work/tracts/tracts/docs/source/auto_examples/ASW/output_one_pulse/ASW_test_output_optimal_parameters.txt')}
import sys
from pathlib import Path
from tracts.driver import run_tracts
# Read files automatically for online documentation
sys.path.append('.')
script_dir = Path.cwd()
driver_filename = script_dir / "ASW_one_pulse.yaml"
run_tracts(
driver_filename=str(driver_filename),
script_dir=str(script_dir),
)
Total running time of the script: (12 minutes 37.598 seconds)