From ddaf66fba4bfe94b3d3a2cae9b016033ace5330f Mon Sep 17 00:00:00 2001 From: samuelklee Date: Tue, 9 Jul 2024 16:08:15 -0400 Subject: [PATCH] Updated Python and PyMC, removed TensorFlow, and added PyTorch in conda environment. (#8561) * Updated Python and PyMC, removed TensorFlow, and added PyTorch in Docker and conda environments. Notable environment changes: python 3.6.10 -> 3.10.13, pymc 3.1 -> 5.10.0, theano 1.0.4 -> pytensor 2.18.1, added pytorch 2.1.0, removed tensorflow 1.15.0 and other CNN dependencies, added libblas-dev to the base Docker. * Updated gCNV code to account for changes from PyMC3/Theano to PyMC/PyTensor. * Updated gCNV integration tests. * Updated gCNV WDL tests. * Updated other tests and tools affected by environment changes. * Reverted posterior sampling to online implementation. * Updated localDevCondaEnv task in build.gradle. * Addressed review comments and cleaned up TODOs. * Released gatkbase-3.3.0 and updated Dockerfile. * Added DeprecatedFeature tags to CNNScoreVariants, CNNVariantTrain, and CNNVariantWriteTensors. --- .github/workflows/gatk-tests.yml | 2 +- Dockerfile | 4 +- build.gradle | 2 +- .../cnv_germline_case_scattered_workflow.json | 4 +- scripts/docker/gatkbase/Dockerfile | 1 + scripts/gatkcondaenv.yml.template | 66 ++-- .../DetermineGermlineContigPloidy.java | 10 +- .../tools/copynumber/GermlineCNVCaller.java | 10 +- .../PostprocessGermlineCNVCalls.java | 10 +- .../plotting/PlotDenoisedCopyRatios.java | 3 +- .../plotting/PlotModeledSegments.java | 3 +- .../tools/walkers/vqsr/CNNScoreVariants.java | 1 + .../tools/walkers/vqsr/CNNVariantTrain.java | 2 +- .../walkers/vqsr/CNNVariantWriteTensors.java | 2 +- .../org/broadinstitute/hellbender/README.md | 6 + .../hellbender/gcnvkernel/README.txt | 4 +- .../hellbender/gcnvkernel/__init__.py | 8 +- .../hellbender/gcnvkernel/_version.py | 2 +- .../hellbender/gcnvkernel/config.py | 2 +- .../inference/convergence_tracker.py | 2 +- .../inference/deterministic_annealing.py | 31 +- .../gcnvkernel/inference/fancy_optimizers.py | 44 +-- .../gcnvkernel/inference/param_tracker.py | 2 +- .../hellbender/gcnvkernel/io/io_commons.py | 51 +-- .../gcnvkernel/io/io_denoising_calling.py | 6 +- .../hellbender/gcnvkernel/io/io_ploidy.py | 2 +- .../hellbender/gcnvkernel/models/commons.py | 110 +++--- .../hellbender/gcnvkernel/models/dists.py | 63 ---- .../gcnvkernel/models/fancy_model.py | 19 +- .../models/model_denoising_calling.py | 232 ++++++------ .../gcnvkernel/models/model_ploidy.py | 83 ++--- .../models/{theano_hmm.py => pytensor_hmm.py} | 148 ++++---- .../postprocess/segment_quality_utils.py | 52 +-- .../postprocess/viterbi_segmentation.py | 18 +- .../gcnvkernel/tasks/inference_task_base.py | 20 +- .../tasks/task_case_denoising_calling.py | 4 +- .../tasks/task_cohort_denoising_calling.py | 18 +- .../tasks/task_cohort_ploidy_determination.py | 2 +- .../hellbender/gcnvkernel/types.py | 16 +- .../hellbender/gcnvkernel/utils/math.py | 6 +- .../org/broadinstitute/hellbender/setup.py | 2 +- .../hellbender/setup_gcnvkernel.py | 10 +- .../copynumber/case_denoising_calling.py | 14 +- .../case_determine_ploidy_and_depth.py | 14 +- .../copynumber/cohort_denoising_calling.py | 14 +- .../cohort_determine_ploidy_and_depth.py | 14 +- .../tools/copynumber/segment_gcnv_calls.py | 14 +- .../GermlineCNVCallerIntegrationTest.java | 6 +- .../vqsr/CNNScoreVariantsIntegrationTest.java | 27 +- .../walkers/vqsr/CNNVariantPipelineTest.java | 12 +- .../FilterVariantTranchesIntegrationTest.java | 6 +- .../PythonEnvironmentIntegrationTest.java | 27 +- .../wes-do-gc-contig-ploidy-model.tar.gz | 4 +- .../wes-do-gc-gcnv-model-0.tar.gz | 3 - .../wes-do-gc-gcnv-model-1.tar.gz | 3 - .../wes-do-gc-gcnv-model-shard-0.tar.gz | 3 + .../wes-do-gc-gcnv-model-shard-1.tar.gz | 3 + ...n.snpIndel.posOnly.IF.score.snp.annot.hdf5 | 2 +- ....snpIndel.posOnly.IF.score.snp.scores.hdf5 | 2 +- ...rain.snpIndel.posOnly.IF.score.snp.vcf.idx | 2 +- ...Indel.posOnly.IF.score.snpIndel.annot.hdf5 | 2 +- ...ndel.posOnly.IF.score.snpIndel.scores.hdf5 | 2 +- ...snpIndel.posOnly.IF.score.snpIndel.vcf.idx | 2 +- ...n.snpIndel.posOnly.IF.score.snp.annot.hdf5 | 2 +- ....snpIndel.posOnly.IF.score.snp.scores.hdf5 | 2 +- ...rain.snpIndel.posOnly.IF.score.snp.vcf.idx | 2 +- ...Indel.posOnly.IF.score.snpIndel.annot.hdf5 | 2 +- ...ndel.posOnly.IF.score.snpIndel.scores.hdf5 | 2 +- ...snpIndel.posOnly.IF.score.snpIndel.vcf.idx | 2 +- ....snp.posOnly.IF.snp.calibrationScores.hdf5 | 2 +- ....posUn.train.snp.posOnly.IF.snp.scorer.pkl | 4 +- ...ain.snp.posOnly.IF.snp.trainingScores.hdf5 | 2 +- ...IFDifferentSeed.snp.calibrationScores.hdf5 | 2 +- ...snp.posOnly.IFDifferentSeed.snp.scorer.pkl | 4 +- ...ly.IFDifferentSeed.snp.trainingScores.hdf5 | 2 +- ...el.posOnly.IF.indel.calibrationScores.hdf5 | 2 +- ...train.snpIndel.posOnly.IF.indel.scorer.pkl | 4 +- ...Indel.posOnly.IF.indel.trainingScores.hdf5 | 2 +- ...ndel.posOnly.IF.snp.calibrationScores.hdf5 | 2 +- ...n.train.snpIndel.posOnly.IF.snp.scorer.pkl | 4 +- ...npIndel.posOnly.IF.snp.trainingScores.hdf5 | 2 +- ...DifferentSeed.indel.calibrationScores.hdf5 | 2 +- ...l.posOnly.IFDifferentSeed.indel.scorer.pkl | 4 +- ....IFDifferentSeed.indel.trainingScores.hdf5 | 2 +- ...IFDifferentSeed.snp.calibrationScores.hdf5 | 2 +- ...del.posOnly.IFDifferentSeed.snp.scorer.pkl | 4 +- ...ly.IFDifferentSeed.snp.trainingScores.hdf5 | 2 +- ....snp.posOnly.IF.snp.calibrationScores.hdf5 | 2 +- ....posUn.train.snp.posOnly.IF.snp.scorer.pkl | 4 +- ...ain.snp.posOnly.IF.snp.trainingScores.hdf5 | 2 +- ...IFDifferentSeed.snp.calibrationScores.hdf5 | 2 +- ...snp.posOnly.IFDifferentSeed.snp.scorer.pkl | 4 +- ...ly.IFDifferentSeed.snp.trainingScores.hdf5 | 2 +- ...el.posOnly.IF.indel.calibrationScores.hdf5 | 2 +- ...train.snpIndel.posOnly.IF.indel.scorer.pkl | 4 +- ...Indel.posOnly.IF.indel.trainingScores.hdf5 | 2 +- ...ndel.posOnly.IF.snp.calibrationScores.hdf5 | 2 +- ...n.train.snpIndel.posOnly.IF.snp.scorer.pkl | 4 +- ...npIndel.posOnly.IF.snp.trainingScores.hdf5 | 2 +- ...DifferentSeed.indel.calibrationScores.hdf5 | 2 +- ...l.posOnly.IFDifferentSeed.indel.scorer.pkl | 4 +- ....IFDifferentSeed.indel.trainingScores.hdf5 | 2 +- ...IFDifferentSeed.snp.calibrationScores.hdf5 | 2 +- ...del.posOnly.IFDifferentSeed.snp.scorer.pkl | 4 +- ...ly.IFDifferentSeed.snp.trainingScores.hdf5 | 2 +- .../SAMPLE_0/log_c_emission_tc.tsv | 340 +++++++++--------- .../shard_0-calls/SAMPLE_0/log_q_c_tc.tsv | 340 +++++++++--------- .../SAMPLE_0/mu_denoised_copy_ratio_t.tsv | 340 +++++++++--------- .../shard_0-calls/SAMPLE_0/mu_psi_s_log__.tsv | 2 +- .../SAMPLE_0/mu_read_depth_s_log__.tsv | 2 +- .../shard_0-calls/SAMPLE_0/mu_z_su.tsv | 12 +- .../SAMPLE_0/std_denoised_copy_ratio_t.tsv | 340 +++++++++--------- .../SAMPLE_0/std_psi_s_log__.tsv | 2 +- .../SAMPLE_0/std_read_depth_s_log__.tsv | 2 +- .../shard_0-calls/SAMPLE_0/std_z_su.tsv | 12 +- .../shard_0-calls/gcnvkernel_version.json | 2 +- .../shard_0-model/gcnvkernel_version.json | 2 +- .../shard_0-model/log_q_tau_tk.tsv | 340 +++++++++--------- .../shard_0-model/mu_W_tu.tsv | 340 +++++++++--------- .../shard_0-model/mu_ard_u_interval__.tsv | 9 + .../shard_0-model/mu_ard_u_log__.tsv | 9 - .../shard_0-model/mu_log_mean_bias_t.tsv | 340 +++++++++--------- .../shard_0-model/mu_psi_t_log__.tsv | 340 +++++++++--------- .../shard_0-model/std_W_tu.tsv | 340 +++++++++--------- .../shard_0-model/std_ard_u_interval__.tsv | 9 + .../shard_0-model/std_ard_u_log__.tsv | 9 - .../shard_0-model/std_log_mean_bias_t.tsv | 340 +++++++++--------- .../shard_0-model/std_psi_t_log__.tsv | 340 +++++++++--------- 128 files changed, 2563 insertions(+), 2616 deletions(-) delete mode 100644 src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/dists.py rename src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/{theano_hmm.py => pytensor_hmm.py} (76%) delete mode 100644 src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-0.tar.gz delete mode 100644 src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-1.tar.gz create mode 100644 src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-shard-0.tar.gz create mode 100644 src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-shard-1.tar.gz create mode 100644 src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_ard_u_interval__.tsv delete mode 100644 src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_ard_u_log__.tsv create mode 100644 src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_ard_u_interval__.tsv delete mode 100644 src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_ard_u_log__.tsv diff --git a/.github/workflows/gatk-tests.yml b/.github/workflows/gatk-tests.yml index 76fa7a9d07e..5d2e7f5f497 100644 --- a/.github/workflows/gatk-tests.yml +++ b/.github/workflows/gatk-tests.yml @@ -291,7 +291,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - wdlTest: [ 'RUN_CNV_GERMLINE_COHORT_WDL', 'RUN_CNV_GERMLINE_CASE_WDL', 'RUN_CNV_SOMATIC_WDL', 'RUN_M2_WDL', 'RUN_CNN_WDL', 'RUN_VCF_SITE_LEVEL_FILTERING_WDL' ] + wdlTest: [ 'RUN_CNV_GERMLINE_COHORT_WDL', 'RUN_CNV_GERMLINE_CASE_WDL', 'RUN_CNV_SOMATIC_WDL', 'RUN_M2_WDL', 'RUN_VCF_SITE_LEVEL_FILTERING_WDL' ] continue-on-error: true name: WDL test ${{ matrix.wdlTest }} on cromwell steps: diff --git a/Dockerfile b/Dockerfile index ceec398a9d3..6349f4088fa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG BASE_DOCKER=broadinstitute/gatk:gatkbase-3.2.0 +ARG BASE_DOCKER=broadinstitute/gatk:gatkbase-3.3.0 # stage 1 for constructing the GATK zip FROM ${BASE_DOCKER} AS gradleBuild @@ -85,7 +85,7 @@ ENV CLASSPATH=/gatk/gatk.jar:$CLASSPATH PATH=$CONDA_PATH/envs/gatk/bin:$CONDA_PA # Start GATK Python environment -RUN conda env create -n gatk -f /gatk/gatkcondaenv.yml && \ +RUN conda env create -vv -n gatk -f /gatk/gatkcondaenv.yml && \ echo "source activate gatk" >> /gatk/gatkenv.rc && \ echo "source /gatk/gatk-completion.sh" >> /gatk/gatkenv.rc && \ conda clean -afy && \ diff --git a/build.gradle b/build.gradle index 9e82637cdfe..1c31efa500b 100644 --- a/build.gradle +++ b/build.gradle @@ -684,7 +684,7 @@ task localDevCondaEnv(type: Exec) { dependsOn 'condaEnvironmentDefinition' inputs.file("$buildDir/$pythonPackageArchiveName") workingDir "$buildDir" - commandLine "conda", "env", "create", "--force", "-f", gatkCondaYML + commandLine "conda", "env", "create", "--yes", "-f", gatkCondaYML } task javadocJar(type: Jar, dependsOn: javadoc) { diff --git a/scripts/cnv_cromwell_tests/germline/cnv_germline_case_scattered_workflow.json b/scripts/cnv_cromwell_tests/germline/cnv_germline_case_scattered_workflow.json index aeb0bb8796d..ab85fe78e83 100644 --- a/scripts/cnv_cromwell_tests/germline/cnv_germline_case_scattered_workflow.json +++ b/scripts/cnv_cromwell_tests/germline/cnv_germline_case_scattered_workflow.json @@ -17,8 +17,8 @@ "CNVGermlineCaseScatteredWorkflow.gcnv_max_training_epochs": 1, "CNVGermlineCaseScatteredWorkflow.gcnv_min_training_epochs": 1, "CNVGermlineCaseScatteredWorkflow.gcnv_model_tars": [ - "/home/runner/work/gatk/gatk/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-0.tar.gz", - "/home/runner/work/gatk/gatk/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-1.tar.gz"], + "/home/runner/work/gatk/gatk/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-shard-0.tar.gz", + "/home/runner/work/gatk/gatk/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-shard-1.tar.gz"], "CNVGermlineCaseScatteredWorkflow.gcnv_num_thermal_advi_iters": 1, "CNVGermlineCaseScatteredWorkflow.intervals": "/home/runner/work/gatk/gatk/src/test/resources/large/cnv_germline_workflows_test_files/ice_targets_chr20xy.interval_list", "CNVGermlineCaseScatteredWorkflow.filtered_intervals": "/home/runner/work/gatk/gatk/src/test/resources/large/cnv_germline_workflows_test_files/ice_targets_chr20xy.preprocessed.filtered.interval_list", diff --git a/scripts/docker/gatkbase/Dockerfile b/scripts/docker/gatkbase/Dockerfile index a4ba3ac557a..7f405744c85 100644 --- a/scripts/docker/gatkbase/Dockerfile +++ b/scripts/docker/gatkbase/Dockerfile @@ -30,6 +30,7 @@ RUN apt update && \ git \ gpg-agent \ build-essential \ + libblas-dev \ openjdk-17-jdk \ vim \ software-properties-common && \ diff --git a/scripts/gatkcondaenv.yml.template b/scripts/gatkcondaenv.yml.template index 75284b829e8..4fa5ae1d805 100644 --- a/scripts/gatkcondaenv.yml.template +++ b/scripts/gatkcondaenv.yml.template @@ -15,53 +15,41 @@ name: $condaEnvName channels: # if channels other than conda-forge are added and the channel order is changed (note that conda channel_priority is currently set to flexible), -# verify that key dependencies are installed from the correct channel and compiled against MKL +# verify that key dependencies are installed from the correct channel - conda-forge -- defaults + dependencies: # core python dependencies -- conda-forge::python=3.6.10 # do not update -- conda-forge::pip=21.3.1 -- conda-forge::mkl=2019.5 # MKL typically provides dramatic performance increases for theano, tensorflow, and other key dependencies -- conda-forge::mkl-service=2.3.0 -- conda-forge::joblib=1.1.1 # must pin joblib - versions after 1.1.1 no longer support python 3.6 -- conda-forge::numpy=1.17.5 # do not update, this will break scipy=1.0.0 - # verify that numpy is compiled against MKL (e.g., by checking *_mkl_info using numpy.show_config()) - # and that it is used in tensorflow, theano, and other key dependencies -- conda-forge::theano=1.0.4 # it is unlikely that new versions of theano will be released - # verify that this is using numpy compiled against MKL (e.g., by the presence of -lmkl_rt in theano.config.blas.ldflags) -- defaults::tensorflow=1.15.0 # update only if absolutely necessary, as this may cause conflicts with other core dependencies - # verify that this is using numpy compiled against MKL (e.g., by checking tensorflow.pywrap_tensorflow.IsMklEnabled()) -- conda-forge::scipy=1.0.0 # do not update, this will break a scipy.misc.logsumexp import (deprecated in scipy=1.0.0) in pymc3=3.1 -- conda-forge::pymc3=3.1 # do not update, this will break gcnvkernel -- conda-forge::h5py=2.10.0 # required by keras 2.2.4 -- conda-forge::keras=2.2.4 # updated from pip-installed 2.2.0, which caused various conflicts/clobbers of conda-installed packages - # conda-installed 2.2.4 appears to be the most recent version with a consistent API and without conflicts/clobbers - # if you wish to update, note that versions of conda-forge::keras after 2.2.5 - # undesirably set the environment variable KERAS_BACKEND = theano by default -- defaults::intel-openmp=2019.4 -- conda-forge::scikit-learn=0.23.1 -- conda-forge::matplotlib=3.2.1 -- conda-forge::pandas=1.0.3 -- conda-forge::typing_extensions=4.1.1 # see https://github.com/broadinstitute/gatk/issues/7800 and linked PRs -- conda-forge::dill=0.3.4 # used for pickling lambdas in TrainVariantAnnotationsModel +- conda-forge::python=3.10.13 # do not update without good reason +- conda-forge:pip=23.3.1 +- conda-forge:blas=1.0=mkl # our official environment uses MKL versions of various packages; if other versions are desired, users should edit this YML accordingly +- conda-forge::numpy=1.26.2 +- conda-forge::pymc=5.10.1 +- conda-forge::pytensor=2.18.3 +- conda-forge::scipy=1.11.4 +- conda-forge::h5py=3.10.0 +- conda-forge::pytorch=2.1.0=*mkl*100 +- conda-forge::scikit-learn=1.3.2 +- conda-forge::matplotlib=3.8.2 +- conda-forge::pandas=2.1.3 +- conda-forge::tqdm=4.66.1 +- conda-forge::dill=0.3.7 # used for pickling lambdas in TrainVariantAnnotationsModel # core R dependencies; these should only be used for plotting and do not take precedence over core python dependencies! -- r-base=3.6.2 -- r-data.table=1.12.8 -- r-dplyr=0.8.5 -- r-getopt=1.20.3 -- r-ggplot2=3.3.0 -- r-gplots=3.0.3 -- r-gsalib=2.1 -- r-optparse=1.6.4 -- r-backports=1.1.10 +- r-base=4.3.1 +- r-data.table=1.14.8 +- r-dplyr=1.1.3 +- r-getopt=1.20.4 +- r-ggplot2=3.4.4 +- r-gplots=3.1.3 +- r-gsalib=2.2.1 +- r-optparse=1.7.3 +- r-backports=1.4.1 # other python dependencies; these should be removed after functionality is moved into Java code -- biopython=1.76 -- pyvcf=0.6.8 -- bioconda::pysam=0.15.3 # using older conda-installed versions may result in libcrypto / openssl bugs +- bioconda::pysam=0.22.0 +- conda-forge::pyvcf=0.6.8 # pip installs should be avoided, as pip may not respect the dependencies found by the conda solver - pip: diff --git a/src/main/java/org/broadinstitute/hellbender/tools/copynumber/DetermineGermlineContigPloidy.java b/src/main/java/org/broadinstitute/hellbender/tools/copynumber/DetermineGermlineContigPloidy.java index fcb93e202b9..bb2f7f1f0e9 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/copynumber/DetermineGermlineContigPloidy.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/copynumber/DetermineGermlineContigPloidy.java @@ -67,12 +67,12 @@ *

OpenMP and MKL parallelism can be controlled by setting the OMP_NUM_THREADS and MKL_NUM_THREADS * environment variables, respectively.

* - *

Advanced users may wish to set the THEANO_FLAGS environment variable to override the GATK theano + *

Advanced users may wish to set the PYTENSOR_FLAGS environment variable to override the GATK PyTensor * configuration. For example, by running - * THEANO_FLAGS="base_compiledir=PATH/TO/BASE_COMPILEDIR" gatk DetermineGermlineContigPloidy ..., users can specify - * the theano compilation directory (which is set to $HOME/.theano by default). See theano documentation - * at - * https://theano-pymc.readthedocs.io/en/latest/library/config.html. + * PYTENSOR_FLAGS="base_compiledir=PATH/TO/BASE_COMPILEDIR" gatk DetermineGermlineContigPloidy ..., users can specify + * the PyTensor compilation directory (which is set to $HOME/.pytensor by default). See PyTensor documentation + * at + * https://pytensor.readthedocs.io/en/latest/library/config.html. *

* *

Tool run modes

diff --git a/src/main/java/org/broadinstitute/hellbender/tools/copynumber/GermlineCNVCaller.java b/src/main/java/org/broadinstitute/hellbender/tools/copynumber/GermlineCNVCaller.java index 095ffb76850..aac440912bd 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/copynumber/GermlineCNVCaller.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/copynumber/GermlineCNVCaller.java @@ -92,12 +92,12 @@ *

OpenMP and MKL parallelism can be controlled by setting the OMP_NUM_THREADS and MKL_NUM_THREADS * environment variables, respectively.

* - *

Advanced users may wish to set the THEANO_FLAGS environment variable to override the GATK theano + *

Advanced users may wish to set the PYTENSOR_FLAGS environment variable to override the GATK PyTensor * configuration. For example, by running - * THEANO_FLAGS="base_compiledir=PATH/TO/BASE_COMPILEDIR" gatk GermlineCNVCaller ..., users can specify - * the theano compilation directory (which is set to $HOME/.theano by default). See theano documentation - * at - * https://theano-pymc.readthedocs.io/en/latest/library/config.html. + * PYTENSOR_FLAGS="base_compiledir=PATH/TO/BASE_COMPILEDIR" gatk DetermineGermlineContigPloidy ..., users can specify + * the PyTensor compilation directory (which is set to $HOME/.pytensor by default). See PyTensor documentation + * at + * https://pytensor.readthedocs.io/en/latest/library/config.html. *

* *

Resource usage

diff --git a/src/main/java/org/broadinstitute/hellbender/tools/copynumber/PostprocessGermlineCNVCalls.java b/src/main/java/org/broadinstitute/hellbender/tools/copynumber/PostprocessGermlineCNVCalls.java index fa68bb4f34d..b9ac8561e59 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/copynumber/PostprocessGermlineCNVCalls.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/copynumber/PostprocessGermlineCNVCalls.java @@ -89,12 +89,12 @@ * the python environment is already set up. Otherwise, the environment must be created and activated as described in the * main GATK README.md file.

* - *

Advanced users may wish to set the THEANO_FLAGS environment variable to override the GATK theano + *

Advanced users may wish to set the PYTENSOR_FLAGS environment variable to override the GATK PyTensor * configuration. For example, by running - * THEANO_FLAGS="base_compiledir=PATH/TO/BASE_COMPILEDIR" gatk PostprocessGermlineCNVCalls ..., users can specify - * the theano compilation directory (which is set to $HOME/.theano by default). See theano documentation - * at - * https://theano-pymc.readthedocs.io/en/latest/library/config.html. + * PYTENSOR_FLAGS="base_compiledir=PATH/TO/BASE_COMPILEDIR" gatk DetermineGermlineContigPloidy ..., users can specify + * the PyTensor compilation directory (which is set to $HOME/.pytensor by default). See PyTensor documentation + * at + * https://pytensor.readthedocs.io/en/latest/library/config.html. *

* *

Required inputs:

diff --git a/src/main/java/org/broadinstitute/hellbender/tools/copynumber/plotting/PlotDenoisedCopyRatios.java b/src/main/java/org/broadinstitute/hellbender/tools/copynumber/plotting/PlotDenoisedCopyRatios.java index 33672cac84f..215b03154fa 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/copynumber/plotting/PlotDenoisedCopyRatios.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/copynumber/plotting/PlotDenoisedCopyRatios.java @@ -204,8 +204,7 @@ private void writeDenoisingPlots(final String sampleName, //this runs the R statement "source("CNVPlottingLibrary.R")" before the main script runs executor.addScript(new Resource(PlottingUtils.CNV_PLOTTING_R_LIBRARY, PlotDenoisedCopyRatios.class)); executor.addScript(new Resource(PLOT_DENOISED_COPY_RATIOS_R_SCRIPT, PlotDenoisedCopyRatios.class)); - //--args is needed for Rscript to recognize other arguments properly - executor.addArgs("--args", + executor.addArgs( "--sample_name=" + sampleName, "--standardized_copy_ratios_file=" + CopyNumberArgumentValidationUtils.getCanonicalPath(inputStandardizedCopyRatiosFile), "--denoised_copy_ratios_file=" + CopyNumberArgumentValidationUtils.getCanonicalPath(inputDenoisedCopyRatiosFile), diff --git a/src/main/java/org/broadinstitute/hellbender/tools/copynumber/plotting/PlotModeledSegments.java b/src/main/java/org/broadinstitute/hellbender/tools/copynumber/plotting/PlotModeledSegments.java index 89a211cfdd9..424c15880b2 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/copynumber/plotting/PlotModeledSegments.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/copynumber/plotting/PlotModeledSegments.java @@ -285,8 +285,7 @@ private void writeModeledSegmentsPlot(final String sampleName, //this runs the R statement "source("CNVPlottingLibrary.R")" before the main script runs executor.addScript(new Resource(PlottingUtils.CNV_PLOTTING_R_LIBRARY, PlotModeledSegments.class)); executor.addScript(new Resource(PLOT_MODELED_SEGMENTS_R_SCRIPT, PlotModeledSegments.class)); - //--args is needed for Rscript to recognize other arguments properly - executor.addArgs("--args", + executor.addArgs( "--sample_name=" + sampleName, "--denoised_copy_ratios_file=" + (inputDenoisedCopyRatiosFile == null ? null : CopyNumberArgumentValidationUtils.getCanonicalPath(inputDenoisedCopyRatiosFile)), "--allelic_counts_file=" + (inputAllelicCountsFile == null ? null : CopyNumberArgumentValidationUtils.getCanonicalPath(inputAllelicCountsFile)), diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNScoreVariants.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNScoreVariants.java index a17da13b0cf..88e71d7df40 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNScoreVariants.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNScoreVariants.java @@ -103,6 +103,7 @@ * -weights path/to/my_model_folder/2dmodel.hd5 * */ +@DeprecatedFeature @DocumentedFeature @CommandLineProgramProperties( summary = CNNScoreVariants.USAGE_SUMMARY, diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNVariantTrain.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNVariantTrain.java index 32ea3568b10..8fe917a2cff 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNVariantTrain.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNVariantTrain.java @@ -57,8 +57,8 @@ oneLineSummary = "Train a CNN model for filtering variants", programGroup = VariantFilteringProgramGroup.class ) +@DeprecatedFeature @DocumentedFeature -@ExperimentalFeature public class CNNVariantTrain extends CommandLineProgram { @Argument(fullName = "input-tensor-dir", shortName = "input-tensor-dir", doc = "Directory of training tensors to create.") diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNVariantWriteTensors.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNVariantWriteTensors.java index 0fd0ec79e17..49ce59bdd0c 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNVariantWriteTensors.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNVariantWriteTensors.java @@ -71,8 +71,8 @@ oneLineSummary = "Write variant tensors for training a CNN to filter variants", programGroup = VariantFilteringProgramGroup.class ) +@DeprecatedFeature @DocumentedFeature -@ExperimentalFeature public class CNNVariantWriteTensors extends CommandLineProgram { @Argument(fullName = StandardArgumentDefinitions.REFERENCE_LONG_NAME, diff --git a/src/main/python/org/broadinstitute/hellbender/README.md b/src/main/python/org/broadinstitute/hellbender/README.md index 1c57defd1a3..9780f6a7b3d 100644 --- a/src/main/python/org/broadinstitute/hellbender/README.md +++ b/src/main/python/org/broadinstitute/hellbender/README.md @@ -4,3 +4,9 @@ can be installed as a standalone package, a corresponding `setup_. file may be placed in this directory. However, during creation of the common GATK conda environment, all packages will be combined and pip-installed as a single package named ``gatkpythonpackages`` by `setup.py`. + +However, note that it is easier to do development by installing live/editable versions of these packages +(i.e., running `pip install --editable .` in this directory), so that any code changes are immediately reflected in +the underlying environment. To do this, 1) remove the pip install of the `gatkpythonpackages.zip` archive in the +conda environment file, 2) create and activate the corresponding conda environment, then +3) run the editable pip install. diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/README.txt b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/README.txt index da8aa9c131a..92e9c9e3c3d 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/README.txt +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/README.txt @@ -8,7 +8,7 @@ germline copy number variant (gCNV) tools and workflows. This module implements inference schemes for read-depth profile denoising, germline integer copy number variation discovery, germline contig ploidy determination, associated I/O methods, and helper CLI scripts. `gcnvkernel` additionally provides general-purpose -inference schemas built on the top of `PyMC3` and `theano`. +inference schemas built on the top of `PyMC` and `pytensor`. The module is organized as follows:: @@ -20,7 +20,7 @@ The module is organized as follows:: genomic intervals, read count data, global and sample-specific posteriors, and sample metadata. - `gcnvkernel.models`: `PyMC3` model declarations, `theano` symbolic operations (e.g. + `gcnvkernel.models`: `PyMC` model declarations, `pytensor` symbolic operations (e.g. forward-backward algorithm for HMMs), and custom probability distributions. `gcnvkernel.preprocess`: Routines for filtering interval lists. diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/__init__.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/__init__.py index 1b76f1d4adf..1cf10633a44 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/__init__.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/__init__.py @@ -1,4 +1,4 @@ -from pymc3 import __version__ as pymc3_version +from pymc import __version__ as pymc_version from ._version import __version__ from .io import io_commons, io_consts, io_ploidy, io_denoising_calling, \ @@ -26,6 +26,6 @@ from .tasks.inference_task_base import ConvergenceError from .utils import cli_commons, math -assert pymc3_version == "3.1", "gcnvkernel currently only supports PyMC3 3.1; version found: {0}; " \ - "please upgrade or downgrade the PyMC3 module in your python environment " \ - "accordingly.".format(pymc3_version) +assert pymc_version == "5.10.1", "gcnvkernel currently only supports PyMC 5.10.1; version found: {0}; " \ + "please upgrade or downgrade the PyMC module in your python environment " \ + "accordingly.".format(pymc_version) diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/_version.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/_version.py index 376df7ca596..e46aee1fb54 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/_version.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/_version.py @@ -1 +1 @@ -__version__ = '0.8' +__version__ = '0.9' diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/config.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/config.py index 2afda1e8975..3f1ab955e91 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/config.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/config.py @@ -1,4 +1,4 @@ -# let theano share memory workspace on large tensors with numpy +# let pytensor share memory workspace on large tensors with numpy borrow_numpy = True # if a normalized PMF violates total probability by the following threshold, it will diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/convergence_tracker.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/convergence_tracker.py index a5e94592ef3..6bd1663b945 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/convergence_tracker.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/convergence_tracker.py @@ -1,5 +1,5 @@ import numpy as np -from pymc3.variational.callbacks import Callback +from pymc.variational.callbacks import Callback from ..utils.rls import NonStationaryLinearRegression diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/deterministic_annealing.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/deterministic_annealing.py index e6524ac3dd2..8e7a901412d 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/deterministic_annealing.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/deterministic_annealing.py @@ -1,4 +1,4 @@ -import pymc3 as pm +import pymc as pm from .. import types Operator = pm.operators.Operator @@ -14,16 +14,15 @@ def __init__(self, """Initializer. Args: - approx: an instance of PyMC3 approximation - temperature: a scalar shared theano tensor variable + approx: an instance of PyMC approximation + temperature: a scalar shared pytensor tensor variable """ super().__init__(approx) assert temperature is not None self.temperature = temperature def apply(self, f): - z = self.input - return self.temperature * self.logq_norm(z) - self.logp_norm(z) + return (self.temperature * self.logq_norm - self.logp_norm)[0] class ADVIDeterministicAnnealing(Inference): @@ -32,7 +31,7 @@ class ADVIDeterministicAnnealing(Inference): Note: Temperature is not updated automatically by this class. This task is delegated to the ADVI step function. This can be done by including a temperature update in `more_updates`; refer to - `pymc3.opvi.ObjectiveFunction.step_function` for more information. + `pymc.opvi.ObjectiveFunction.step_function` for more information. """ def __init__(self, @@ -40,16 +39,16 @@ def __init__(self, model=None, cost_part_grad_scale=1, scale_cost_to_minibatch=False, - random_seed=None, start=None, + random_seed=None, + start=None, temperature=None): - assert temperature is not None, "Temperature (a scalar theano shared tensor) is not provided" + assert temperature is not None, "Temperature (a scalar pytensor shared tensor) is not provided" + approx = MeanField(local_rv=local_rv, + model=model, + cost_part_grad_scale=cost_part_grad_scale, + scale_cost_to_minibatch=scale_cost_to_minibatch, + random_seed=random_seed, + start=start) super().__init__( - KLThermal, MeanField, None, - local_rv=local_rv, - model=model, - cost_part_grad_scale=cost_part_grad_scale, - scale_cost_to_minibatch=scale_cost_to_minibatch, - random_seed=random_seed, - start=start, - op_kwargs={'temperature': temperature}) + KLThermal, approx, None, temperature=temperature) diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/fancy_optimizers.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/fancy_optimizers.py index 5eb5b733694..9eff78cbc76 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/fancy_optimizers.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/fancy_optimizers.py @@ -4,10 +4,10 @@ from typing import List import numpy as np -import pymc3 as pm -import theano as th -import theano.tensor as tt -from pymc3.variational.updates import get_or_compute_grads +import pymc as pm +import pytensor +import pytensor.tensor as pt +from pymc.variational.updates import get_or_compute_grads from .. import types from ..io import io_commons @@ -28,12 +28,12 @@ def get_optimizer(self, """ Args: - model: a generalized continuous PyMC3 model - approx: an instance of PyMC3 mean-field approximation + model: a generalized continuous PyMC model + approx: an instance of PyMC mean-field approximation Returns: A callable function that upon providing `loss_or_grads` and `params`, returns an - `OrderedDict` of shared theano tensor updates (for example, see `FancyAdamax.get_optimizer`). + `OrderedDict` of shared pytensor tensor updates (for example, see `FancyAdamax.get_optimizer`). """ raise NotImplementedError @@ -139,7 +139,7 @@ def structured_adamax(loss_or_grads=None, Returns: returns the function itself if `loss_or_grads` and `params` are not given; - otherwise, returns an ordered dict of shared tensor updates (to be used in pymc3 for compiling + otherwise, returns an ordered dict of shared tensor updates (to be used in pymc for compiling the step function) """ if loss_or_grads is None and params is None: @@ -160,16 +160,16 @@ def structured_adamax(loss_or_grads=None, for vmap in vmap_list: if vmap.var in model.sample_specific_var_registry: sample_specific_indices += [idx for idx in range(vmap.slc.start, vmap.slc.stop)] - update_indices = th.shared(np.asarray(sample_specific_indices, dtype=np.int)) + update_indices = pytensor.shared(np.asarray(sample_specific_indices, dtype=int)) num_dof = len(sample_specific_indices) - # Using theano constant to prevent upcasting of float32 - one = tt.constant(1) + # Using pytensor constant to prevent upcasting of float32 + one = pt.constant(1) if disable_bias_correction: a_t = learning_rate else: - res_prev = th.shared(pm.theanof.floatX(beta1)) + res_prev = pytensor.shared(pm.pytensorf.floatX(beta1)) res = beta1 * res_prev a_t = learning_rate / (one - res) updates[res_prev] = res @@ -179,17 +179,17 @@ def structured_adamax(loss_or_grads=None, for param, g_t in zip(params, all_grads): if sample_specific_only: g_t_view = g_t[update_indices] - m_prev = th.shared(np.zeros((num_dof,), dtype=types.floatX), - broadcastable=(False,)) - u_prev = th.shared(np.zeros((num_dof,), dtype=types.floatX), - broadcastable=(False,)) + m_prev = pytensor.shared(np.zeros((num_dof,), dtype=types.floatX), + broadcastable=(False,)) + u_prev = pytensor.shared(np.zeros((num_dof,), dtype=types.floatX), + broadcastable=(False,)) else: g_t_view = g_t value = param.get_value(borrow=True) - m_prev = th.shared(np.zeros(value.shape, dtype=types.floatX), - broadcastable=(False,)) - u_prev = th.shared(np.zeros(value.shape, dtype=types.floatX), - broadcastable=(False,)) + m_prev = pytensor.shared(np.zeros(value.shape, dtype=types.floatX), + broadcastable=(False,)) + u_prev = pytensor.shared(np.zeros(value.shape, dtype=types.floatX), + broadcastable=(False,)) # save a reference to m and u in the base class if base_class is not None: @@ -197,11 +197,11 @@ def structured_adamax(loss_or_grads=None, base_class.u_tensors.append(u_prev) m_t = beta1 * m_prev + (one - beta1) * g_t_view - u_t = tt.maximum(beta2 * u_prev, abs(g_t_view)) + u_t = pt.maximum(beta2 * u_prev, abs(g_t_view)) step = a_t * m_t / (u_t + epsilon) if sample_specific_only: - new_param = tt.inc_subtensor(param[update_indices], -step) + new_param = pt.inc_subtensor(param[update_indices], -step) else: new_param = param - step diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/param_tracker.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/param_tracker.py index c3dc0b83a0e..594e8ea3ffb 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/param_tracker.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/inference/param_tracker.py @@ -1,5 +1,5 @@ import numpy as np -import pymc3 as pm +import pymc as pm from typing import Callable, Dict from ..io import io_commons diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/io/io_commons.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/io/io_commons.py index bb8a407a878..5ff7e975353 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/io/io_commons.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/io/io_commons.py @@ -6,9 +6,10 @@ import pandas as pd from ast import literal_eval as make_tuple from typing import List, Optional, Tuple, Set, Dict +import collections import numpy as np -import pymc3 as pm +import pymc as pm from . import io_consts from .._version import __version__ as gcnvkernel_version @@ -17,6 +18,10 @@ _logger = logging.getLogger(__name__) +# originally in pymc3.blocking in PyMC3 3.5 +VarMap = collections.namedtuple('VarMap', 'var, slc, shp, dtyp') + + def read_csv(input_file: str, dtypes_dict: Dict[str, object] = None, mandatory_columns_set: Set[str] = None, @@ -268,30 +273,36 @@ def read_ndarray_from_tsv(input_file: str, return df.values.reshape(shape) -def get_var_map_list_from_mean_field_approx(approx: pm.MeanField) -> List[pm.blocking.VarMap]: - """Extracts the variable-to-linear-array of a PyMC3 mean-field approximation. +def get_var_map_list_from_mean_field_approx(approx: pm.MeanField) -> List[VarMap]: + """Extracts the variable-to-linear-array of a PyMC mean-field approximation. Args: - approx: an instance of PyMC3 mean-field approximation + approx: an instance of PyMC mean-field approximation Returns: - A list of `pymc3.blocking.VarMap` + A list of VarMap """ - if pm.__version__ == "3.1": - return approx.gbij.ordering.vmap - elif pm.__version__ == "3.2": - return approx.bij.ordering.vmap - else: - raise Exception("Unsupported PyMC3 version") + # Originally, with PyMC3 3.5, this simply returned a List[pymc3.blocking.VarMap]: + # return approx.bij.ordering.vmap + # However, changes were made to the API and the VarMap class was obviated by the use of Xarray, see: + # https://discourse.pymc.io/t/how-to-get-named-means-and-sds-from-advi-fit/11073 + # Unfortunately, this new functionality appears to be somewhat brittle and yields an error in our use case. + # We instead bring the old VarMap class into this module and recreate the old functionality to + # preserve our preexisting interfaces. + var_map_list = [] + for var, slc, shp, dtyp in approx.ordering.values(): + var_map_list.append(VarMap(var, slc, shp, dtyp)) + return var_map_list + def extract_mean_field_posterior_parameters(approx: pm.MeanField) \ -> Tuple[Set[str], Dict[str, np.ndarray], Dict[str, np.ndarray]]: """Extracts mean-field posterior parameters in the right shape and dtype from an instance - of PyMC3 mean-field approximation. + of PyMC mean-field approximation. Args: - approx: an instance of PyMC3 mean-field approximation + approx: an instance of PyMC mean-field approximation Returns: A tuple (set of variable names, @@ -373,7 +384,7 @@ def write_mean_field_sample_specific_params(sample_index: int, approx_std_map: Dict[str, np.ndarray], model: GeneralizedContinuousModel, extra_comment_lines: Optional[List[str]] = None): - """Writes sample-specific parameters contained in an instance of PyMC3 mean-field approximation + """Writes sample-specific parameters contained in an instance of PyMC mean-field approximation to disk. Args: @@ -405,11 +416,11 @@ def write_mean_field_sample_specific_params(sample_index: int, def write_mean_field_global_params(output_path: str, approx: pm.MeanField, model: GeneralizedContinuousModel): - """Writes global parameters contained in an instance of PyMC3 mean-field approximation to disk. + """Writes global parameters contained in an instance of PyMC mean-field approximation to disk. Args: output_path: output path (must be writable) - approx: an instance of PyMC3 mean-field approximation + approx: an instance of PyMC mean-field approximation model: the generalized model corresponding to the provided mean-field approximation """ # parse mean-field posterior parameters @@ -437,7 +448,7 @@ def read_mean_field_global_params(input_model_path: str, Args: input_model_path: input model path - approx: an instance of PyMC3 mean-field approximation to be updated + approx: an instance of PyMC mean-field approximation to be updated model: the generalized model corresponding to the provided mean-field approximation and the saved instance """ @@ -460,7 +471,7 @@ def _update_param_inplace(param, slc, dtype, new_value): var_mu = read_ndarray_from_tsv(var_mu_input_file) var_std = read_ndarray_from_tsv(var_std_input_file) - # convert std to rho, see pymc3.dist_math.sd2rho + # convert std to rho, see pymc.dist_math.sd2rho var_rho = np.log(np.exp(var_std) - 1) del var_std @@ -491,7 +502,7 @@ def read_mean_field_sample_specific_params(input_sample_calls_path: str, sample_index: index of the sample in the current instance of model/approximation sample_name: name of the sample in the current instance of model/approximation (used to check whether `input_sample_calls_path` actually corresponds to the sample) - approx: an instance of PyMC3 mean-field approximation corresponding to the provided model + approx: an instance of PyMC mean-field approximation corresponding to the provided model model: the generalized model corresponding to the provided mean-field approximation Returns: @@ -548,7 +559,7 @@ def _update_param_inplace(_param: np.ndarray, var_mu = read_ndarray_from_tsv(var_mu_input_file) var_std = read_ndarray_from_tsv(var_std_input_file) - # convert std to rho, see pymc3.dist_math.sd2rho + # convert std to rho, see pymc.dist_math.sd2rho var_rho = np.log(np.exp(var_std) - 1) del var_std diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/io/io_denoising_calling.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/io/io_denoising_calling.py index d0f9d24f59c..416c0c9c93d 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/io/io_denoising_calling.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/io/io_denoising_calling.py @@ -3,7 +3,7 @@ from typing import List, Optional import numpy as np -import pymc3 as pm +import pymc as pm from . import io_commons from . import io_consts @@ -155,9 +155,9 @@ def __call__(self): # compute approximate denoised copy ratios _logger.info("Sampling and approximating posteriors for denoised copy ratios...") denoising_copy_ratios_st_approx_generator = commons.get_sampling_generator_for_model_approximation( - model_approx=self.denoising_model_approx, node=self.denoising_model['denoised_copy_ratio_st'], + approx=self.denoising_model_approx, node=self.denoising_model['denoised_copy_ratio_st'], num_samples=self.denoising_config.num_samples_copy_ratio_approx) - mu_denoised_copy_ratio_st, var_denoised_copy_ratio_st =\ + mu_denoised_copy_ratio_st, var_denoised_copy_ratio_st = \ math.calculate_mean_and_variance_online(denoising_copy_ratios_st_approx_generator) std_denoised_copy_ratio_st = np.sqrt(var_denoised_copy_ratio_st) diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/io/io_ploidy.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/io/io_ploidy.py index 1acc4a43c61..49a850733d5 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/io/io_ploidy.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/io/io_ploidy.py @@ -3,7 +3,7 @@ from typing import List, Dict import numpy as np -import pymc3 as pm +import pymc as pm from . import io_commons from . import io_consts diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/commons.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/commons.py index 01f91a3fc36..5506cd3b107 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/commons.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/commons.py @@ -1,9 +1,12 @@ import numpy as np import logging -import theano.tensor as tt -import pymc3 as pm -import theano as th -import pymc3.distributions.dist_math as pm_dist_math +import pytensor +import pytensor.tensor as pt +from pytensor.graph.replace import graph_replace +import pymc as pm +import pymc.distributions.dist_math as pm_dist_math +from pymc.util import makeiter +from pymc.variational.opvi import _known_scan_ignored_inputs from typing import Tuple, Generator _logger = logging.getLogger(__name__) @@ -51,7 +54,7 @@ def negative_binomial_logp(mu, alpha, value): Returns: symbolic negative binomial logp """ - return pm_dist_math.bound(pm_dist_math.binomln(value + alpha - 1, value) + return pm_dist_math.check_parameters(pm_dist_math.binomln(value + alpha - 1, value) + pm_dist_math.logpow(mu / (mu + alpha), value) + pm_dist_math.logpow(alpha / (mu + alpha), alpha), mu > 0, value >= 0, alpha > 0) @@ -72,7 +75,7 @@ def negative_binomial_gaussian_approx_logp(mu, alpha, value): symbolic approximate negative binomial logp """ tau = alpha / (mu * (alpha + mu)) # precision - return pm_dist_math.bound(0.5 * (tt.log(tau) - _log_2_pi - tau * tt.square(value - mu)), + return pm_dist_math.check_parameters(0.5 * (pt.log(tau) - _log_2_pi - tau * pt.square(value - mu)), mu > 0, value >= 0, alpha > 0) @@ -107,8 +110,8 @@ def centered_heavy_tail_logp(mu, value): Returns: symbolic logp """ - return pm_dist_math.bound(tt.log(1.0 + 2.0 * mu) + 2.0 * mu * tt.log(value) - - 2.0 * (1.0 + mu) * tt.log(1.0 + value), + return pm_dist_math.check_parameters(pt.log(1.0 + 2.0 * mu) + 2.0 * mu * pt.log(value) + - 2.0 * (1.0 + mu) * pt.log(1.0 + value), mu >= 0, value > 0) @@ -120,10 +123,10 @@ def safe_logaddexp(a, b): symbolic log(exp(a) + exp(b)) """ diff = b - a - safe_diff = tt.switch(tt.isnan(diff), 0, diff) - return tt.switch(safe_diff >= 0, - b + tt.log1p(tt.exp(-safe_diff)), - a + tt.log1p(tt.exp(safe_diff))) + safe_diff = pt.switch(pt.isnan(diff), 0, diff) + return pt.switch(safe_diff >= 0, + b + pt.log1p(pt.exp(-safe_diff)), + a + pt.log1p(pt.exp(safe_diff))) def get_jensen_shannon_divergence(log_p_1, log_p_2): @@ -136,12 +139,12 @@ def get_jensen_shannon_divergence(log_p_1, log_p_2): Returns: Symbolic Jensen-Shannon distance """ - p_1 = tt.exp(log_p_1) - p_2 = tt.exp(log_p_2) + p_1 = pt.exp(log_p_1) + p_2 = pt.exp(log_p_2) diff_12 = p_1 - p_2 log_diff_12 = log_p_1 - log_p_2 - safe_log_diff_12 = tt.switch(tt.isnan(log_diff_12), 0, log_diff_12) - return 0.5 * tt.sum(diff_12 * safe_log_diff_12, axis=-1) + safe_log_diff_12 = pt.switch(pt.isnan(log_diff_12), 0, log_diff_12) + return 0.5 * pt.sum(diff_12 * safe_log_diff_12, axis=-1) def get_hellinger_distance(log_p_1, log_p_2): @@ -154,9 +157,9 @@ def get_hellinger_distance(log_p_1, log_p_2): Returns: Symbolic Hellinger distance """ - p_1 = tt.exp(log_p_1) - p_2 = tt.exp(log_p_2) - return tt.sqrt(tt.sum(tt.square(tt.sqrt(p_1) - tt.sqrt(p_2)), axis=-1)) / tt.sqrt(2) + p_1 = pt.exp(log_p_1) + p_2 = pt.exp(log_p_2) + return pt.sqrt(pt.sum(pt.square(pt.sqrt(p_1) - pt.sqrt(p_2)), axis=-1)) / pt.sqrt(2) def perform_genotyping(log_p: np.ndarray) -> Tuple[int, float]: @@ -179,67 +182,66 @@ def perform_genotyping(log_p: np.ndarray) -> Tuple[int, float]: phred_genotype_quality = _10_inv_log_10 * (sorted_log_p[0][1] - sorted_log_p[1][1]) return max_likely_genotype_idx, phred_genotype_quality +# PyMC/pytensor logsumexp doesn't include the stability trick, so we port the PyMC3/theano version here for consistency +def logsumexp(x, axis=None): + # Adapted from https://github.com/Theano/Theano/issues/1563 + x_max = pt.max(x, axis=axis, keepdims=True) + return pt.log(pt.sum(pt.exp(x - x_max), axis=axis, keepdims=True)) + x_max -def stochastic_node_mean_symbolic(approx: pm.MeanField, node, size=100, - more_replacements=None, shape=None, dtype=None): +def stochastic_node_mean_symbolic(approx: pm.MeanField, node, size=100): """Symbolic mean of a given PyMC3 stochastic node with respect to a given variational posterior approximation. - Args: approx: an instance of PyMC3 approximation node: stochastic node size: the number of samples to use for calculating the mean - more_replacements: (optional) an ordered dictionary of node replacements to be - applied to the computational graph before sampling - shape: (optional) shape of the node - dtype: (optional) dtype of the node - - Raises: - ValueError: If `node.tag.test_value` is not present and `shape` and `dtype` are - not provided - Returns: Symbolic approximate mean of the stochastic node """ assert size > 0 - if shape is not None and dtype is not None: - cum_sum = tt.zeros(shape, dtype) - elif hasattr(node.tag, 'test_value') and node.tag.test_value is not None: - cum_sum = tt.zeros(node.tag.test_value.shape, node.tag.test_value.dtype) - else: - raise ValueError("Can not determine the shape of the node to be sampled") - - if more_replacements is not None: - node = th.clone(node, more_replacements, strict=False) - posterior_samples = approx.random(size) + cum_sum = pt.zeros(node.shape, node.dtype) + # see Approximation.sample_node() + node = approx.model.replace_rvs_by_values([node]) + node = node[0] node = approx.to_flat_input(node) + posterior_samples = approx.symbolic_random.astype(approx.symbolic_initial.dtype) + posterior_samples = pt.specify_shape(posterior_samples, approx.symbolic_initial.type.shape) + posterior_samples = approx.set_size_and_deterministic(posterior_samples, s=size, d=False) def add_sample_to_cum_sum(posterior_sample, _cum_sum): - new_sample = th.clone(node, {approx.input: posterior_sample}, strict=False) - return _cum_sum + tt.patternbroadcast(new_sample, _cum_sum.broadcastable) + new_sample = graph_replace(node, {approx.input: posterior_sample}, strict=False) + return _cum_sum + new_sample - outputs, _ = th.scan(add_sample_to_cum_sum, - sequences=[posterior_samples], - outputs_info=[cum_sum], - n_steps=size) + outputs, _ = pytensor.scan(add_sample_to_cum_sum, + sequences=posterior_samples, + non_sequences=_known_scan_ignored_inputs(makeiter(posterior_samples)), + outputs_info=cum_sum, + n_steps=size) return outputs[-1] / size - -def get_sampling_generator_for_model_approximation(model_approx: pm.MeanField, node, +def get_sampling_generator_for_model_approximation(approx: pm.MeanField, node, num_samples: int = 20) -> Generator: """Get a generator that returns samples of a precomputed model approximation for a specific variable in that model - Args: - model_approx: an instance of PyMC3 mean-field approximation + approx: an instance of PyMC3 mean-field approximation node: a stochastic node in the model num_samples: number of samples to draw - Returns: A generator that will yield `num_samples` samples from an approximation to a posterior """ - sample = model_approx.sample_node(node, size=1)[0] - return (sample.eval() for _ in range(num_samples)) + assert num_samples > 0 + + # see Approximation.sample_node() + node = approx.model.replace_rvs_by_values([node]) + node = node[0] + node_sample = approx.symbolic_sample_over_posterior(node) + node_sample = approx.set_size_and_deterministic(node_sample, s=1, d=False) + # must use compile_pymc to pass random_seed for reproducible sampling + node_sample_func = pm.pytensorf.compile_pymc(inputs=[], outputs=node_sample, + random_seed=approx.rng.randint(2**30, dtype=np.int64)) + + return (node_sample_func()[0] for _ in range(num_samples)) diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/dists.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/dists.py deleted file mode 100644 index f8db4241d59..00000000000 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/dists.py +++ /dev/null @@ -1,63 +0,0 @@ -from pymc3.distributions.continuous import PositiveContinuous,\ - assert_negative_support, bound, gammaln, get_variable_name -import theano.tensor as tt - - -class PositiveFlatTop(PositiveContinuous): - """A positive continuous two-parameter flat-top distribution with super-exponential light tail. - The pdf of this distribution is given as: - - p(x) \propto \exp(-(x/u)^k) - - Here, `u` is the soft upper bound of the distribution and `k` is the decay exponent. - In the limit `k` \rightarrow \infty, p(x) converges to the uniform distribution in [0, u]. - The case `k` = 2 corresponds to the half-normal distribution. - - """ - def __init__(self, u, k, *args, **kwargs): - """Initializer. - - Args: - u: soft upper bound of the distribution (positive) - k: decay exponent (positive) - """ - super(PositiveFlatTop, self).__init__(*args, **kwargs) - self.u = u = tt.as_tensor_variable(u) - self.k = k = tt.as_tensor_variable(k) - - assert_negative_support(u, 'u', 'PositiveFlatTop') - assert_negative_support(k, 'k', 'PositiveFlatTop') - - def random(self, point=None, size=None, repeat=None): - raise NotImplementedError - - def logp(self, value): - u = self.u - k = self.k - logp = -tt.pow(value / u, k) - tt.log(u) - gammaln(1 + tt.inv(k)) - return bound(logp, value > 0, u > 0, k > 0) - - def _repr_latex_(self, name=None, dist=None): - if dist is None: - dist = self - u = dist.u - k = dist.k - return r'${} \sim \text{{FlatTop}}(\mathit{{u}}={0}, \mathit{{k}}={1})$'.format( - name, get_variable_name(u), get_variable_name(k)) - - -class HalfFlat(PositiveContinuous): - """Improper flat prior over the positive reals.""" - - def __init__(self, *args, **kwargs): - self._default = 1 - super(HalfFlat, self).__init__(defaults=('_default',), *args, **kwargs) - - def random(self, point=None, size=None, repeat=None): - raise ValueError('Cannot sample from HalfFlat distribution') - - def logp(self, value): - return bound(tt.zeros_like(value), value > 0) - - def _repr_latex_(self, name=None, dist=None): - return r'${} \sim \text{{HalfFlat}}()$'.format(name) diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/fancy_model.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/fancy_model.py index fe5bf80c006..ec6d1a86829 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/fancy_model.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/fancy_model.py @@ -1,14 +1,14 @@ -import pymc3 as pm +import pymc as pm import logging -from pymc3 import Model +from pymc import Model from typing import Optional, Set, Dict _logger = logging.getLogger(__name__) class GeneralizedContinuousModel(Model): - """An extension of PyMC3 `Model` class with the added functionality of labeling RVs + """An extension of PyMC `Model` class with the added functionality of labeling RVs as either global or sample-specific (for the purpose of I/O, and structured optimization). """ def __init__(self): @@ -17,12 +17,9 @@ def __init__(self): self.sample_specific_var_registry: Dict[str, int] = dict() super().__init__() - @staticmethod - def _get_var_name(var) -> str: + def _get_var_name(self, var) -> str: assert hasattr(var, 'name') - name = var.name - if hasattr(var, 'transformed'): - name = var.transformed.name + name = self.rvs_to_values[var].name return name def _assert_var_is_unannotated(self, var): @@ -36,7 +33,7 @@ def register_as_global(self, var): """Register a variable as global. Args: - var: a PyMC3 free variable + var: a PyMC free variable Returns: None @@ -49,7 +46,7 @@ def register_as_sample_specific(self, var, sample_axis: int): """Register a variable as sample-specific. Args: - var: a PyMC3 free variable + var: a PyMC free variable sample_axis: axis corresponding to sample index (it is used for slicing `var` to obtain single-sample parameters) @@ -64,7 +61,7 @@ def verify_var_registry(self): """Verifies that all variables are registered as either as global or sample-specific.""" _logger.info("Global model variables: " + str(self.global_var_registry)) _logger.info("Sample-specific model variables: " + str(set(self.sample_specific_var_registry.keys()))) - model_var_set = {self._get_var_name(var) for var in self.vars} + model_var_set = {self._get_var_name(var) for var in self.free_RVs} unannotated_vars = model_var_set \ .difference(self.global_var_registry) \ .difference(set(self.sample_specific_var_registry.keys())) diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/model_denoising_calling.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/model_denoising_calling.py index 63ef4f9e86f..6aa7d127575 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/model_denoising_calling.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/model_denoising_calling.py @@ -7,17 +7,17 @@ from typing import List, Tuple, Set, Dict, Optional import numpy as np -import pymc3 as pm +import pymc as pm import scipy.sparse as sp -import theano as th -import theano.sparse as tst -import theano.tensor as tt -from pymc3 import Normal, Deterministic, DensityDist, Lognormal, Exponential +import pytensor +import pytensor.sparse as pst +import pytensor.tensor as pt +from pytensor.tensor.shape import unbroadcast +from pymc import Normal, Deterministic, Potential, Lognormal, Exponential, TruncatedNormal, Uniform from . import commons -from .dists import HalfFlat from .fancy_model import GeneralizedContinuousModel -from .theano_hmm import TheanoForwardBackward +from .pytensor_hmm import PytensorForwardBackward from .. import config, types from ..structs.interval import Interval, GCContentAnnotation from ..structs.metadata import SampleMetadataCollection @@ -26,6 +26,7 @@ _logger = logging.getLogger(__name__) _eps = commons.eps +_ard_upper_bound = 1E10 class DenoisingModelConfig: @@ -330,7 +331,7 @@ def initialize_posterior(denoising_config: DenoisingModelConfig, # interval class log posterior probs class_probs_k = np.asarray([1.0 - calling_config.p_active, calling_config.p_active], dtype=types.floatX) log_q_tau_tk = np.tile(np.log(class_probs_k), (shared_workspace.num_intervals, 1)) - shared_workspace.log_q_tau_tk = th.shared(log_q_tau_tk, name="log_q_tau_tk", borrow=config.borrow_numpy) + shared_workspace.log_q_tau_tk = pytensor.shared(log_q_tau_tk, name="log_q_tau_tk", borrow=config.borrow_numpy) # copy number log posterior probs log_q_c_stc = np.zeros((shared_workspace.num_samples, shared_workspace.num_intervals, @@ -345,11 +346,11 @@ def initialize_posterior(denoising_config: DenoisingModelConfig, sample_log_pi_jc = np.log(np.sum(sample_pi_jkc * class_probs_k[np.newaxis, :, np.newaxis], axis=1)) for ti in range(shared_workspace.num_intervals): log_q_c_stc[si, ti, :] = sample_log_pi_jc[t_to_j_map[ti], :] - shared_workspace.log_q_c_stc = th.shared(log_q_c_stc, name="log_q_c_stc", borrow=config.borrow_numpy) + shared_workspace.log_q_c_stc = pytensor.shared(log_q_c_stc, name="log_q_c_stc", borrow=config.borrow_numpy) class DenoisingCallingWorkspace: - """This class contains objects (numpy arrays, theano tensors, etc) shared between the denoising model + """This class contains objects (numpy arrays, pytensor tensors, etc) shared between the denoising model and the copy number caller.""" def __init__(self, denoising_config: DenoisingModelConfig, @@ -381,7 +382,7 @@ def __init__(self, contig_to_j_map = {contig: self.contig_list.index(contig) for contig in self.contig_list} t_to_j_map = np.asarray([contig_to_j_map[interval.contig] for interval in interval_list], dtype=types.small_uint) - self.t_to_j_map: types.TensorSharedVariable = th.shared( + self.t_to_j_map: types.TensorSharedVariable = pytensor.shared( t_to_j_map, name="t_to_j_map", borrow=config.borrow_numpy) self.global_read_depth_s, average_ploidy_s, self.baseline_copy_number_sj = \ @@ -393,22 +394,23 @@ def __init__(self, "The highest contig ploidy ({0}) must be smaller or equal to the highest copy number state ({1})".format( max_baseline_copy_number, calling_config.max_copy_number) - # shared theano tensors from the input data - self.n_st: types.TensorSharedVariable = th.shared( + # shared pytensor tensors from the input data + self.n_st: types.TensorSharedVariable = pytensor.shared( n_st.astype(types.med_uint), name="n_st", borrow=config.borrow_numpy) - self.average_ploidy_s: types.TensorSharedVariable = th.shared( + self.average_ploidy_s: types.TensorSharedVariable = pytensor.shared( average_ploidy_s.astype(types.floatX), name="average_ploidy_s", borrow=config.borrow_numpy) # copy-number event stay probability self.dist_t = np.asarray([self.interval_list[ti + 1].distance(self.interval_list[ti]) for ti in range(self.num_intervals - 1)]) cnv_stay_prob_t = np.exp(-self.dist_t / calling_config.cnv_coherence_length) - self.cnv_stay_prob_t = th.shared(cnv_stay_prob_t, name='cnv_stay_prob_t', borrow=config.borrow_numpy) + self.cnv_stay_prob_t = pytensor.shared(cnv_stay_prob_t, name='cnv_stay_prob_t', borrow=config.borrow_numpy) # copy number values for each copy number state copy_number_values_c = np.arange(0, calling_config.num_copy_number_states, dtype=types.small_uint) - self.copy_number_values_c = th.shared(copy_number_values_c, name='copy_number_values_c', - borrow=config.borrow_numpy) + self.copy_number_values_c = pytensor.shared(copy_number_values_c, name='copy_number_values_c', + borrow=config.borrow_numpy) + # copy number log posterior and derived quantities (to be initialized by `PosteriorInitializer`) self.log_q_c_stc: Optional[types.TensorSharedVariable] = None @@ -424,7 +426,7 @@ def __init__(self, # copy number emission log posterior log_copy_number_emission_stc = np.zeros( (self.num_samples, self.num_intervals, calling_config.num_copy_number_states), dtype=types.floatX) - self.log_copy_number_emission_stc: types.TensorSharedVariable = th.shared( + self.log_copy_number_emission_stc: types.TensorSharedVariable = pytensor.shared( log_copy_number_emission_stc, name="log_copy_number_emission_stc", borrow=config.borrow_numpy) # class log posterior (to be initialized by `PosteriorInitializer`) @@ -448,7 +450,7 @@ def __init__(self, # GC bias factors # (to be initialized by calling `initialize_bias_inference_vars`) - self.W_gc_tg: Optional[tst.SparseConstant] = None + self.W_gc_tg: Optional[pst.SparseConstant] = None # auxiliary data structures for hybrid q_c_expectation_mode calculation # (to be initialized by calling `initialize_bias_inference_vars`) @@ -456,7 +458,7 @@ def __init__(self, # denoised copy ratios denoised_copy_ratio_st = np.zeros((self.num_samples, self.num_intervals), dtype=types.floatX) - self.denoised_copy_ratio_st: types.TensorSharedVariable = th.shared( + self.denoised_copy_ratio_st: types.TensorSharedVariable = pytensor.shared( denoised_copy_ratio_st, name="denoised_copy_ratio_st", borrow=config.borrow_numpy) # initialize posterior @@ -475,7 +477,7 @@ def initialize_copy_number_class_inference_vars(self): # class emission log posterior log_class_emission_tk = np.zeros( (self.num_intervals, self.calling_config.num_copy_number_classes), dtype=types.floatX) - self.log_class_emission_tk: types.TensorSharedVariable = th.shared( + self.log_class_emission_tk: types.TensorSharedVariable = pytensor.shared( log_class_emission_tk, name="log_class_emission_tk", borrow=True) # class assignment prior probabilities @@ -484,7 +486,7 @@ def initialize_copy_number_class_inference_vars(self): # The second class is a CNV-active class (all copy number states are equally probable) class_probs_k = np.asarray([1.0 - self.calling_config.p_active, self.calling_config.p_active], dtype=types.floatX) - self.class_probs_k: types.TensorSharedVariable = th.shared( + self.class_probs_k: types.TensorSharedVariable = pytensor.shared( class_probs_k, name='class_probs_k', borrow=config.borrow_numpy) # class Markov chain log prior (initialized here and remains constant throughout) @@ -515,7 +517,7 @@ def update_auxiliary_vars(self): # MAP copy number call if self.c_map_st is None: c_map_st = np.zeros((self.num_samples, self.num_intervals), dtype=types.small_uint) - self.c_map_st = th.shared(c_map_st, name="c_map_st", borrow=config.borrow_numpy) + self.c_map_st = pytensor.shared(c_map_st, name="c_map_st", borrow=config.borrow_numpy) self.c_map_st.set_value( np.argmax(self.log_q_c_stc.get_value(borrow=True), axis=2).astype(types.small_uint), borrow=config.borrow_numpy) @@ -524,7 +526,7 @@ def update_auxiliary_vars(self): _logger.debug("Updating CNV-active class bitmask...") if self.active_class_bitmask_t is None: active_class_bitmask_t = np.zeros((self.num_intervals,), dtype=bool) - self.active_class_bitmask_t = th.shared( + self.active_class_bitmask_t = pytensor.shared( active_class_bitmask_t, name="active_class_bitmask_t", borrow=config.borrow_numpy) # bitmask for intervals of which the probability of being in the silent class is below 0.5 @@ -590,8 +592,8 @@ def _get_log_trans_tkk(dist_t: np.ndarray, return np.log(trans_tkl) @staticmethod - def _create_sparse_gc_bin_tensor_tg(interval_list: List[Interval], num_gc_bins: int) -> tst.SparseConstant: - """Creates a sparse 2d theano tensor with shape (num_intervals, gc_bin). The sparse + def _create_sparse_gc_bin_tensor_tg(interval_list: List[Interval], num_gc_bins: int) -> pst.SparseConstant: + """Creates a sparse 2d pytensor tensor with shape (num_intervals, gc_bin). The sparse tensor represents a 1-hot mapping of each interval to its GC bin index. The range [0, 1] is uniformly divided into num_gc_bins. """ @@ -609,8 +611,8 @@ def get_gc_bin_idx(gc_content): indptr = np.arange(0, num_intervals + 1) scipy_gc_matrix = sp.csr_matrix((data, indices, indptr), shape=(num_intervals, num_gc_bins), dtype=types.small_uint) - theano_gc_matrix: tst.SparseConstant = tst.as_sparse(scipy_gc_matrix) - return theano_gc_matrix + pytensor_gc_matrix: pst.SparseConstant = pst.as_sparse(scipy_gc_matrix) + return pytensor_gc_matrix @staticmethod def _get_baseline_copy_number_and_read_depth(sample_metadata_collection: SampleMetadataCollection, @@ -700,8 +702,10 @@ def get_init_ard_u(self) -> np.ndarray: class DenoisingModel(GeneralizedContinuousModel): + # PR #8561 some broadcastable arguments in the distributions below in PyMC3 were removed """The gCNV coverage denoising model declaration (continuous RVs only; discrete posteriors are assumed to be given).""" + @pytensor.config.change_flags(compute_test_value="off") def __init__(self, denoising_model_config: DenoisingModelConfig, shared_workspace: DenoisingCallingWorkspace, @@ -715,25 +719,22 @@ def __init__(self, # interval-specific unexplained variance psi_t = Exponential(name='psi_t', lam=1.0 / denoising_model_config.psi_t_scale, - shape=(shared_workspace.num_intervals,), - broadcastable=(False,)) + shape=(shared_workspace.num_intervals,)) register_as_global(psi_t) # sample-specific unexplained variance psi_s = Exponential(name='psi_s', lam=1.0 / denoising_model_config.psi_s_scale, - shape=(shared_workspace.num_samples,), - broadcastable=(False,)) + shape=(shared_workspace.num_samples,)) register_as_sample_specific(psi_s, sample_axis=0) # convert "unexplained variance" to negative binomial over-dispersion - alpha_st = tt.maximum(tt.inv(tt.exp(psi_t.dimshuffle('x', 0) + psi_s.dimshuffle(0, 'x')) - 1.0), + alpha_st = pt.maximum(pt.reciprocal(pt.exp(psi_t.dimshuffle('x', 0) + psi_s.dimshuffle(0, 'x')) - 1.0), _eps) # interval-specific mean log bias - log_mean_bias_t = Normal(name='log_mean_bias_t', mu=0.0, sd=denoising_model_config.log_mean_bias_std, + log_mean_bias_t = Normal(name='log_mean_bias_t', mu=0.0, sigma=denoising_model_config.log_mean_bias_std, shape=(shared_workspace.num_intervals,), - broadcastable=(False,), - testval=initial_model_parameters_supplier.get_init_log_mean_bias_t()) + initval=initial_model_parameters_supplier.get_init_log_mean_bias_t()) register_as_global(log_mean_bias_t) # log-normal read depth centered at the global read depth @@ -743,53 +744,51 @@ def __init__(self, mu=read_depth_mu_s, tau=denoising_model_config.depth_correction_tau, shape=(shared_workspace.num_samples,), - broadcastable=(False,), - testval=shared_workspace.global_read_depth_s) + initval=shared_workspace.global_read_depth_s) register_as_sample_specific(read_depth_s, sample_axis=0) # log bias modelling, starting with the log mean bias - log_bias_st = tt.tile(log_mean_bias_t, (shared_workspace.num_samples, 1)) + log_bias_st = pt.tile(log_mean_bias_t, (shared_workspace.num_samples, 1)) if denoising_model_config.enable_bias_factors: + # PR #8651 NOTE: originally used HalfFlat in PyMC3, but this now raises + # NotImplementedError: Cannot sample from half_flat variable. + # we instead use a Uniform with a very large, unexposed upper bound # ARD prior precisions - ard_u = HalfFlat(name='ard_u', - shape=(denoising_model_config.max_bias_factors,), - broadcastable=(False,), - testval=initial_model_parameters_supplier.get_init_ard_u()) + ard_u = Uniform(name='ard_u', lower=0., upper=_ard_upper_bound, + shape=(denoising_model_config.max_bias_factors,), + initval=initial_model_parameters_supplier.get_init_ard_u()) register_as_global(ard_u) # bias factors W_tu = Normal(name='W_tu', mu=0.0, tau=ard_u.dimshuffle('x', 0), - shape=(shared_workspace.num_intervals, denoising_model_config.max_bias_factors), - broadcastable=(False, False)) + shape=(shared_workspace.num_intervals, denoising_model_config.max_bias_factors)) register_as_global(W_tu) # sample-specific bias factor loadings - z_su = Normal(name='z_su', mu=0.0, sd=1.0, - shape=(shared_workspace.num_samples, denoising_model_config.max_bias_factors), - broadcastable=(False, False)) + z_su = Normal(name='z_su', mu=0.0, sigma=1.0, + shape=(shared_workspace.num_samples, denoising_model_config.max_bias_factors)) register_as_sample_specific(z_su, sample_axis=0) # add contribution to total log bias if denoising_model_config.disable_bias_factors_in_active_class: - prob_silent_class_t = tt.exp(shared_workspace.log_q_tau_tk[:, 0]) - log_bias_st += (prob_silent_class_t.dimshuffle('x', 0) * tt.dot(W_tu, z_su.T).T) + prob_silent_class_t = pt.exp(shared_workspace.log_q_tau_tk[:, 0]) + log_bias_st += (prob_silent_class_t.dimshuffle('x', 0) * pt.dot(W_tu, z_su.T).T) else: - log_bias_st += tt.dot(W_tu, z_su.T).T + log_bias_st += pt.dot(W_tu, z_su.T).T # GC bias if denoising_model_config.enable_explicit_gc_bias_modeling: # sample-specific GC bias factor loadings - z_sg = Normal(name='z_sg', mu=0.0, sd=denoising_model_config.gc_curve_sd, - shape=(shared_workspace.num_samples, denoising_model_config.num_gc_bins), - broadcastable=(False, False)) + z_sg = Normal(name='z_sg', mu=0.0, sigma=denoising_model_config.gc_curve_sd, + shape=(shared_workspace.num_samples, denoising_model_config.num_gc_bins)) register_as_sample_specific(z_sg, sample_axis=0) # add contribution to total log bias - log_bias_st += tst.dot(shared_workspace.W_gc_tg, z_sg.T).T + log_bias_st += pst.dot(shared_workspace.W_gc_tg, z_sg.T).T # useful expressions - bias_st = tt.exp(log_bias_st) + bias_st = pt.exp(log_bias_st) # the expected number of erroneously mapped reads mean_mapping_error_correction_s = eps_mapping * read_depth_s * shared_workspace.average_ploidy_s @@ -823,8 +822,8 @@ def _copy_number_emission_logp(_n_st): alpha_st.dimshuffle(0, 1, 'x'), _n_st.dimshuffle(0, 1, 'x')) log_q_c_stc = shared_workspace.log_q_c_stc - q_c_stc = tt.exp(log_q_c_stc) - return tt.sum(q_c_stc * (_log_copy_number_emission_stc - log_q_c_stc), axis=2) + q_c_stc = pt.exp(log_q_c_stc) + return pt.sum(q_c_stc * (_log_copy_number_emission_stc - log_q_c_stc), axis=2) elif denoising_model_config.q_c_expectation_mode == 'hybrid': def _copy_number_emission_logp(_n_st): @@ -834,17 +833,17 @@ def _copy_number_emission_logp(_n_st): # for CNV-active classes, calculate exact posterior expectation mu_active_stc = ((1.0 - eps_mapping) * read_depth_s.dimshuffle(0, 'x', 'x') - * bias_st.dimshuffle(0, 1, 'x')[:, active_class_indices, :] + * bias_st[:, active_class_indices].dimshuffle(0, 1, 'x') # PR #8561 switched indexing and dimshuffle to account for case when active_class_indices has a single element * shared_workspace.copy_number_values_c.dimshuffle('x', 'x', 0) + mean_mapping_error_correction_s.dimshuffle(0, 'x', 'x')) - alpha_active_stc = tt.maximum(tt.inv((tt.exp(psi_t.dimshuffle('x', 0)[:, active_class_indices] - + psi_s.dimshuffle(0, 'x')) - 1.0)).dimshuffle(0, 1, 'x'), + alpha_active_stc = pt.maximum(pt.reciprocal((pt.exp(psi_t[active_class_indices].dimshuffle('x', 0) # PR #8561 switched indexing and dimshuffle to account for case when active_class_indices has a single element, inv to reciprocal + + psi_s.dimshuffle(0, 'x')) - 1.0)).dimshuffle(0, 1, 'x'), _eps) - n_active_stc = _n_st.dimshuffle(0, 1, 'x')[:, active_class_indices, :] + n_active_stc = _n_st[:, active_class_indices].dimshuffle(0, 1, 'x') # PR #8561 switched indexing and dimshuffle to account for case when active_class_indices has a single element active_class_logp_stc = commons.negative_binomial_logp(mu_active_stc, alpha_active_stc, n_active_stc) log_q_c_active_stc = shared_workspace.log_q_c_stc[:, active_class_indices, :] - q_c_active_stc = tt.exp(log_q_c_active_stc) - active_class_logp = tt.sum(q_c_active_stc * (active_class_logp_stc - log_q_c_active_stc)) + q_c_active_stc = pt.exp(log_q_c_active_stc) + active_class_logp = pt.sum(q_c_active_stc * (active_class_logp_stc - log_q_c_active_stc)) # for CNV-silent classes, use MAP copy number state mu_silent_st = ((1.0 - eps_mapping) * read_depth_s.dimshuffle(0, 'x') * bias_st[:, silent_class_indices] @@ -852,7 +851,7 @@ def _copy_number_emission_logp(_n_st): + mean_mapping_error_correction_s.dimshuffle(0, 'x')) alpha_silent_st = alpha_st[:, silent_class_indices] n_silent_st = _n_st[:, silent_class_indices] - silent_class_logp = tt.sum(commons.negative_binomial_logp(mu_silent_st, alpha_silent_st, n_silent_st)) + silent_class_logp = pt.sum(commons.negative_binomial_logp(mu_silent_st, alpha_silent_st, n_silent_st)) return active_class_logp + silent_class_logp @@ -862,14 +861,15 @@ def _copy_number_emission_logp(_n_st): mu_stc, alpha_st.dimshuffle(0, 1, 'x'), _n_st.dimshuffle(0, 1, 'x')) - return pm.math.logsumexp(shared_workspace.log_q_c_stc + _log_copy_number_emission_stc, axis=2) + return commons.logsumexp(shared_workspace.log_q_c_stc + _log_copy_number_emission_stc, axis=2) else: raise Exception("Unknown q_c expectation mode; an exception should have been raised earlier") - DensityDist(name='n_st_obs', - logp=_copy_number_emission_logp, - observed=shared_workspace.n_st) + # originally DensityDist in PyMC3, but this now raises an error about sampling; + # changed in https://github.com/broadinstitute/gatk/pull/8561 + Potential(name='n_st_obs', + var=_copy_number_emission_logp(shared_workspace.n_st)) class CopyNumberEmissionBasicSampler: @@ -891,7 +891,7 @@ def __init__(self, def update_approximation(self, approx: pm.approximations.MeanField): """Generates a new compiled sampler based on a given approximation. Args: - approx: an instance of PyMC3 mean-field approximation + approx: an instance of PyMC mean-field approximation Returns: None @@ -907,14 +907,16 @@ def draw(self) -> np.ndarray: assert self.is_sampler_initialized, "Posterior approximation is not provided yet" return self._simultaneous_log_copy_number_emission_sampler() - @th.configparser.change_flags(compute_test_value="off") + @pytensor.config.change_flags(compute_test_value="off") def _get_compiled_simultaneous_log_copy_number_emission_sampler(self, approx: pm.approximations.MeanField): - """For a given variational approximation, returns a compiled theano function that draws posterior samples + """For a given variational approximation, returns a compiled pytensor function that draws posterior samples from log copy number emission probabilities.""" log_copy_number_emission_stc = commons.stochastic_node_mean_symbolic( approx, self.denoising_model['log_copy_number_emission_stc'], size=self.inference_params.log_emission_samples_per_round) - return th.function(inputs=[], outputs=log_copy_number_emission_stc) + # must use compile_pymc to pass random_seed for reproducible sampling + return pm.pytensorf.compile_pymc(inputs=[], outputs=log_copy_number_emission_stc, + random_seed=approx.rng.randint(2**30, dtype=np.int64)) class HHMMClassAndCopyNumberBasicCaller: @@ -947,7 +949,7 @@ class HHMMClassAndCopyNumberBasicCaller: forward-backward algorithm for each sample (see _update_copy_number_log_posterior) - Given q(c_s), the emission probability of each copy number class (tau) is determined - (see _get_update_log_class_emission_tk_theano_func). The class prior and transition probabilities + (see _get_update_log_class_emission_tk_pytensor_func). The class prior and transition probabilities are fixed hyperparameters. Therefore, q(tau) can be updated immediately using a single run of forward-backward algorithm (see _update_class_log_posterior). """ @@ -978,10 +980,10 @@ def __init__(self, calling_config.num_copy_number_states, calling_config.p_alt, shared_workspace.baseline_copy_number_sj[si, :])[:, :, :] - self.pi_sjkc: types.TensorSharedVariable = th.shared(pi_sjkc, name='pi_sjkc', borrow=config.borrow_numpy) + self.pi_sjkc: types.TensorSharedVariable = pytensor.shared(pi_sjkc, name='pi_sjkc', borrow=config.borrow_numpy) # compiled function for forward-backward updates of copy number posterior - self._hmm_q_copy_number = TheanoForwardBackward( + self._hmm_q_copy_number = PytensorForwardBackward( log_posterior_probs_output_tc=None, resolve_nans=False, do_thermalization=True, @@ -994,7 +996,7 @@ def __init__(self, # Note: # if p_active == 0, we have to deal with inf - inf expressions properly. # setting resolve_nans = True takes care of such ambiguities. - self._hmm_q_class = TheanoForwardBackward( + self._hmm_q_class = PytensorForwardBackward( log_posterior_probs_output_tc=shared_workspace.log_q_tau_tk, resolve_nans=(calling_config.p_active == 0), do_thermalization=True, @@ -1003,13 +1005,13 @@ def __init__(self, include_alpha_beta_output=False) # compiled function for update of class log emission - self._update_log_class_emission_tk_theano_func = self._get_update_log_class_emission_tk_theano_func() + self._update_log_class_emission_tk_pytensor_func = self._get_update_log_class_emission_tk_pytensor_func() else: - self._hmm_q_class: Optional[TheanoForwardBackward] = None - self._update_log_class_emission_tk_theano_func = None + self._hmm_q_class: Optional[PytensorForwardBackward] = None + self._update_log_class_emission_tk_pytensor_func = None # compiled function for variational update of copy number HMM specs - self._get_copy_number_hmm_specs_theano_func = self.get_compiled_copy_number_hmm_specs_theano_func() + self._get_copy_number_hmm_specs_pytensor_func = self.get_compiled_copy_number_hmm_specs_pytensor_func() @staticmethod def get_copy_number_prior_for_sample_jkc(num_copy_number_states: int, @@ -1084,7 +1086,7 @@ def _run_single_sample_fb(_sample_index: int): cnv_stay_prob_t = self.shared_workspace.cnv_stay_prob_t.get_value(borrow=True) log_q_tau_tk = self.shared_workspace.log_q_tau_tk.get_value(borrow=True) t_to_j_map = self.shared_workspace.t_to_j_map.get_value(borrow=True) - hmm_spec = self._get_copy_number_hmm_specs_theano_func(pi_jkc, cnv_stay_prob_t, log_q_tau_tk, t_to_j_map) + hmm_spec = self._get_copy_number_hmm_specs_pytensor_func(pi_jkc, cnv_stay_prob_t, log_q_tau_tk, t_to_j_map) log_prior_c = hmm_spec[0] log_trans_tcc = hmm_spec[1] @@ -1132,7 +1134,7 @@ def _update_log_q_c_stc_inplace(log_q_c_stc, _sample_index, new_log_posterior_tc return copy_number_update_s, copy_number_log_likelihoods_s def _update_log_class_emission_tk(self): - self._update_log_class_emission_tk_theano_func() + self._update_log_class_emission_tk_pytensor_func() def _update_class_log_posterior(self, class_update_summary_statistic_reducer) -> Tuple[float, float]: fb_result = self._hmm_q_class.perform_forward_backward( @@ -1150,19 +1152,19 @@ def update_auxiliary_vars(self): self.shared_workspace.update_auxiliary_vars() @staticmethod - @th.configparser.change_flags(compute_test_value="off") - def get_compiled_copy_number_hmm_specs_theano_func() -> th.compile.function_module.Function: + @pytensor.config.change_flags(compute_test_value="off") + def get_compiled_copy_number_hmm_specs_pytensor_func() -> pytensor.compile.Function: """Returns a compiled function that calculates the interval-class-averaged and probability-sum-normalized log copy number transition matrix and log copy number prior for the first interval - Returned theano function inputs: + Returned pytensor function inputs: pi_jkc: a 3d tensor containing copy-number priors for each contig (j) and each class (k) cnv_stay_prob_t: probability of staying on the same copy-number state at interval `t` log_q_tau_tk: log probability of copy-number classes at interval `t` t_to_j_map: a mapping from interval indices (t) to contig indices (j); it is used to unpack `pi_jkc` to `pi_tkc` (see below) - Returned theano function outputs: + Returned pytensor function outputs: log_prior_c_first_interval: log probability of copy-number states for the first interval log_trans_tab: log transition probability matrix from interval `t` to interval `t+1` @@ -1172,38 +1174,40 @@ def get_compiled_copy_number_hmm_specs_theano_func() -> th.compile.function_modu refers to contig index. """ # shorthands - pi_jkc = tt.tensor3(name='pi_jkc') - cnv_stay_prob_t = tt.vector(name='cnv_stay_prob_t') - log_q_tau_tk = tt.matrix(name='log_q_tau_tk') - t_to_j_map = tt.vector(name='t_to_j_map', dtype=tt.scal.uint32) + pi_jkc = pt.tensor3(name='pi_jkc') + cnv_stay_prob_t = pt.vector(name='cnv_stay_prob_t') + log_q_tau_tk = pt.matrix(name='log_q_tau_tk') + t_to_j_map = pt.vector(name='t_to_j_map', dtype=pytensor.scalar.uint32) + + # log prior probability for the first interval - log_prior_c_first_interval = tt.dot(tt.log(pi_jkc[t_to_j_map[0], :, :].T), tt.exp(log_q_tau_tk[0, :])) - log_prior_c_first_interval -= pm.logsumexp(log_prior_c_first_interval) + log_prior_c_first_interval = pt.dot(pt.log(pi_jkc[t_to_j_map[0], :, :].T), pt.exp(log_q_tau_tk[0, :])) + log_prior_c_first_interval -= commons.logsumexp(log_prior_c_first_interval) # log transition matrix - cnv_not_stay_prob_t = tt.ones_like(cnv_stay_prob_t) - cnv_stay_prob_t + cnv_not_stay_prob_t = pt.ones_like(cnv_stay_prob_t) - cnv_stay_prob_t num_copy_number_states = pi_jkc.shape[2] - delta_ab = tt.eye(num_copy_number_states) + delta_ab = pt.eye(num_copy_number_states) # map contig to interval and obtain pi_tkc for the rest of the targets pi_tkc = pi_jkc[t_to_j_map[1:], :, :] # calculate normalized log transition matrix # todo use logaddexp - log_trans_tkab = tt.log(cnv_not_stay_prob_t.dimshuffle(0, 'x', 'x', 'x') * pi_tkc.dimshuffle(0, 1, 'x', 2) + log_trans_tkab = pt.log(cnv_not_stay_prob_t.dimshuffle(0, 'x', 'x', 'x') * pi_tkc.dimshuffle(0, 1, 'x', 2) + cnv_stay_prob_t.dimshuffle(0, 'x', 'x', 'x') * delta_ab.dimshuffle('x', 'x', 0, 1)) - q_tau_tkab = tt.exp(log_q_tau_tk[1:, :]).dimshuffle(0, 1, 'x', 'x') - log_trans_tab = tt.sum(q_tau_tkab * log_trans_tkab, axis=1) - log_trans_tab -= pm.logsumexp(log_trans_tab, axis=2) + q_tau_tkab = pt.exp(log_q_tau_tk[1:, :]).dimshuffle(0, 1, 'x', 'x') + log_trans_tab = pt.sum(q_tau_tkab * log_trans_tkab, axis=1) + log_trans_tab -= commons.logsumexp(log_trans_tab, axis=2) inputs = [pi_jkc, cnv_stay_prob_t, log_q_tau_tk, t_to_j_map] outputs = [log_prior_c_first_interval, log_trans_tab] - return th.function(inputs=inputs, outputs=outputs) + return pytensor.function(inputs=inputs, outputs=outputs) - @th.configparser.change_flags(compute_test_value="off") - def _get_update_log_class_emission_tk_theano_func(self) -> th.compile.function_module.Function: + @pytensor.config.change_flags(compute_test_value="off") + def _get_update_log_class_emission_tk_pytensor_func(self) -> pytensor.compile.Function: """Returns a compiled function that calculates the log interval class emission probability and directly updates `log_class_emission_tk` in the workspace. @@ -1221,23 +1225,23 @@ def _get_update_log_class_emission_tk_theano_func(self) -> th.compile.function_m """ # shorthands cnv_stay_prob_t = self.shared_workspace.cnv_stay_prob_t - q_c_stc = tt.exp(self.shared_workspace.log_q_c_stc) + q_c_stc = pt.exp(self.shared_workspace.log_q_c_stc) pi_sjkc = self.pi_sjkc t_to_j_map = self.shared_workspace.t_to_j_map num_copy_number_states = self.calling_config.num_copy_number_states # log copy number transition matrix for each class - cnv_not_stay_prob_t = tt.ones_like(cnv_stay_prob_t) - cnv_stay_prob_t - delta_ab = tt.eye(num_copy_number_states) + cnv_not_stay_prob_t = pt.ones_like(cnv_stay_prob_t) - cnv_stay_prob_t + delta_ab = pt.eye(num_copy_number_states) # calculate log class emission by reducing over samples; see below - log_class_emission_cum_sum_tk = tt.zeros((self.shared_workspace.num_intervals - 1, + log_class_emission_cum_sum_tk = pt.zeros((self.shared_workspace.num_intervals - 1, self.calling_config.num_copy_number_classes), dtype=types.floatX) - # this converts TensorType from row to matrix when number in the edge case when number of intervals is equal to 2 + # this converts TensorType from row to matrix in the edge case when number of intervals is equal to 2 # (to avoid type mismatch later on) - log_class_emission_cum_sum_tk = tt.unbroadcast(log_class_emission_cum_sum_tk, 0) + log_class_emission_cum_sum_tk = unbroadcast(log_class_emission_cum_sum_tk, 0) def inc_log_class_emission_tk_except_for_first_interval(pi_jkc, q_c_tc, cum_sum_tk): """Adds the contribution of a given sample to the log class emission (symbolically). @@ -1254,15 +1258,15 @@ def inc_log_class_emission_tk_except_for_first_interval(pi_jkc, q_c_tc, cum_sum_ pi_tkc = pi_jkc[t_to_j_map[1:], :, :] # todo use logaddexp - log_trans_tkab = tt.log( + log_trans_tkab = pt.log( cnv_not_stay_prob_t.dimshuffle(0, 'x', 'x', 'x') * pi_tkc.dimshuffle(0, 1, 'x', 2) + cnv_stay_prob_t.dimshuffle(0, 'x', 'x', 'x') * delta_ab.dimshuffle('x', 'x', 0, 1)) xi_tab = q_c_tc[:-1, :].dimshuffle(0, 1, 'x') * q_c_tc[1:, :].dimshuffle(0, 'x', 1) - current_log_class_emission_tk = tt.sum(tt.sum( + current_log_class_emission_tk = pt.sum(pt.sum( xi_tab.dimshuffle(0, 'x', 1, 2) * log_trans_tkab, axis=-1), axis=-1) return cum_sum_tk + current_log_class_emission_tk - reduce_output = th.reduce(inc_log_class_emission_tk_except_for_first_interval, + reduce_output = pytensor.reduce(inc_log_class_emission_tk_except_for_first_interval, sequences=[pi_sjkc, q_c_stc], outputs_info=[log_class_emission_cum_sum_tk]) log_class_emission_tk_except_for_first_interval = reduce_output[0] @@ -1270,11 +1274,11 @@ def inc_log_class_emission_tk_except_for_first_interval(pi_jkc, q_c_tc, cum_sum_ # the first interval pi_skc_first = pi_sjkc[:, t_to_j_map[0], :, :] q_skc_first = q_c_stc[:, 0, :].dimshuffle(0, 'x', 1) - log_class_emission_k_first = tt.sum(tt.sum(tt.log(pi_skc_first) * q_skc_first, axis=0), axis=-1) + log_class_emission_k_first = pt.sum(pt.sum(pt.log(pi_skc_first) * q_skc_first, axis=0), axis=-1) # concatenate first and rest - log_class_emission_tk = tt.concatenate((log_class_emission_k_first.dimshuffle('x', 0), + log_class_emission_tk = pt.concatenate((log_class_emission_k_first.dimshuffle('x', 0), log_class_emission_tk_except_for_first_interval)) - return th.function(inputs=[], outputs=[], updates=[ + return pytensor.function(inputs=[], outputs=[], updates=[ (self.shared_workspace.log_class_emission_tk, log_class_emission_tk)]) diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/model_ploidy.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/model_ploidy.py index fd50776420f..931ded52bed 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/model_ploidy.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/model_ploidy.py @@ -4,10 +4,10 @@ from typing import List, Dict, Set, Tuple import numpy as np -import pymc3 as pm -import theano as th -import theano.tensor as tt -from pymc3 import Normal, Deterministic, DensityDist, Bound, Exponential +import pymc as pm +import pytensor +import pytensor.tensor as pt +from pymc import Normal, Deterministic, Potential, Exponential, TruncatedNormal, Mixture, NegativeBinomial from . import commons from .fancy_model import GeneralizedContinuousModel @@ -147,56 +147,55 @@ def __init__(self, assert sample_metadata_collection.all_samples_have_coverage_metadata(sample_names), \ "Some samples do not have coverage metadata" - # number of intervals per contig as a shared theano tensor - self.t_j: types.TensorSharedVariable = th.shared( + # number of intervals per contig as a shared pytensor tensor + self.t_j: types.TensorSharedVariable = pytensor.shared( interval_list_metadata.t_j.astype(types.floatX), name='t_j', borrow=config.borrow_numpy) - # count per contig and total count as shared theano tensors + # count per contig and total count as shared pytensor tensors n_sj = np.zeros((self.num_samples, self.num_contigs), dtype=types.floatX) n_s = np.zeros((self.num_samples,), dtype=types.floatX) for si, sample_name in enumerate(self.sample_names): sample_metadata = sample_metadata_collection.get_sample_coverage_metadata(sample_name) n_sj[si, :] = sample_metadata.n_j[:] n_s[si] = sample_metadata.n_total - self.n_sj: types.TensorSharedVariable = th.shared(n_sj, name='n_sj', borrow=config.borrow_numpy) - self.n_s: types.TensorSharedVariable = th.shared(n_s, name='n_s', borrow=config.borrow_numpy) + self.n_sj: types.TensorSharedVariable = pytensor.shared(n_sj, name='n_sj', borrow=config.borrow_numpy) + self.n_s: types.TensorSharedVariable = pytensor.shared(n_s, name='n_s', borrow=config.borrow_numpy) # integer ploidy values int_ploidy_values_k = np.arange(0, ploidy_config.num_ploidy_states, dtype=types.small_uint) - self.int_ploidy_values_k = th.shared(int_ploidy_values_k, name='int_ploidy_values_k', + self.int_ploidy_values_k = pytensor.shared(int_ploidy_values_k, name='int_ploidy_values_k', borrow=config.borrow_numpy) # ploidy priors p_ploidy_jk = np.zeros((self.num_contigs, self.ploidy_config.num_ploidy_states), dtype=types.floatX) for j, contig in enumerate(interval_list_metadata.ordered_contig_list): p_ploidy_jk[j, :] = ploidy_config.contig_ploidy_prior_map[contig][:] - log_p_ploidy_jk = np.log(p_ploidy_jk) - self.log_p_ploidy_jk: types.TensorSharedVariable = th.shared(log_p_ploidy_jk, name='log_p_ploidy_jk', + log_p_ploidy_jk = np.log(np.maximum(p_ploidy_jk, _eps)) + self.log_p_ploidy_jk: types.TensorSharedVariable = pytensor.shared(log_p_ploidy_jk, name='log_p_ploidy_jk', borrow=config.borrow_numpy) # ploidy log posteriors (initial value is immaterial) log_q_ploidy_sjk = np.tile(log_p_ploidy_jk, (self.num_samples, 1, 1)) - self.log_q_ploidy_sjk: types.TensorSharedVariable = th.shared( + self.log_q_ploidy_sjk: types.TensorSharedVariable = pytensor.shared( log_q_ploidy_sjk, name='log_q_ploidy_sjk', borrow=config.borrow_numpy) # ploidy log emission (initial value is immaterial) log_ploidy_emission_sjk = np.zeros( (self.num_samples, self.num_contigs, ploidy_config.num_ploidy_states), dtype=types.floatX) - self.log_ploidy_emission_sjk: types.TensorSharedVariable = th.shared( + self.log_ploidy_emission_sjk: types.TensorSharedVariable = pytensor.shared( log_ploidy_emission_sjk, name="log_ploidy_emission_sjk", borrow=config.borrow_numpy) # exclusion mask; mask(j, k) = 1 - delta(j, k) contig_exclusion_mask_jj = (np.ones((self.num_contigs, self.num_contigs), dtype=types.small_uint) - np.eye(self.num_contigs, dtype=types.small_uint)) - self.contig_exclusion_mask_jj = th.shared(contig_exclusion_mask_jj, name='contig_exclusion_mask_jj') + self.contig_exclusion_mask_jj = pytensor.shared(contig_exclusion_mask_jj, name='contig_exclusion_mask_jj') class PloidyModel(GeneralizedContinuousModel): """Declaration of the germline contig ploidy model (continuous variables only; posterior of discrete variables are assumed to be known).""" - PositiveNormal = Bound(Normal, lower=0) # how cool is this? - + @pytensor.config.change_flags(compute_test_value="off") def __init__(self, ploidy_config: PloidyModelConfig, ploidy_workspace: PloidyWorkspace): @@ -208,17 +207,18 @@ def __init__(self, n_s = ploidy_workspace.n_s n_sj = ploidy_workspace.n_sj ploidy_k = ploidy_workspace.int_ploidy_values_k - q_ploidy_sjk = tt.exp(ploidy_workspace.log_q_ploidy_sjk) + q_ploidy_sjk = pt.exp(ploidy_workspace.log_q_ploidy_sjk) eps_mapping = ploidy_config.mapping_error_rate register_as_global = self.register_as_global register_as_sample_specific = self.register_as_sample_specific # mean per-contig bias - mean_bias_j = self.PositiveNormal('mean_bias_j', - mu=1.0, - sd=ploidy_config.mean_bias_sd, - shape=(ploidy_workspace.num_contigs,)) + mean_bias_j = TruncatedNormal(name='mean_bias_j', + mu=1.0, + sigma=ploidy_config.mean_bias_sd, + lower=0.0, + shape=(ploidy_workspace.num_contigs,)) register_as_global(mean_bias_j) # contig coverage unexplained variance @@ -234,27 +234,27 @@ def __init__(self, register_as_sample_specific(psi_s, sample_axis=0) # convert "unexplained variance" to negative binomial over-dispersion - alpha_sj = tt.maximum(tt.inv((tt.exp(psi_j.dimshuffle('x', 0) + psi_s.dimshuffle(0, 'x')) - 1.0)), + alpha_sj = pt.maximum(pt.reciprocal((pt.exp(psi_j.dimshuffle('x', 0) + psi_s.dimshuffle(0, 'x')) - 1.0)), _eps) # mean ploidy per contig per sample - mean_ploidy_sj = tt.sum(tt.exp(ploidy_workspace.log_q_ploidy_sjk) + mean_ploidy_sj = pt.sum(pt.exp(ploidy_workspace.log_q_ploidy_sjk) * ploidy_workspace.int_ploidy_values_k.dimshuffle('x', 'x', 0), axis=2) # mean-field amplification coefficient per contig gamma_sj = mean_ploidy_sj * t_j.dimshuffle('x', 0) * mean_bias_j.dimshuffle('x', 0) # gamma_rest_sj \equiv sum_{j' \neq j} gamma_sj - gamma_rest_sj = tt.dot(gamma_sj, contig_exclusion_mask_jj) + gamma_rest_sj = pt.dot(gamma_sj, contig_exclusion_mask_jj) # NB per-contig counts mu_num_sjk = (t_j.dimshuffle('x', 0, 'x') * mean_bias_j.dimshuffle('x', 0, 'x') * ploidy_k.dimshuffle('x', 'x', 0)) mu_den_sjk = gamma_rest_sj.dimshuffle(0, 1, 'x') + mu_num_sjk - eps_mapping_j = eps_mapping * t_j / tt.sum(t_j) # average number of reads erroneously mapped to contig j + eps_mapping_j = eps_mapping * t_j / pt.sum(t_j) # average number of reads erroneously mapped to contig j # the switch is required for a single contig edge case - mu_ratio_sjk = tt.switch(tt.eq(mu_den_sjk, 0.0), 0.0, mu_num_sjk / mu_den_sjk) + mu_ratio_sjk = pt.switch(pt.eq(mu_den_sjk, 0.0), 0.0, mu_num_sjk / mu_den_sjk) mu_sjk = ((1.0 - eps_mapping) * mu_ratio_sjk + eps_mapping_j.dimshuffle('x', 0, 'x')) * n_s.dimshuffle(0, 'x', 'x') @@ -265,9 +265,11 @@ def _get_logp_sjk(_n_sj): _n_sj.dimshuffle(0, 1, 'x')) # contig counts return _logp_sjk - DensityDist(name='n_sj_obs', - logp=lambda _n_sj: tt.sum(q_ploidy_sjk * _get_logp_sjk(_n_sj)), - observed=n_sj) + + # originally DensityDist, but this raised an error about random; + # changed in https://github.com/broadinstitute/gatk/pull/8561 + Potential(name='n_sj_obs', + var=pt.sum(q_ploidy_sjk * _get_logp_sjk(n_sj))) # for log ploidy emission sampling Deterministic(name='logp_sjk', var=_get_logp_sjk(n_sj)) @@ -284,7 +286,7 @@ def __init__(self, ploidy_model: PloidyModel, samples_per_round: int): def update_approximation(self, approx: pm.approximations.MeanField): """Generates a new compiled sampler based on a given approximation. Args: - approx: an instance of PyMC3 mean-field approximation + approx: an instance of PyMC mean-field approximation Returns: None @@ -298,13 +300,14 @@ def is_sampler_initialized(self): def draw(self) -> np.ndarray: return self._simultaneous_log_ploidy_emission_sampler() - @th.configparser.change_flags(compute_test_value="off") + @pytensor.config.change_flags(compute_test_value="off") def _get_compiled_simultaneous_log_ploidy_emission_sampler(self, approx: pm.approximations.MeanField): - """For a given variational approximation, returns a compiled theano function that draws posterior samples + """For a given variational approximation, returns a compiled pytensor function that draws posterior samples from the log ploidy emission.""" log_ploidy_emission_sjk = commons.stochastic_node_mean_symbolic( approx, self.ploidy_model['logp_sjk'], size=self.samples_per_round) - return th.function(inputs=[], outputs=log_ploidy_emission_sjk) + return pm.pytensorf.compile_pymc(inputs=[], outputs=log_ploidy_emission_sjk, + random_seed=approx.rng.randint(2**30, dtype=np.int64)) class PloidyBasicCaller: @@ -314,21 +317,21 @@ def __init__(self, ploidy_workspace: PloidyWorkspace): self.ploidy_workspace = ploidy_workspace self.inference_params = inference_params - self._update_log_q_ploidy_sjk_theano_func = self._get_update_log_q_ploidy_sjk_theano_func() + self._update_log_q_ploidy_sjk_pytensor_func = self._get_update_log_q_ploidy_sjk_pytensor_func() - @th.configparser.change_flags(compute_test_value="off") - def _get_update_log_q_ploidy_sjk_theano_func(self) -> th.compile.function_module.Function: + @pytensor.config.change_flags(compute_test_value="off") + def _get_update_log_q_ploidy_sjk_pytensor_func(self) -> pytensor.compile.Function: new_log_q_ploidy_sjk = (self.ploidy_workspace.log_p_ploidy_jk.dimshuffle('x', 0, 1) + self.ploidy_workspace.log_ploidy_emission_sjk) - new_log_q_ploidy_sjk -= pm.logsumexp(new_log_q_ploidy_sjk, axis=2) + new_log_q_ploidy_sjk -= commons.logsumexp(new_log_q_ploidy_sjk, axis=2) old_log_q_ploidy_sjk = self.ploidy_workspace.log_q_ploidy_sjk admixed_new_log_q_ploidy_sjk = commons.safe_logaddexp( new_log_q_ploidy_sjk + np.log(self.inference_params.caller_external_admixing_rate), old_log_q_ploidy_sjk + np.log(1.0 - self.inference_params.caller_external_admixing_rate)) update_norm_sj = commons.get_hellinger_distance(admixed_new_log_q_ploidy_sjk, old_log_q_ploidy_sjk) - return th.function(inputs=[], + return pytensor.function(inputs=[], outputs=[update_norm_sj], updates=[(self.ploidy_workspace.log_q_ploidy_sjk, admixed_new_log_q_ploidy_sjk)]) def call(self) -> np.ndarray: - return self._update_log_q_ploidy_sjk_theano_func() + return self._update_log_q_ploidy_sjk_pytensor_func() diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/theano_hmm.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/pytensor_hmm.py similarity index 76% rename from src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/theano_hmm.py rename to src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/pytensor_hmm.py index 8701e6487dd..d8dbf3c614a 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/theano_hmm.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/models/pytensor_hmm.py @@ -1,16 +1,16 @@ from typing import Optional, List, Tuple, Union import numpy as np -import pymc3 as pm -import theano as th -import theano.tensor as tt +import pytensor +import pytensor.tensor as pt -from . import commons +from ..models import commons +from ..models.commons import logsumexp from .. import types -class TheanoForwardBackward: - """Implementation of the forward-backward algorithm in theano.""" +class PytensorForwardBackward: + """Implementation of the forward-backward algorithm in pytensor.""" def __init__(self, log_posterior_probs_output_tc: Optional[types.TensorSharedVariable] = None, resolve_nans: bool = False, @@ -18,7 +18,7 @@ def __init__(self, do_admixing: bool = False, include_update_size_output: bool = False, include_alpha_beta_output: bool = False): - """Initializes the forward-backward algorithm by compiling a theano function according to the + """Initializes the forward-backward algorithm by compiling a pytensor function according to the boolean flags. Args: @@ -36,7 +36,7 @@ def __init__(self, self.do_admixing = do_admixing self.include_update_size_output = include_update_size_output self.include_alpha_beta_output = include_alpha_beta_output - self._forward_backward_theano_func = self._get_compiled_forward_backward_theano_func() + self._forward_backward_pytensor_func = self._get_compiled_forward_backward_pytensor_func() def perform_forward_backward(self, log_prior_c: np.ndarray, @@ -48,7 +48,7 @@ def perform_forward_backward(self, """Runs the forward-backward algorithm. Notes: - The inputs args must be compatible with the compiled theano function according to the + The inputs args must be compatible with the compiled pytensor function according to the class initializer flags. Args: @@ -82,12 +82,12 @@ class initializer flags. assert prev_log_posterior_tc is not None,\ "Update size output is enabled but `prev_log_posterior_tc` is not specified." - return self._decompose_theano_forward_backward_outputs( - self._forward_backward_theano_func(*self._compose_theano_forward_backward_inputs( + return self._decompose_pytensor_forward_backward_outputs( + self._forward_backward_pytensor_func(*self._compose_pytensor_forward_backward_inputs( log_prior_c, log_trans_tcc, log_emission_tc, prev_log_posterior_tc, admixing_rate, temperature))) - def _compose_theano_forward_backward_inputs(self, + def _compose_pytensor_forward_backward_inputs(self, log_prior_c: np.ndarray, log_trans_tcc: np.ndarray, log_emission_tc: np.ndarray, @@ -103,7 +103,7 @@ def _compose_theano_forward_backward_inputs(self, inputs += (temperature,) return inputs - def _decompose_theano_forward_backward_outputs(self, outputs: List[Union[np.ndarray, float]])\ + def _decompose_pytensor_forward_backward_outputs(self, outputs: List[Union[np.ndarray, float]])\ -> 'ForwardBackwardResult': result = ForwardBackwardResult() arg_idx = 0 @@ -122,13 +122,13 @@ def _decompose_theano_forward_backward_outputs(self, outputs: List[Union[np.ndar arg_idx += 1 return result - @th.configparser.change_flags(compute_test_value="ignore") - def _get_compiled_forward_backward_theano_func(self) -> th.compile.function_module.Function: - """Returns a compiled theano function that computes the posterior probabilities of hidden states using + @pytensor.config.change_flags(compute_test_value="ignore") + def _get_compiled_forward_backward_pytensor_func(self) -> pytensor.compile.Function: + """Returns a compiled pytensor function that computes the posterior probabilities of hidden states using the forward-backward algorithm. Note: - The input arguments and the output of the compiled theano function is determined by the initializer flags + The input arguments and the output of the compiled pytensor function is determined by the initializer flags as follows: There are 3 basic input arguments: @@ -162,17 +162,17 @@ def _get_compiled_forward_backward_theano_func(self) -> th.compile.function_modu and `beta_tc` (float vector). Returns: - A compiled theano function + A compiled pytensor function """ # basic inputs - log_prior_c = tt.vector('log_prior_c') - log_trans_tcc = tt.tensor3('log_trans_tcc') - log_emission_tc = tt.matrix('log_emission_tc') + log_prior_c = pt.vector('log_prior_c') + log_trans_tcc = pt.tensor3('log_trans_tcc') + log_emission_tc = pt.matrix('log_emission_tc') # optional inputs - prev_log_posterior_tc = tt.matrix('prev_log_posterior_tc') - admixing_rate = tt.scalar('admixing_rate') - temperature = tt.scalar('temperature') + prev_log_posterior_tc = pt.matrix('prev_log_posterior_tc') + admixing_rate = pt.scalar('admixing_rate') + temperature = pt.scalar('temperature') if self.do_thermalization: processed_log_prior_c, processed_log_trans_tcc, processed_log_emission_tc =\ @@ -187,8 +187,8 @@ def _get_compiled_forward_backward_theano_func(self) -> th.compile.function_modu if self.do_admixing: processed_log_posterior_tc = commons.safe_logaddexp( - new_log_posterior_tc + tt.log(admixing_rate), - prev_log_posterior_tc + tt.log(1.0 - admixing_rate)) + new_log_posterior_tc + pt.log(admixing_rate), + prev_log_posterior_tc + pt.log(1.0 - admixing_rate)) else: processed_log_posterior_tc = new_log_posterior_tc @@ -223,12 +223,12 @@ def _get_compiled_forward_backward_theano_func(self) -> th.compile.function_modu if self.include_alpha_beta_output: outputs += [alpha_tc, beta_tc] - return th.function(inputs=inputs, outputs=outputs, updates=updates) + return pytensor.function(inputs=inputs, outputs=outputs, updates=updates) @staticmethod - def get_symbolic_log_posterior(log_prior_c: types.TheanoVector, - log_trans_tcc: types.TheanoTensor3, - log_emission_tc: types.TheanoMatrix, + def get_symbolic_log_posterior(log_prior_c: types.PytensorVector, + log_trans_tcc: types.PytensorTensor3, + log_emission_tc: types.PytensorMatrix, resolve_nans: bool): """Generates symbolic tensors representing hidden-state log posterior, log data likelihood, forward table (alpha), and backward table (beta). @@ -238,9 +238,9 @@ def get_symbolic_log_posterior(log_prior_c: types.TheanoVector, """ num_states = log_prior_c.shape[0] - def calculate_next_alpha(c_log_trans_ab: types.TheanoMatrix, - c_log_emission_b: types.TheanoVector, - p_alpha_a: types.TheanoVector): + def calculate_next_alpha(c_log_trans_ab: types.PytensorMatrix, + c_log_emission_b: types.PytensorVector, + p_alpha_a: types.PytensorVector): """Calculates the next entry on the forward table, alpha_{t}, from alpha_{t-1}. Args: @@ -252,16 +252,16 @@ def calculate_next_alpha(c_log_trans_ab: types.TheanoMatrix, Returns: symbolic 1d tensor of alpha_{t} """ - mu_ba = tt.tile(p_alpha_a, (num_states, 1)) + c_log_trans_ab.T - n_alpha_b = c_log_emission_b + pm.math.logsumexp(mu_ba, axis=1).dimshuffle(0) + mu_ba = pt.tile(p_alpha_a, (num_states, 1)) + c_log_trans_ab.T + n_alpha_b = c_log_emission_b + logsumexp(mu_ba, axis=1).dimshuffle(0) if resolve_nans: - return tt.switch(tt.isnan(n_alpha_b), -np.inf, n_alpha_b) + return pt.switch(pt.isnan(n_alpha_b), -np.inf, n_alpha_b) else: return n_alpha_b - def calculate_prev_beta(n_log_trans_ab: types.TheanoMatrix, - n_log_emission_b: types.TheanoVector, - n_beta_b: types.TheanoVector): + def calculate_prev_beta(n_log_trans_ab: types.PytensorMatrix, + n_log_emission_b: types.PytensorVector, + n_beta_b: types.PytensorVector): """Calculates the previous entry on the backward table, beta_{t-1}, from beta_{t}. Args: @@ -273,10 +273,10 @@ def calculate_prev_beta(n_log_trans_ab: types.TheanoMatrix, Returns: symbolic 1d tensor of beta_{t-1} """ - nu_ab = tt.tile(n_beta_b + n_log_emission_b, (num_states, 1)) + n_log_trans_ab - p_beta_a = pm.math.logsumexp(nu_ab, axis=1).dimshuffle(0) + nu_ab = pt.tile(n_beta_b + n_log_emission_b, (num_states, 1)) + n_log_trans_ab + p_beta_a = logsumexp(nu_ab, axis=1).dimshuffle(0) if resolve_nans: - return tt.switch(tt.isnan(p_beta_a), -np.inf, p_beta_a) + return pt.switch(pt.isnan(p_beta_a), -np.inf, p_beta_a) else: return p_beta_a @@ -284,45 +284,45 @@ def calculate_prev_beta(n_log_trans_ab: types.TheanoMatrix, first_alpha_c = log_prior_c + log_emission_tc[0, :] # the rest of the forward table - rest_alpha_tc, alpha_updates = th.scan( + rest_alpha_tc, alpha_updates = pytensor.scan( fn=calculate_next_alpha, sequences=[log_trans_tcc, log_emission_tc[1:, :]], outputs_info=[first_alpha_c]) # concatenate with the first alpha - alpha_tc = tt.concatenate((first_alpha_c.dimshuffle('x', 0), rest_alpha_tc)) + alpha_tc = pt.concatenate((first_alpha_c.dimshuffle('x', 0), rest_alpha_tc)) # last entry of the backward table (zero for all states) - last_beta_c = tt.zeros_like(log_prior_c) + last_beta_c = pt.zeros_like(log_prior_c) # the rest of the backward table - rest_beta_tc, beta_updates = th.scan( + rest_beta_tc, beta_updates = pytensor.scan( fn=calculate_prev_beta, sequences=[log_trans_tcc, log_emission_tc[1:, :]], go_backwards=True, outputs_info=[last_beta_c]) # concatenate with the last beta and reverse - beta_tc = tt.concatenate((last_beta_c.dimshuffle('x', 0), rest_beta_tc))[::-1, :] + beta_tc = pt.concatenate((last_beta_c.dimshuffle('x', 0), rest_beta_tc))[::-1, :] # calculate normalized log posterior log_unnormalized_posterior_tc = alpha_tc + beta_tc - log_data_likelihood_t = pm.math.logsumexp(log_unnormalized_posterior_tc, axis=1) + log_data_likelihood_t = logsumexp(log_unnormalized_posterior_tc, axis=1) log_posterior_probs_tc = log_unnormalized_posterior_tc - log_data_likelihood_t return log_posterior_probs_tc, log_data_likelihood_t.dimshuffle(0), alpha_tc, beta_tc @staticmethod - def get_symbolic_thermal_hmm_params(log_prior_c: types.TheanoVector, - log_trans_tcc: types.TheanoTensor3, - log_emission_tc: types.TheanoMatrix, - temperature: tt.scalar): - inv_temperature = tt.inv(temperature) + def get_symbolic_thermal_hmm_params(log_prior_c: types.PytensorVector, + log_trans_tcc: types.PytensorTensor3, + log_emission_tc: types.PytensorMatrix, + temperature: pt.scalar): + inv_temperature = pt.reciprocal(temperature) thermal_log_prior_c = inv_temperature * log_prior_c - thermal_log_prior_c -= pm.math.logsumexp(thermal_log_prior_c) + thermal_log_prior_c -= logsumexp(thermal_log_prior_c) thermal_log_trans_tcc = inv_temperature * log_trans_tcc - thermal_log_trans_tcc -= pm.math.logsumexp(thermal_log_trans_tcc, axis=-1) + thermal_log_trans_tcc -= logsumexp(thermal_log_trans_tcc, axis=-1) thermal_log_emission_tc = inv_temperature * log_emission_tc return thermal_log_prior_c, thermal_log_trans_tcc, thermal_log_emission_tc @@ -343,31 +343,31 @@ def __init__(self, self.update_norm_t = update_norm_t -class TheanoViterbi: - """Implementation of the Viterbi algorithm in theano.""" +class PytensorViterbi: + """Implementation of the Viterbi algorithm in pytensor.""" def __init__(self): - self._viterbi_theano_func = self._get_compiled_viterbi_theano_func() + self._viterbi_pytensor_func = self._get_compiled_viterbi_pytensor_func() def get_viterbi_path(self, log_prior_c: np.ndarray, log_trans_tcc: np.ndarray, log_emission_tc: np.ndarray) -> List[int]: - return self._viterbi_theano_func(log_prior_c, log_trans_tcc, log_emission_tc).tolist() + return self._viterbi_pytensor_func(log_prior_c, log_trans_tcc, log_emission_tc).tolist() - @th.configparser.change_flags(compute_test_value="ignore") - def _get_compiled_viterbi_theano_func(self) -> th.compile.function_module.Function: - """Returns a theano function that calculates the Viterbi path.""" - log_prior_c = tt.vector('log_prior_c') - log_trans_tcc = tt.tensor3('log_trans_tcc') - log_emission_tc = tt.matrix('log_emission_tc') + @pytensor.config.change_flags(compute_test_value="ignore") + def _get_compiled_viterbi_pytensor_func(self) -> pytensor.compile.Function: + """Returns a pytensor function that calculates the Viterbi path.""" + log_prior_c = pt.vector('log_prior_c') + log_trans_tcc = pt.tensor3('log_trans_tcc') + log_emission_tc = pt.matrix('log_emission_tc') - return th.function(inputs=[log_prior_c, log_trans_tcc, log_emission_tc], + return pytensor.function(inputs=[log_prior_c, log_trans_tcc, log_emission_tc], outputs=self._get_symbolic_viterbi_path(log_prior_c, log_trans_tcc, log_emission_tc)) @staticmethod - def _get_symbolic_viterbi_path(log_prior_c: types.TheanoVector, - log_trans_tcc: types.TheanoTensor3, - log_emission_tc: types.TheanoMatrix): + def _get_symbolic_viterbi_path(log_prior_c: types.PytensorVector, + log_trans_tcc: types.PytensorTensor3, + log_emission_tc: types.PytensorMatrix): """Generates a symbolic 1d integer tensor representing the most-likely chain of hidden states (Viterbi algorithm). @@ -395,7 +395,7 @@ def calculate_next_omega_psi(p_log_trans_ab, c_log_emission_b, p_omega_a): next omega, next psi """ tau_ab = p_log_trans_ab + p_omega_a.dimshuffle(0, 'x') - max_tau_b, psi_b = tt.max_and_argmax(tau_ab, axis=0) + max_tau_b, psi_b = pt.max_and_argmax(tau_ab, axis=0) n_omega_b = c_log_emission_b + max_tau_b return n_omega_b, psi_b @@ -416,7 +416,7 @@ def calculate_previous_best_state(c_psi_c, c_best_state): # calculate the log data likelihood of the partial max sum-product paths (omega) # and the backtracking table (psi) - omega_psi_list, _ = th.scan( + omega_psi_list, _ = pytensor.scan( fn=calculate_next_omega_psi, sequences=[log_trans_tcc, log_emission_tc[1:, :]], outputs_info=[omega_first_a, None]) @@ -424,16 +424,16 @@ def calculate_previous_best_state(c_psi_c, c_best_state): psi_tc = omega_psi_list[1] # the best terminal state - last_best_state = tt.argmax(omega_tc[-1, :]) + last_best_state = pt.argmax(omega_tc[-1, :]) # backtrack to obtain the previous states of the max sum-product path - rest_best_states_t, _ = th.scan( + rest_best_states_t, _ = pytensor.scan( fn=calculate_previous_best_state, sequences=[psi_tc], outputs_info=[last_best_state], go_backwards=True) # concatenate with the terminal state - viterbi_path_t = tt.concatenate([tt.stack(last_best_state), rest_best_states_t])[::-1] + viterbi_path_t = pt.concatenate([last_best_state.dimshuffle('x'), rest_best_states_t])[::-1] return viterbi_path_t diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/postprocess/segment_quality_utils.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/postprocess/segment_quality_utils.py index 8ee677b909e..58dd81e835d 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/postprocess/segment_quality_utils.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/postprocess/segment_quality_utils.py @@ -2,10 +2,10 @@ from typing import Dict, List import numpy as np -import pymc3 as pm -import theano as th -import theano.tensor as tt -from scipy.misc import logsumexp +import pytensor +import pytensor.tensor as pt +from ..models import commons +from scipy.special import logsumexp from ..utils.math import logsumexp_double_complement, logp_to_phred @@ -67,9 +67,9 @@ def __init__(self, for left_out_state in range(self.num_states)} @staticmethod - @th.configparser.change_flags(compute_test_value="ignore") - def _get_compiled_constrained_path_logp_theano_func() -> th.compile.function_module.Function: - """Returns a theano function that calculates the log posterior probability of hidden state paths composed + @pytensor.config.change_flags(compute_test_value="ignore") + def _get_compiled_constrained_path_logp_pytensor_func() -> pytensor.compile.Function: + """Returns a pytensor function that calculates the log posterior probability of hidden state paths composed from a subset X of all hidden states S. More explicitly, this function calculates the logp of all paths constrained to the hidden-state set @@ -79,7 +79,7 @@ def _get_compiled_constrained_path_logp_theano_func() -> th.compile.function_mod t < t_0 | t_0 t_1 ... t_N | t > t_N c in S | c in X c in X c in X | c in S - The inputs for the returned theano function are as follows: + The inputs for the returned pytensor function are as follows: alpha_first_c: forward log likelihood (alpha) for t = t_0 and c in X beta_last_c: backward log likelihood (beta) for t = t_N and c in X @@ -101,32 +101,32 @@ def _get_compiled_constrained_path_logp_theano_func() -> th.compile.function_mod are strictly forbidden by the prior and/or the transition matrix) Returns: - a theano function + a pytensor function """ - alpha_first_c = tt.vector('alpha_first_c') - beta_last_c = tt.vector('beta_last_c') - log_emission_tc = tt.matrix('log_emission_tc') - log_trans_tcc = tt.tensor3('log_trans_tcc') - log_data_likelihood = tt.scalar('log_data_likelihood') - - def update_alpha(c_log_emission_c: tt.vector, - c_log_trans_cc: tt.matrix, - p_alpha_c: tt.vector): - return c_log_emission_c + pm.math.logsumexp( + alpha_first_c = pt.vector('alpha_first_c') + beta_last_c = pt.vector('beta_last_c') + log_emission_tc = pt.matrix('log_emission_tc') + log_trans_tcc = pt.tensor3('log_trans_tcc') + log_data_likelihood = pt.scalar('log_data_likelihood') + + def update_alpha(c_log_emission_c: pt.vector, + c_log_trans_cc: pt.matrix, + p_alpha_c: pt.vector): + return c_log_emission_c + commons.logsumexp( p_alpha_c.dimshuffle(0, 'x') + c_log_trans_cc, axis=0).dimshuffle(1) - alpha_seg_iters, _ = th.scan( + alpha_seg_iters, _ = pytensor.scan( fn=update_alpha, sequences=[log_emission_tc, log_trans_tcc], outputs_info=[alpha_first_c]) alpha_seg_end_c = alpha_seg_iters[-1, :] inputs = [alpha_first_c, beta_last_c, log_emission_tc, log_trans_tcc, log_data_likelihood] - output = pm.math.logsumexp(alpha_seg_end_c + beta_last_c) - log_data_likelihood - return th.function(inputs=inputs, outputs=output) + output = commons.logsumexp(alpha_seg_end_c + beta_last_c) - log_data_likelihood + return pytensor.function(inputs=inputs, outputs=output) # make a private static instance - _constrained_path_logp_theano_func = _get_compiled_constrained_path_logp_theano_func.__func__() + _constrained_path_logp_pytensor_func = _get_compiled_constrained_path_logp_pytensor_func.__func__() def get_log_constrained_posterior_prob(self, start_index: int, end_index: int, @@ -162,11 +162,11 @@ def get_log_constrained_posterior_prob(self, self.log_emission_tc[(start_index + 1):(end_index + 1), allowed_states] constrained_log_trans_tcc = \ self.log_trans_tcc[start_index:end_index, allowed_states, :][:, :, allowed_states] - logp = self._constrained_path_logp_theano_func( + logp = self._constrained_path_logp_pytensor_func( constrained_alpha_first_c, constrained_beta_last_c, constrained_log_emission_tc, constrained_log_trans_tcc, self.log_data_likelihood) - return np.asscalar(logp) + return logp.item() def get_segment_quality_some_called(self, start_index: int, end_index: int, call_state: int) -> float: """Calculates the phred-scaled posterior probability that one or more ("some") sites in a segment have @@ -224,7 +224,7 @@ def get_segment_quality_all_called(self, start_index: int, end_index: int, call_ if start_index == end_index: log_compl_prob = logsumexp( - self.log_posterior_prob_tc[start_index, self.leave_one_out_state_lists[call_state]]) + self.log_posterior_prob_tc[start_index, self.leave_one_out_state_lists[call_state]])[0] return logp_to_phred(log_compl_prob, complement=False) else: # calculate the uncorrelated log complementary probability diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/postprocess/viterbi_segmentation.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/postprocess/viterbi_segmentation.py index 9a256a9e50b..d1fb831cb6a 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/postprocess/viterbi_segmentation.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/postprocess/viterbi_segmentation.py @@ -13,7 +13,7 @@ from ..io import io_consts, io_commons, io_denoising_calling, io_intervals_and_counts, io_vcf_parsing from ..models.model_denoising_calling import DenoisingModelConfig, CopyNumberCallingConfig, \ HHMMClassAndCopyNumberBasicCaller -from ..models.theano_hmm import TheanoForwardBackward, TheanoViterbi +from ..models.pytensor_hmm import PytensorForwardBackward, PytensorViterbi from ..structs.interval import Interval from ..structs.metadata import IntervalListMetadata from ..structs.metadata import SampleMetadataCollection @@ -97,8 +97,8 @@ def __init__(self, self.cnv_stay_prob_t_j[contig] = np.exp(-dist_t / self.calling_config.cnv_coherence_length) # forward-backward algorithm - _logger.info("Compiling theano forward-backward function...") - self.theano_forward_backward = TheanoForwardBackward( + _logger.info("Compiling pytensor forward-backward function...") + self.pytensor_forward_backward = PytensorForwardBackward( log_posterior_probs_output_tc=None, resolve_nans=False, do_thermalization=False, @@ -107,13 +107,13 @@ def __init__(self, include_alpha_beta_output=True) # viterbi algorithm - _logger.info("Compiling theano Viterbi function...") - self.theano_viterbi = TheanoViterbi() + _logger.info("Compiling pytensor Viterbi function...") + self.pytensor_viterbi = PytensorViterbi() # copy-number HMM specs generator - _logger.info("Compiling theano variational HHMM...") + _logger.info("Compiling pytensor variational HHMM...") self.get_copy_number_hmm_specs = HHMMClassAndCopyNumberBasicCaller\ - .get_compiled_copy_number_hmm_specs_theano_func() + .get_compiled_copy_number_hmm_specs_pytensor_func() def _viterbi_segments_generator(self) -> Generator[IntegerCopyNumberSegment, None, None]: """Performs Viterbi segmentation and segment quality calculation for a single sample in @@ -165,7 +165,7 @@ def _viterbi_segments_generator(self) -> Generator[IntegerCopyNumberSegment, Non log_trans_contig_tcc = hmm_specs[1] # run forward-back algorithm - fb_result = self.theano_forward_backward.perform_forward_backward( + fb_result = self.pytensor_forward_backward.perform_forward_backward( log_prior_c, log_trans_contig_tcc, copy_number_log_emission_contig_tc) log_posterior_prob_tc = fb_result.log_posterior_probs_tc log_data_likelihood = fb_result.log_data_likelihood @@ -182,7 +182,7 @@ def _viterbi_segments_generator(self) -> Generator[IntegerCopyNumberSegment, Non if bool(self.clustered_vcf is None) != bool(self.intervals_vcf is None): raise Exception("If clustered_vcf is provided, then intervals_vcf must be provided.") # run viterbi algorithm - viterbi_path_t_contig = self.theano_viterbi.get_viterbi_path( + viterbi_path_t_contig = self.pytensor_viterbi.get_viterbi_path( log_prior_c, log_trans_contig_tcc, copy_number_log_emission_contig_tc) # coalesce into piecewise constant copy-number segments diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/inference_task_base.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/inference_task_base.py index f650b1cfdaa..751b2b4cf63 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/inference_task_base.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/inference_task_base.py @@ -7,9 +7,9 @@ from typing import List, Callable, Optional, Set, Tuple, Any, Dict import numpy as np -import pymc3 as pm -import theano as th -import theano.tensor as tt +import pymc as pm +import pytensor +import pytensor.tensor as pt import tqdm from .. import types @@ -40,7 +40,7 @@ def update_approximation(self, approx: pm.approximations.MeanField) -> None: """Take a new mean-field approximation and update the sampler routine accordingly. Args: - approx: an instance of PyMC3 mean-field posterior approximation + approx: an instance of PyMC mean-field posterior approximation Returns: None @@ -198,9 +198,9 @@ class HybridInferenceTask(InferenceTask): The general implementation motif is: - (a) to store sufficient statistics from q(DRVs) as a shared theano tensor such that the the + (a) to store sufficient statistics from q(DRVs) as a shared pytensor tensor such that the the model can access it, - (b) to store log_emission(DRVs) as a shared theano tensor (or ndarray) such that the caller + (b) to store log_emission(DRVs) as a shared pytensor tensor (or ndarray) such that the caller can access it, and: (c) let the caller directly update the shared sufficient statistics. """ @@ -219,7 +219,7 @@ def __init__(self, Args: hybrid_inference_params: inference configuration - continuous_model: a PyMC3 model representing the continuous sector of the PGM + continuous_model: a PyMC model representing the continuous sector of the PGM sampler: log emission probability sampler caller: discrete RV posterior updater **kwargs: extra keywords @@ -262,7 +262,7 @@ def __init__(self, with self.continuous_model: if not hasattr(self, 'temperature'): initial_temperature = self.hybrid_inference_params.initial_temperature - self.temperature: types.TensorSharedVariable = th.shared( + self.temperature: types.TensorSharedVariable = pytensor.shared( np.asarray([initial_temperature], dtype=types.floatX)) initial_temperature = self.temperature.get_value()[0] if (np.abs(initial_temperature - 1.0) < self.temperature_tolerance or @@ -274,7 +274,7 @@ def __init__(self, temperature_drop_per_iter = ((initial_temperature - 1.0) / self.hybrid_inference_params.num_thermal_advi_iters) temperature_update = [(self.temperature, - tt.maximum(1.0, self.temperature - temperature_drop_per_iter))] + pt.maximum(1.0, self.temperature - temperature_drop_per_iter))] self.continuous_model_advi = ADVIDeterministicAnnealing( random_seed=self.hybrid_inference_params.random_seed, @@ -341,7 +341,7 @@ def disengage(self): def engage(self): try: all_converged = False - while self.i_epoch <= self.hybrid_inference_params.max_training_epochs: + while self.i_epoch <= self.hybrid_inference_params.max_training_epochs: _logger.debug("Starting epoch {0}...".format(self.i_epoch)) converged_continuous = self._update_continuous_posteriors() all_converged = converged_continuous diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/task_case_denoising_calling.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/task_case_denoising_calling.py index df9ddc38ada..a04d996831b 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/task_case_denoising_calling.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/task_case_denoising_calling.py @@ -2,7 +2,7 @@ from typing import Callable import numpy as np -import theano as th +import pytensor from .inference_task_base import Caller, CallerUpdateSummary, HybridInferenceTask, HybridInferenceParameters from .. import types @@ -104,7 +104,7 @@ def __init__(self, else: _logger.info("Instantiating the copy number caller...") initial_temperature = hybrid_inference_params.initial_temperature - self.temperature: types.TensorSharedVariable = th.shared( + self.temperature: types.TensorSharedVariable = pytensor.shared( np.asarray([initial_temperature], dtype=types.floatX)) copy_number_caller = HMMCopyNumberCaller( calling_config, hybrid_inference_params, shared_workspace, self.temperature) diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/task_cohort_denoising_calling.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/task_cohort_denoising_calling.py index 91c5bac7a28..3cd7a4b3c5d 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/task_cohort_denoising_calling.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/task_cohort_denoising_calling.py @@ -2,9 +2,10 @@ from typing import Callable, Optional import numpy as np -import pymc3 as pm -import theano as th +import pymc as pm +import pytensor +from ..models import commons from .inference_task_base import Sampler, Caller, CallerUpdateSummary, HybridInferenceTask, HybridInferenceParameters from .. import config, types from ..models.model_denoising_calling import DenoisingModel, DenoisingModelConfig, \ @@ -14,6 +15,9 @@ _logger = logging.getLogger(__name__) +_eps = commons.eps + + class HHMMClassAndCopyNumberCaller(Caller): """This class is a wrapper around `HHMMClassAndCopyNumberBasicCaller` to be used in a cohort denoising and calling task.""" @@ -53,15 +57,15 @@ def finalize(self): # admix q_c_stc with the snapshot self.shared_workspace.log_q_c_stc.set_value( np.logaddexp( - log_q_c_stc_latest + np.log(self.hybrid_inference_params.caller_external_admixing_rate), - self.log_q_c_stc_snapshot + np.log(1 - self.hybrid_inference_params.caller_external_admixing_rate)), + log_q_c_stc_latest + np.log(np.maximum(self.hybrid_inference_params.caller_external_admixing_rate, _eps)), + self.log_q_c_stc_snapshot + np.log(np.maximum(1 - self.hybrid_inference_params.caller_external_admixing_rate, _eps))), borrow=True) # admix q_tau_tk with the snapshot self.shared_workspace.log_q_tau_tk.set_value( np.logaddexp( - log_q_tau_tk_latest + np.log(self.hybrid_inference_params.caller_external_admixing_rate), - self.log_q_tau_tk_snapshot + np.log(1 - self.hybrid_inference_params.caller_external_admixing_rate)), + log_q_tau_tk_latest + np.log(np.maximum(self.hybrid_inference_params.caller_external_admixing_rate, _eps)), + self.log_q_tau_tk_snapshot + np.log(np.maximum(1 - self.hybrid_inference_params.caller_external_admixing_rate, _eps))), borrow=True) def update_auxiliary_vars(self): @@ -173,7 +177,7 @@ def __init__(self, else: _logger.info("Instantiating the copy number caller...") initial_temperature = hybrid_inference_params.initial_temperature - self.temperature: types.TensorSharedVariable = th.shared( + self.temperature: types.TensorSharedVariable = pytensor.shared( np.asarray([initial_temperature], dtype=types.floatX)) copy_number_caller = HHMMClassAndCopyNumberCaller( calling_config, hybrid_inference_params, shared_workspace, self.temperature) diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/task_cohort_ploidy_determination.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/task_cohort_ploidy_determination.py index 7b949a68267..32630874b5c 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/task_cohort_ploidy_determination.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/tasks/task_cohort_ploidy_determination.py @@ -1,6 +1,6 @@ import logging import numpy as np -import pymc3 as pm +import pymc as pm from typing import Callable from .inference_task_base import Sampler, Caller, CallerUpdateSummary, \ diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/types.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/types.py index cf1ea24b562..1c30911f67b 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/types.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/types.py @@ -1,9 +1,9 @@ import numpy as np -import theano -import theano.tensor as tt +import pytensor +import pytensor.tensor as pt # the following dtype will be used for all float numpy ndarrays -floatX = theano.config.floatX +floatX = pytensor.config.floatX # big uint dtype (used for aggregated counts) big_uint = np.uint64 @@ -18,8 +18,8 @@ int_dtypes = [np.int8, np.int16, np.int32, np.int64] uint_dtypes = [np.uint8, np.uint16, np.uint32, np.uint64] -# theano tensor types -TheanoVector = tt.TensorType(floatX, (False,)) -TheanoMatrix = tt.TensorType(floatX, (False, False)) -TheanoTensor3 = tt.TensorType(floatX, (False, False, False)) -TensorSharedVariable = theano.tensor.sharedvar.TensorSharedVariable +# pytensor tensor types +PytensorVector = pt.TensorType(floatX, (False,)) +PytensorMatrix = pt.TensorType(floatX, (False, False)) +PytensorTensor3 = pt.TensorType(floatX, (False, False, False)) +TensorSharedVariable = pytensor.tensor.sharedvar.TensorSharedVariable diff --git a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/utils/math.py b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/utils/math.py index caa97432f7d..33a5e6755ea 100644 --- a/src/main/python/org/broadinstitute/hellbender/gcnvkernel/utils/math.py +++ b/src/main/python/org/broadinstitute/hellbender/gcnvkernel/utils/math.py @@ -80,10 +80,10 @@ def logsumexp_double_complement(a: np.ndarray, rel_tol: float = 1e-3) -> float: """ try: assert isinstance(a, np.ndarray) - a = np.asarray(a.copy(), dtype=np.float) + a = np.asarray(a.copy(), dtype=float) except AssertionError: try: - a = np.asarray(a, dtype=np.float) + a = np.asarray(a, dtype=float) except ValueError: raise ValueError("The input argument must be castable to a float ndarray.") assert len(a) > 0 @@ -93,7 +93,7 @@ def logsumexp_double_complement(a: np.ndarray, rel_tol: float = 1e-3) -> float: a[a > 0.] = 0. if len(a) == 1: - return np.asscalar(a) + return a.item() else: a = np.sort(a.flatten())[::-1] x = a[0] diff --git a/src/main/python/org/broadinstitute/hellbender/setup.py b/src/main/python/org/broadinstitute/hellbender/setup.py index d4717d85396..82387193e2a 100644 --- a/src/main/python/org/broadinstitute/hellbender/setup.py +++ b/src/main/python/org/broadinstitute/hellbender/setup.py @@ -1,7 +1,7 @@ from setuptools import setup, find_packages setup(name='gatkpythonpackages', - version='0.1', + version='0.2', description='GATK python packages', author='GATK Team', packages=find_packages(), diff --git a/src/main/python/org/broadinstitute/hellbender/setup_gcnvkernel.py b/src/main/python/org/broadinstitute/hellbender/setup_gcnvkernel.py index 02e70e47255..665812b3652 100644 --- a/src/main/python/org/broadinstitute/hellbender/setup_gcnvkernel.py +++ b/src/main/python/org/broadinstitute/hellbender/setup_gcnvkernel.py @@ -32,9 +32,9 @@ def get_version_string(): description='GATK gCNV computational kernel', long_description=open('gcnvkernel/README.txt').read(), install_requires=[ - "theano == 1.0.4", - "pymc3 == 3.1", - "numpy >= 1.13.1", - "scipy >= 0.19.1", - "tqdm >= 4.15.0" + "pymc == 5.10.0", + "pytensor == 2.18.1", + "numpy == 1.26.2", + "scipy == 1.11.4", + "tqdm == 4.66.1" ]) diff --git a/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/case_denoising_calling.py b/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/case_denoising_calling.py index 20c1cc42965..5fa2ba0b752 100644 --- a/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/case_denoising_calling.py +++ b/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/case_denoising_calling.py @@ -1,12 +1,12 @@ import os import sys -# set theano flags -user_theano_flags = os.environ.get("THEANO_FLAGS") -default_theano_flags = "device=cpu,floatX=float64,optimizer=fast_run,compute_test_value=ignore," + \ - "openmp=true,blas.ldflags=-lmkl_rt,openmp_elemwise_minsize=10" -theano_flags = default_theano_flags + ("" if user_theano_flags is None else "," + user_theano_flags) -os.environ["THEANO_FLAGS"] = theano_flags +# set pytensor flags +user_pytensor_flags = os.environ.get("PYTENSOR_FLAGS") +default_pytensor_flags = "device=cpu,floatX=float64,optimizer=fast_run,compute_test_value=ignore," + \ + "openmp=true,blas__ldflags=-lmkl_rt,openmp_elemwise_minsize=10,exception_verbosity=high" +pytensor_flags = default_pytensor_flags + ("" if user_pytensor_flags is None else "," + user_pytensor_flags) +os.environ["PYTENSOR_FLAGS"] = pytensor_flags import logging import argparse @@ -148,7 +148,7 @@ def update_args_dict_from_saved_model(input_model_path: str, args = parser.parse_args() gcnvkernel.cli_commons.set_logging_config_from_args(args) - logger.info("THEANO_FLAGS environment variable has been set to: {theano_flags}".format(theano_flags=theano_flags)) + logger.info("PYTENSOR_FLAGS environment variable has been set to: {pytensor_flags}".format(pytensor_flags=pytensor_flags)) # check gcnvkernel version in the input model path gcnvkernel.io_commons.check_gcnvkernel_version_from_path(args.input_model_path) diff --git a/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/case_determine_ploidy_and_depth.py b/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/case_determine_ploidy_and_depth.py index 880f0dd4180..da3da6a8c37 100644 --- a/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/case_determine_ploidy_and_depth.py +++ b/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/case_determine_ploidy_and_depth.py @@ -1,11 +1,11 @@ import os -# set theano flags -user_theano_flags = os.environ.get("THEANO_FLAGS") -default_theano_flags = "device=cpu,floatX=float64,optimizer=fast_run,compute_test_value=ignore," + \ - "openmp=true,blas.ldflags=-lmkl_rt,openmp_elemwise_minsize=10" -theano_flags = default_theano_flags + ("" if user_theano_flags is None else "," + user_theano_flags) -os.environ["THEANO_FLAGS"] = theano_flags +# set pytensor flags +user_pytensor_flags = os.environ.get("PYTENSOR_FLAGS") +default_pytensor_flags = "device=cpu,floatX=float64,optimizer=fast_run,compute_test_value=ignore," + \ + "openmp=true,blas__ldflags=-lmkl_rt,openmp_elemwise_minsize=10,exception_verbosity=high" +pytensor_flags = default_pytensor_flags + ("" if user_pytensor_flags is None else "," + user_pytensor_flags) +os.environ["PYTENSOR_FLAGS"] = pytensor_flags import logging import argparse @@ -80,7 +80,7 @@ args = parser.parse_args() gcnvkernel.cli_commons.set_logging_config_from_args(args) - logger.info("THEANO_FLAGS environment variable has been set to: {theano_flags}".format(theano_flags=theano_flags)) + logger.info("PYTENSOR_FLAGS environment variable has been set to: {pytensor_flags}".format(pytensor_flags=pytensor_flags)) # check gcnvkernel version in the input model path gcnvkernel.io_commons.check_gcnvkernel_version_from_path(args.input_model_path) diff --git a/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/cohort_denoising_calling.py b/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/cohort_denoising_calling.py index bc9de7c9bc7..c9bbf1d398d 100644 --- a/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/cohort_denoising_calling.py +++ b/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/cohort_denoising_calling.py @@ -1,11 +1,11 @@ import os -# set theano flags -user_theano_flags = os.environ.get("THEANO_FLAGS") -default_theano_flags = "device=cpu,floatX=float64,optimizer=fast_run,compute_test_value=ignore," + \ - "openmp=true,blas.ldflags=-lmkl_rt,openmp_elemwise_minsize=10" -theano_flags = default_theano_flags + ("" if user_theano_flags is None else "," + user_theano_flags) -os.environ["THEANO_FLAGS"] = theano_flags +# set pytensor flags +user_pytensor_flags = os.environ.get("PYTENSOR_FLAGS") +default_pytensor_flags = "device=cpu,floatX=float64,optimizer=fast_run,compute_test_value=ignore," + \ + "openmp=true,blas__ldflags=-lmkl_rt,openmp_elemwise_minsize=10,exception_verbosity=high" +pytensor_flags = default_pytensor_flags + ("" if user_pytensor_flags is None else "," + user_pytensor_flags) +os.environ["PYTENSOR_FLAGS"] = pytensor_flags import logging import argparse @@ -100,7 +100,7 @@ args = parser.parse_args() gcnvkernel.cli_commons.set_logging_config_from_args(args) - logger.info("THEANO_FLAGS environment variable has been set to: {theano_flags}".format(theano_flags=theano_flags)) + logger.info("PYTENSOR_FLAGS environment variable has been set to: {pytensor_flags}".format(pytensor_flags=pytensor_flags)) # copy the intervals to the model and calls paths # (we do this early to avoid inadvertent cleanup of temporary files) diff --git a/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/cohort_determine_ploidy_and_depth.py b/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/cohort_determine_ploidy_and_depth.py index 913c2ab8f21..57c8b1d4c04 100644 --- a/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/cohort_determine_ploidy_and_depth.py +++ b/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/cohort_determine_ploidy_and_depth.py @@ -1,11 +1,11 @@ import os -# set theano flags -user_theano_flags = os.environ.get("THEANO_FLAGS") -default_theano_flags = "device=cpu,floatX=float64,optimizer=fast_run,compute_test_value=ignore," + \ - "openmp=true,blas.ldflags=-lmkl_rt,openmp_elemwise_minsize=10" -theano_flags = default_theano_flags + ("" if user_theano_flags is None else "," + user_theano_flags) -os.environ["THEANO_FLAGS"] = theano_flags +# set pytensor flags +user_pytensor_flags = os.environ.get("PYTENSOR_FLAGS") +default_pytensor_flags = "device=cpu,floatX=float64,optimizer=fast_run,compute_test_value=ignore," + \ + "openmp=true,blas__ldflags=-lmkl_rt,openmp_elemwise_minsize=10,exception_verbosity=high" +pytensor_flags = default_pytensor_flags + ("" if user_pytensor_flags is None else "," + user_pytensor_flags) +os.environ["PYTENSOR_FLAGS"] = pytensor_flags import logging import argparse @@ -86,7 +86,7 @@ args = parser.parse_args() gcnvkernel.cli_commons.set_logging_config_from_args(args) - logger.info("THEANO_FLAGS environment variable has been set to: {theano_flags}".format(theano_flags=theano_flags)) + logger.info("PYTENSOR_FLAGS environment variable has been set to: {pytensor_flags}".format(pytensor_flags=pytensor_flags)) # copy the intervals and ploidy priors to the model path # (we do this early to avoid inadvertent cleanup of temporary files) diff --git a/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/segment_gcnv_calls.py b/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/segment_gcnv_calls.py index 2345ef83d6d..5fbb293b3ea 100644 --- a/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/segment_gcnv_calls.py +++ b/src/main/resources/org/broadinstitute/hellbender/tools/copynumber/segment_gcnv_calls.py @@ -1,11 +1,11 @@ import os -# set theano flags -user_theano_flags = os.environ.get("THEANO_FLAGS") -default_theano_flags = "device=cpu,floatX=float64,optimizer=fast_run,compute_test_value=ignore," + \ - "openmp=true,blas.ldflags=-lmkl_rt,openmp_elemwise_minsize=10" -theano_flags = default_theano_flags + ("" if user_theano_flags is None else "," + user_theano_flags) -os.environ["THEANO_FLAGS"] = theano_flags +# set pytensor flags +user_pytensor_flags = os.environ.get("PYTENSOR_FLAGS") +default_pytensor_flags = "device=cpu,floatX=float64,optimizer=fast_run,compute_test_value=ignore," + \ + "openmp=true,blas__ldflags=-lmkl_rt,openmp_elemwise_minsize=10,exception_verbosity=high" +pytensor_flags = default_pytensor_flags + ("" if user_pytensor_flags is None else "," + user_pytensor_flags) +os.environ["PYTENSOR_FLAGS"] = pytensor_flags import logging import argparse @@ -73,7 +73,7 @@ args = parser.parse_args() gcnvkernel.cli_commons.set_logging_config_from_args(args) - logger.info("THEANO_FLAGS environment variable has been set to: {theano_flags}".format(theano_flags=theano_flags)) + logger.info("PYTENSOR_FLAGS environment variable has been set to: {pytensor_flags}".format(pytensor_flags=pytensor_flags)) # load read depth and ploidy metadata logger.info("Loading ploidy calls...") diff --git a/src/test/java/org/broadinstitute/hellbender/tools/copynumber/GermlineCNVCallerIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/tools/copynumber/GermlineCNVCallerIntegrationTest.java index 056e40a5f9a..174ecb604f1 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/copynumber/GermlineCNVCallerIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/copynumber/GermlineCNVCallerIntegrationTest.java @@ -46,8 +46,8 @@ public final class GermlineCNVCallerIntegrationTest extends CommandLineProgramTe private static final File SIM_INTERVAL_LIST_SHARD_0_ANNOTATED_FILE = new File(GCNV_SIM_DATA_DIR + "sim_intervals_shard_0.annotated.tsv"); private static final double ALLOWED_DELTA_FOR_DOUBLE_VALUES = 1E-6; - final List MODEL_FILES_TO_COMPARE = Arrays.asList("log_q_tau_tk.tsv", "mu_ard_u_log__.tsv", "mu_psi_t_log__.tsv", - "std_ard_u_log__.tsv", "std_psi_t_log__.tsv", "mu_W_tu.tsv", "mu_log_mean_bias_t.tsv", "std_W_tu.tsv", "std_log_mean_bias_t.tsv"); + final List MODEL_FILES_TO_COMPARE = Arrays.asList("log_q_tau_tk.tsv", "mu_ard_u_interval__.tsv", "mu_psi_t_log__.tsv", + "std_ard_u_interval__.tsv", "std_psi_t_log__.tsv", "mu_W_tu.tsv", "mu_log_mean_bias_t.tsv", "std_W_tu.tsv", "std_log_mean_bias_t.tsv"); final List CALLS_FILES_TO_COMPARE = Arrays.asList("baseline_copy_number_t.tsv", "log_c_emission_tc.tsv", "log_q_c_tc.tsv", "mu_psi_s_log__.tsv", "mu_read_depth_s_log__.tsv", "mu_z_su.tsv", "sample_name.txt", "std_psi_s_log__.tsv", @@ -182,7 +182,7 @@ public void testNumericalAccuracy() { } catch (final IOException ex) { throw new GATKException("Could not remove GermlineCNVCaller tracking files."); } - IntStream.range(1, 20).forEach( + IntStream.range(1, TEST_COUNT_FILES.length).forEach( s -> { try { FileUtils.deleteDirectory(new File(Paths.get(GCNV_TEST_OUTPUT_DIR, outputPrefix + "-calls", "SAMPLE_" + s).toString())); diff --git a/src/test/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNScoreVariantsIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNScoreVariantsIntegrationTest.java index 9ed10874a40..591a9db98e0 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNScoreVariantsIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNScoreVariantsIntegrationTest.java @@ -52,7 +52,7 @@ public void testRequirePythonEnvironment() throws IOException { /** * Run the tool on a small test VCF. */ - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public void testAllDefaultArgs() { final ArgumentsBuilder argsBuilder = new ArgumentsBuilder(); final File tempVcf = createTempFile("tester", ".vcf"); @@ -66,7 +66,7 @@ public void testAllDefaultArgs() { assertInfoFieldsAreClose(tempVcf, expectedVcf, GATKVCFConstants.CNN_1D_KEY); } - @Test(groups = {"python"}, expectedExceptions = PythonScriptExecutorException.class) + @Test(groups = {"python"}, expectedExceptions = PythonScriptExecutorException.class, enabled = false) public void testExceptionDuringAsyncBatch() { final ArgumentsBuilder argsBuilder = new ArgumentsBuilder(); final File tempVcf = createTempFile("tester", ".vcf"); @@ -82,7 +82,7 @@ public void testExceptionDuringAsyncBatch() { runCommandLine(argsBuilder); } - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public void testInferenceArchitecture() { final boolean newExpectations = false; final String expectedVCFName = largeFileTestDir + "VQSR/expected/cnn_1d_chr20_subset_expected.vcf"; @@ -104,7 +104,7 @@ public void testInferenceArchitecture() { } } - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public void testInferenceWeights() { final File tempVcf = createTempFile("tester", ".vcf"); final File expectedVcf = new File(largeFileTestDir + "VQSR/expected/cnn_1d_chr20_subset_expected.vcf"); @@ -119,7 +119,7 @@ public void testInferenceWeights() { assertInfoFieldsAreClose(tempVcf, expectedVcf, GATKVCFConstants.CNN_1D_KEY); } - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public void testInferenceArchitectureAndWeights() { final File tempVcf = createTempFile("tester", ".vcf"); final File expectedVcf = new File(largeFileTestDir + "VQSR/expected/cnn_1d_chr20_subset_expected.vcf"); @@ -135,7 +135,7 @@ public void testInferenceArchitectureAndWeights() { assertInfoFieldsAreClose(tempVcf, expectedVcf, GATKVCFConstants.CNN_1D_KEY); } - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public void testInferenceWithIntervals() { final boolean newExpectations = false; final String expectedVCFName = largeFileTestDir + "VQSR/expected/cnn_1d_contig20_1m_10m_expected.vcf"; @@ -157,7 +157,7 @@ public void testInferenceWithIntervals() { } } - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public void testSmallBatchInference() { final File tempVcf = createTempFile("tester", ".vcf"); final File expectedVcf = new File(largeFileTestDir + "VQSR/expected/cnn_1d_chr20_subset_expected.vcf"); @@ -172,7 +172,7 @@ public void testSmallBatchInference() { assertInfoFieldsAreClose(tempVcf, expectedVcf, GATKVCFConstants.CNN_1D_KEY); } - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public void testOnContigEdge() { final String edgeVcf = toolsTestDir + "walkers/VQSR/variantNearContigEdge.vcf"; final File tempVcf = createTempFile("tester", ".vcf"); @@ -190,7 +190,7 @@ public void testOnContigEdge() { /** * Run the 2D Model on a small test VCF with the resource loaded weights and architecture. */ - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public void testInference2dResourceModel() { // We reset the random number generator at the beginning of each test so that the random down-sampling of reads // by the reservoir down-sampler does not cause slightly different scores. @@ -215,7 +215,7 @@ public void testInference2dResourceModel() { /** * Run the 2D Model on a small test VCF. */ - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public void testInferenceArchitecture2d() { Utils.resetRandomGenerator(); final boolean newExpectations = false; @@ -243,7 +243,7 @@ public void testInferenceArchitecture2d() { } } - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public void testInferenceWeights2d() { Utils.resetRandomGenerator(); TensorType tt = TensorType.read_tensor; @@ -264,7 +264,7 @@ public void testInferenceWeights2d() { assertInfoFieldsAreClose(tempVcf, expectedVcf, GATKVCFConstants.CNN_2D_KEY); } - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public void testInferenceArchitectureAndWeights2d() { Utils.resetRandomGenerator(); TensorType tt = TensorType.read_tensor; @@ -300,7 +300,4 @@ private void assertInfoFieldsAreClose(File actualVcf, File expectedVcf, String i } Assert.assertTrue(!expectedVi.hasNext() && !actualVi.hasNext()); } - - - } diff --git a/src/test/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNVariantPipelineTest.java b/src/test/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNVariantPipelineTest.java index b7b4834d0f1..c5504b9bbc0 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNVariantPipelineTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/walkers/vqsr/CNNVariantPipelineTest.java @@ -17,13 +17,13 @@ public class CNNVariantPipelineTest extends GATKBaseTest { private static File readTensorDir; private static File referenceTensorDir; - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public static void makeTempDirectories() { readTensorDir = createTempDir("readTensorDir"); referenceTensorDir = createTempDir("referenceTensorDir"); } - @Test(groups = {"python"}, dependsOnMethods = {"makeTempDirectories"}) + @Test(groups = {"python"}, dependsOnMethods = {"makeTempDirectories"}, enabled = false) public void testGenerateReferenceTensors() { final ArgumentsBuilder args = new ArgumentsBuilder(); args.addRaw("CNNVariantWriteTensors") @@ -37,7 +37,7 @@ public void testGenerateReferenceTensors() { new Main().instanceMain(args.getArgsArray()); } - @Test(groups = {"python"}, dependsOnMethods = {"makeTempDirectories"}) + @Test(groups = {"python"}, dependsOnMethods = {"makeTempDirectories"}, enabled = false) public void testGenerateReadTensors() { final String bamFile = largeFileTestDir + "VQSR/g94982_b37_chr20_1m_8m_bamout.bam"; final ArgumentsBuilder args = new ArgumentsBuilder(); @@ -55,7 +55,7 @@ public void testGenerateReadTensors() { new Main().instanceMain(args.getArgsArray()); } - @Test(groups = {"python"}, dependsOnMethods = {"testGenerateReferenceTensors"}) + @Test(groups = {"python"}, dependsOnMethods = {"testGenerateReferenceTensors"}, enabled = false) public void testTrainingReferenceModel() { final ArgumentsBuilder args = new ArgumentsBuilder(); args.addRaw("CNNVariantTrain") @@ -69,7 +69,7 @@ public void testTrainingReferenceModel() { new Main().instanceMain(args.getArgsArray()); } - @Test(groups = {"python"}, dependsOnMethods = {"testGenerateReadTensors"}) + @Test(groups = {"python"}, dependsOnMethods = {"testGenerateReadTensors"}, enabled = false) public void testTrainingReadModel() { final ArgumentsBuilder args = new ArgumentsBuilder(); args.addRaw("CNNVariantTrain") @@ -85,7 +85,7 @@ public void testTrainingReadModel() { new Main().instanceMain(args.getArgsArray()); } - @Test(groups = {"python"}) + @Test(groups = {"python"}, enabled = false) public void testTranches() { final String trancheVCF = largeFileTestDir + "VQSR/g94982_b37_chr20_1m_10m.vcf.gz"; final String snpTruthVCF = largeFileTestDir + "VQSR/giab_chr20_1m_10m.vcf.gz"; diff --git a/src/test/java/org/broadinstitute/hellbender/tools/walkers/vqsr/FilterVariantTranchesIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/tools/walkers/vqsr/FilterVariantTranchesIntegrationTest.java index f0f76f11e6e..6587a957dad 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/walkers/vqsr/FilterVariantTranchesIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/walkers/vqsr/FilterVariantTranchesIntegrationTest.java @@ -97,7 +97,7 @@ public Object[][] getGoodResourceCombos() { /** * Run the tool on a small test VCF. */ - @Test(dataProvider = "getFilteringArgs") + @Test(dataProvider = "getFilteringArgs", enabled = false) public void runTrancheFiltering(final List resources, final List extraArgs, final String expectedOutput) throws IOException { final ArgumentsBuilder argsBuilder = new ArgumentsBuilder(); @@ -113,7 +113,7 @@ public void runTrancheFiltering(final List resources, final List spec.executeTest("testTrancheFiltering", this); } - @Test(dataProvider = "getBadResourceCombos", expectedExceptions = UserException.BadInput.class) + @Test(dataProvider = "getBadResourceCombos", expectedExceptions = UserException.BadInput.class, enabled = false) public void runTrancheFilteringOnBadInputs(final String inputVcf, final String resourceVcf) { final ArgumentsBuilder argsBuilder = new ArgumentsBuilder(); argsBuilder.add(StandardArgumentDefinitions.VARIANT_LONG_NAME, inputVcf) @@ -125,7 +125,7 @@ public void runTrancheFilteringOnBadInputs(final String inputVcf, final String r runCommandLine(argsBuilder); } - @Test(dataProvider = "getGoodResourceCombos") + @Test(dataProvider = "getGoodResourceCombos", enabled = false) public void runTrancheFilteringOnGoodInputs(final String inputVcf, final String resourceVcf) { final ArgumentsBuilder argsBuilder = new ArgumentsBuilder(); argsBuilder.add(StandardArgumentDefinitions.VARIANT_LONG_NAME, inputVcf) diff --git a/src/test/java/org/broadinstitute/hellbender/utils/python/PythonEnvironmentIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/utils/python/PythonEnvironmentIntegrationTest.java index b055d8461cd..f7f1baf0f38 100644 --- a/src/test/java/org/broadinstitute/hellbender/utils/python/PythonEnvironmentIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/utils/python/PythonEnvironmentIntegrationTest.java @@ -17,17 +17,16 @@ public Object[][] getDataPackagePresent() { return new Object[][] { // names of base packages that we should be able to import from within the GATK conda environment // NOTE: these must be kept in sync with the versions in gatkcondaenv.yml.template - { "mkl", "2.3.0" }, - { "numpy", "1.17.5" }, - { "theano", "1.0.4" }, - { "tensorflow", "1.15.0" }, - { "scipy", "1.0.0" }, - { "pymc3", "3.1" }, - { "keras", "2.2.4" }, - { "h5py", "2.10.0" }, - { "sklearn", "0.23.1" }, - { "matplotlib", "3.2.1" }, - { "pandas", "1.0.3" }, + { "mkl", "2.4.0" }, + { "numpy", "1.26.2" }, + { "pytensor", "2.18.1" }, + { "torch", "2.1.0.post100" }, + { "scipy", "1.11.4" }, + { "pymc", "5.10.0" }, + { "h5py", "3.10.0" }, + { "sklearn", "1.3.2" }, + { "matplotlib", "3.8.2" }, + { "pandas", "2.1.3" }, { "argparse", null }, { "gcnvkernel", null }, @@ -43,9 +42,9 @@ public Object[][] getDataPackagePresent() { @DataProvider(name="dataPackageMKLEnabled") public Object[][] getDataPackageMKLEnabled() { return new Object[][] { - { "numpy", "numpy.__config__.get_info('blas_mkl_info') != {} and numpy.__config__.get_info('lapack_mkl_info') != {}" }, - { "theano", "'-lmkl_rt' in theano.config.blas.ldflags" }, - { "tensorflow", "tensorflow.pywrap_tensorflow.IsMklEnabled()" } + // { "numpy", "numpy.__config__.get_info('blas_mkl_info') != {} and numpy.__config__.get_info('lapack_mkl_info') != {}" }, TODO this check was removed after the update to conda-forge numpy 1.26.2, see https://github.com/broadinstitute/gatk/pull/8561 + { "pytensor", "'-lmkl_rt' in pytensor.config.blas__ldflags" }, + { "torch", "'BLAS_INFO=mkl' in torch.__config__.show() and 'USE_MKL=ON' in torch.__config__.show()" } }; } diff --git a/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-contig-ploidy-model.tar.gz b/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-contig-ploidy-model.tar.gz index 3a899addca0..9bd909d1365 100644 --- a/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-contig-ploidy-model.tar.gz +++ b/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-contig-ploidy-model.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a667caea27776a91ae612f57769fd79fde2850fe7d98ce9903c787bccbad1a1e -size 1221 +oid sha256:6f7ca34ae9404a25deaaab2d52861f2f8d5ac5f3ad9091217eea13617b6e4b05 +size 1220 diff --git a/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-0.tar.gz b/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-0.tar.gz deleted file mode 100644 index a2817af5f8f..00000000000 --- a/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dcad7edb5752c9012f3d69b932c09bf6c9b552e3785a8b1c1256aa65ecb38de0 -size 4995 diff --git a/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-1.tar.gz b/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-1.tar.gz deleted file mode 100644 index 2307cb16fb8..00000000000 --- a/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:74fdf99dbcc233878045812ebc891ce2923f08a9ab87daec1fa483b8afdb02ea -size 5164 diff --git a/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-shard-0.tar.gz b/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-shard-0.tar.gz new file mode 100644 index 00000000000..fd89db73910 --- /dev/null +++ b/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-shard-0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfce6dc17d025d807d70abf175a114152199ee567cce2b961f8a004e5c252abd +size 5484 diff --git a/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-shard-1.tar.gz b/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-shard-1.tar.gz new file mode 100644 index 00000000000..b4c7ca1232b --- /dev/null +++ b/src/test/resources/large/cnv_germline_workflows_test_files/wes-do-gc-gcnv-model-shard-1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46850623e7c6a29464b395c9a03f23c9882eef80bd4febbfa94ca405a4d743e9 +size 5679 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.annot.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.annot.hdf5 index 9f4e9f393ef..4a3832315c2 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.annot.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.annot.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:92a91bb19f59cb602656805cd7efb2bb302022686fe21aef03a51e7ea3c0aef0 +oid sha256:37b0fba04da7bd6b31603589cbb3a024a0e8ff015afd3ae9f4224968aadf8947 size 736656 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.scores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.scores.hdf5 index c9eee51c9c5..b6c56f8928e 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.scores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.scores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5f99391792c228f5f34bb83dc581d521e03e06f442140b8f3af3066dcb9592ce +oid sha256:ef9dc857ae0f5de4400392510cd29fdfb021b652452107acc8c7de58ca2a995c size 35136 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.vcf.idx b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.vcf.idx index 4d0b41d5596..02a75b8d1d0 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.vcf.idx +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.vcf.idx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2eefcac29c9ccf8760a6d3a9e55cb863c9e4ea804a1a78ba38db4c448cb41b20 +oid sha256:3b16c304094874edc697ceb1b1670964b59cd368cac14568f41b27d31c9a13e1 size 119223 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.annot.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.annot.hdf5 index 08faea04b52..00abb8653c2 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.annot.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.annot.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4510202dd1e097698b2f862fafa8d076d2d8e11cf5908bf3883fe6f618d69fa7 +oid sha256:6d6766cbc14bc46decb4e9988b4673c496eeb36e459518b63803ebf67460947e size 822288 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.scores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.scores.hdf5 index 3d0cb431766..ee86e9be9ea 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.scores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.scores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0bcf784e97396a9b14dc65912d043ad011dbe1c9c8d70e9eea1b45502eb7d7d +oid sha256:6723bed0b9a12cb2f1a65f24fb935394c3fb9fd61241cb851ba661b46058059f size 38440 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.vcf.idx b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.vcf.idx index c1a130a9f64..710fe3015b3 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.vcf.idx +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.vcf.idx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eb24eed9c59f80aae758dc2fb89130c782fbc07e14220da57d46936611d8c390 +oid sha256:ff8b6c63699ba61594253fbf6eb4be3c6bb14cbc8840756c75663ece79702519 size 119228 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.annot.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.annot.hdf5 index 711ae0e8e75..7f83d120f00 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.annot.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.annot.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dcf123ed80e8c503ad4d2d1364be63f22d82379b32eb0c4f563f08cb4abbb2df +oid sha256:68f65b0e44c244b6c06009410ae980d5621f7d42ef7c2d1a88e8e24fefca826e size 766368 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.scores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.scores.hdf5 index ca29220bbcc..e97d52d13bf 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.scores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.scores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d8467b31a8916052b511adf002a877b36a0b5fb0e64d035022b337beabd437da +oid sha256:fcc5549758e3614c782a8c5d05a0819a075a0a9dd31e1127934f8f28b05d8dc3 size 34960 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.vcf.idx b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.vcf.idx index e19112ffa42..40970b29e77 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.vcf.idx +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snp.vcf.idx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bdbec4dc5e2c9263da4b217e33fd7fbf4dac34f9f42821d3d8c69136b9131f62 +oid sha256:8fb32c2bc02ae5a7aa49cf2dbbbc5c538f856196424c43bf5a295f1f9b97354c size 119226 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.annot.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.annot.hdf5 index bf62479462f..67c8449519f 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.annot.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.annot.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6539c887b88be6d4b2ed0b03866d2d20054c0cbb24f777d27cc043bcbcc69055 +oid sha256:8d9f97c92a9834e1681ea33f83f07a73c34e449dfd24a39e9fec2d5215cbfb69 size 829672 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.scores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.scores.hdf5 index a65701f8e94..2af89abdafb 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.scores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.scores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b19295ce01f6d6a84b48c88e8a53c23d65036b34f04a1ac7f13760b803813aa4 +oid sha256:c802cfcbd764a97ec9f4b9a6013a6d51170c8cf692991744a71361a77b8fae02 size 37720 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.vcf.idx b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.vcf.idx index 7fbb1578345..bcdc61ba099 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.vcf.idx +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/score/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.score.snpIndel.vcf.idx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e95e34b18a698a7d4db138297b3f13c427d8b371d1c0e94f289f05ae240f438b +oid sha256:0f1d92bbf0237c9605ccda22f7424b5b343bf68448ef57ba7c30c7e3fe870799 size 119231 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IF.snp.calibrationScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IF.snp.calibrationScores.hdf5 index 87a0e1fb673..d238c241641 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IF.snp.calibrationScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IF.snp.calibrationScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a69d8be00a405393e7225de43dec5062960a1479d072147ca5567d147cbfcc0e +oid sha256:a01e776f02ede2668fc1017f674f9097125056e56919d1712bfddae741b5e51a size 4960 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IF.snp.scorer.pkl b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IF.snp.scorer.pkl index 878c70e32cf..3a3f26b4dce 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IF.snp.scorer.pkl +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IF.snp.scorer.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:53208c713c15b00219ddd4e58bad09760aa69b3dc1f461b5dfc1c00dafcb60f2 -size 506090 +oid sha256:fa8a56dcfe22903092b70b71dd6be0f040ab7c88da2ce0f376c8c23696b483aa +size 675761 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IF.snp.trainingScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IF.snp.trainingScores.hdf5 index 075fc97dc84..9c13e97802f 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IF.snp.trainingScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IF.snp.trainingScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3fe601531fd5550641d7d8f067317974535b6c4b13e9b87395c8358e7c21f727 +oid sha256:da28e1eabfcd2bf4c2e383bf53790c2b225a4b8c778f6189715f7eb82263f01a size 5984 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 index 508d6e5e8ca..28453b4fa00 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9aba848f3b17a0fdf20b77fd2130ce5e046ee414fafaf6f1932f6942d3bb5154 +oid sha256:df743271a2edca9544a12a52f28ead02b988e6bebdc162eb468d7d8ccfbe058e size 4960 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.scorer.pkl b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.scorer.pkl index 348ebedf945..53a2f5761ae 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.scorer.pkl +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.scorer.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:be6d3e97dbe88caeead043c0264b7345589da11bf3e3842693bec9fccac9f802 -size 514532 +oid sha256:ec00bc66c288fec259d85e7f5da18708dd446fbd56505d60714a98a4cd205d46 +size 687359 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 index b5928ae8cc8..ec2891bab13 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:553ceb53a7532b22325d190e1abc5811c4f35ac9cccca045749071387bdbd591 +oid sha256:21727d69c6f64539bc18bf6d57a3ce88d8ce0893f771732215dc16c10554d49c size 5984 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.calibrationScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.calibrationScores.hdf5 index 1b4921f90a7..3123ce04acc 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.calibrationScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.calibrationScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fda610215d821f1d4e293ccefe6a686a27c93d0e58aadedc707bb67e0a444ae7 +oid sha256:453661295a8dd13c001f16effe8f938e7656cf2d5ef1a57a695794e1d79bcacd size 2664 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.scorer.pkl b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.scorer.pkl index 91f3b632ebb..b839ed75aea 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.scorer.pkl +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.scorer.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c58bf9278b1a9c70d60a1684dbd69fd6e974721e353fe7013a4001ac5bedd119 -size 235813 +oid sha256:e7e282f17e675ea532825867dd4f92ff309e8937a0075ed9030b0670a00a8d1a +size 303759 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.trainingScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.trainingScores.hdf5 index c2f5300398b..437120e1021 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.trainingScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.trainingScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eaf9745f9dd6760f97071f039266cfe92f7b23a6a842b074a0eb792d703c1e95 +oid sha256:5bbc458f53ea3c025bb2de6d27598d0c978a3e9c967b06dbc4e2e4aa9f609f6a size 2880 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.calibrationScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.calibrationScores.hdf5 index 8451c5af1ce..d238c241641 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.calibrationScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.calibrationScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0aef3eaf4b5c7a7b4d989bf9e301989b09f4166c44720c1e262175e0a1666e57 +oid sha256:a01e776f02ede2668fc1017f674f9097125056e56919d1712bfddae741b5e51a size 4960 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.scorer.pkl b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.scorer.pkl index 3752daac4ea..80e85a87fc4 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.scorer.pkl +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.scorer.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ee5b22167a12ed4442b68e4a76c7cf8b7376fdad497477fc8841612ac1c42f0c -size 506091 +oid sha256:cbfa8556e9d620183ab6f1dfc08d0857674ab9a9079160aeef911146d7164d42 +size 675761 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.trainingScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.trainingScores.hdf5 index edee01df34a..9c13e97802f 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.trainingScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.trainingScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5bed814a55db262a22feaabcb6f5d146ce6d50c0d185624527c8a93c04a4e5d3 +oid sha256:da28e1eabfcd2bf4c2e383bf53790c2b225a4b8c778f6189715f7eb82263f01a size 5984 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.calibrationScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.calibrationScores.hdf5 index acb8b7665b6..b379907e52d 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.calibrationScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.calibrationScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b5c0c633bc90d621dea90fcddbc376dacb5158ea4c8d042fa2f032bc298fcea4 +oid sha256:bc812df63183ff595509abd7b22222138183b7d7bce870c8af1064cb019dd959 size 2664 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.scorer.pkl b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.scorer.pkl index 6b3104e110c..4de03c35470 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.scorer.pkl +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.scorer.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e80bc19607efaa536f9dee44ef5cca3ce2554a9d6c9b498694bd9de73f8da40d -size 240054 +oid sha256:5a8417840107f34dea2a064bb7c82315db1380b246149e4d20ce3d28fd27589a +size 309621 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.trainingScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.trainingScores.hdf5 index dc1d7ca0939..ffd315000c2 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.trainingScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.trainingScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b1d33427231297c88a256a360f8ad19f83955fa243df86688eaeff2367117f8a +oid sha256:243d1e7a111ffe5fe063aadf103377daca4692252580d485fde29f677b72412b size 2880 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 index 13fed2b64c1..28453b4fa00 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:34f0ea2371ffb2a7d639a264882d8498bc0825a2a93a7a6f9eb97c86b88892d2 +oid sha256:df743271a2edca9544a12a52f28ead02b988e6bebdc162eb468d7d8ccfbe058e size 4960 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.scorer.pkl b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.scorer.pkl index 348ebedf945..53a2f5761ae 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.scorer.pkl +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.scorer.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:be6d3e97dbe88caeead043c0264b7345589da11bf3e3842693bec9fccac9f802 -size 514532 +oid sha256:ec00bc66c288fec259d85e7f5da18708dd446fbd56505d60714a98a4cd205d46 +size 687359 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 index afde6beac8f..ec2891bab13 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.AS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ba41d40b3e1297b46bfe0ebb96e54048ba8e4dcdd4f021b496d7903e519bfa4f +oid sha256:21727d69c6f64539bc18bf6d57a3ce88d8ce0893f771732215dc16c10554d49c size 5984 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IF.snp.calibrationScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IF.snp.calibrationScores.hdf5 index b8c18492487..f8b7270d54c 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IF.snp.calibrationScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IF.snp.calibrationScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4f0b956ad8c517d885254ba6f392713e098a92aeeccc699c5a17f53c1504f119 +oid sha256:9b327cce53e5f77a5f13bde8b292ab4dec10c99a687b2ae6dffc9bbaae0bd9ff size 4960 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IF.snp.scorer.pkl b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IF.snp.scorer.pkl index a9a9086bb5e..cf07d149b2b 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IF.snp.scorer.pkl +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IF.snp.scorer.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0cf2f338bb130d899eca8ceab17339f6f166958642101de301fb8458b11131a1 -size 556675 +oid sha256:70a9d18db20e99e59bd558d7ff97e3412b4559c3431f3a4a214b408e4e6d73ad +size 745026 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IF.snp.trainingScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IF.snp.trainingScores.hdf5 index 486c29310ee..34b5719a3a8 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IF.snp.trainingScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IF.snp.trainingScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:537cb3879bde1388c6eca2035682a0c7b771ce790b523649e65f167a23eed255 +oid sha256:4e62d9033c86235989dbc8620baac10f26ede0de3e55c7db4f775542d052cdd5 size 5992 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 index 8fe0c3fa585..98b043e0465 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:25b24f7a4b85ad16f63043285fb31cd580e3498629bab0ef257a98d7ec318471 +oid sha256:679265d663977578c529d19f08f8115c766a3eab8d364110be1d86f11554b7e7 size 4960 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.scorer.pkl b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.scorer.pkl index ac1fe518303..d545e48f71e 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.scorer.pkl +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.scorer.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0510d85a2680139fbfb2d3c8f2d5fed8977af834bf82d09d9090a06fa8d454f4 -size 525312 +oid sha256:b1c6222a7428aabca3ed19f2cf910e0d4e62a167e1c28c500fa45ef19d90cc39 +size 701888 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 index 075038efb0f..4e6f027b951 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snp.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:742c4374a393e2f86ad836001576d77210dc62cdf11cf8748abffe4399c02d0f +oid sha256:75f6f2d806c53feeabafb16ef9670815e55abea6d6027244ca1807e83af11522 size 5992 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.calibrationScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.calibrationScores.hdf5 index 9937d988ad3..65319af8841 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.calibrationScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.calibrationScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9c9b6a3bf6461653330c84b6ed491fbaf065e87c00b707409009a48e55dc3546 +oid sha256:1789f94dac3fe6057ec46566a97fc908edba411c2c7616faf70d0fdba97d56c2 size 2664 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.scorer.pkl b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.scorer.pkl index 7ab5b7071f4..3cf5358e1c7 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.scorer.pkl +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.scorer.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb95c34fdfa9bb4126d27355e39708de5d273694ce2edf639a02c324608bfdd2 -size 259163 +oid sha256:2051438864088e800965fce0ef1fa08a0cd8d161714a43c9df21dedd69bad2d4 +size 335626 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.trainingScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.trainingScores.hdf5 index 61cd73704ad..00ba9b4c77d 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.trainingScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.indel.trainingScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8b1c27c9bb2587fed510eb347fe53332828c2ee0f1cc6f22f8e259d275c5f877 +oid sha256:1188176ff609cbf239c335cb4bc12fc452d6260dcaf4a4c53e2e5747b8d16906 size 2880 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.calibrationScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.calibrationScores.hdf5 index 91c0e50cbd1..f8b7270d54c 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.calibrationScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.calibrationScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bfb11237cffa3309f53869996111de5be91efacc8b210d43101535d90d6195a4 +oid sha256:9b327cce53e5f77a5f13bde8b292ab4dec10c99a687b2ae6dffc9bbaae0bd9ff size 4960 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.scorer.pkl b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.scorer.pkl index 786b299758d..bd0aed5c37d 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.scorer.pkl +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.scorer.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9113bec7467a7b597e6af65108fd19f2260510fc0174fa5bf071ca1b837e0b28 -size 556675 +oid sha256:6698b5ef71faec887d695db160b4e4ec3dc39d8253643bc25b20cec290dae2eb +size 745026 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.trainingScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.trainingScores.hdf5 index 7f5f3e9342d..34b5719a3a8 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.trainingScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IF.snp.trainingScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:21a219096d12b0122e0e7dc7962d26911289d2e17377d606bb504cb3bf87daa6 +oid sha256:4e62d9033c86235989dbc8620baac10f26ede0de3e55c7db4f775542d052cdd5 size 5992 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.calibrationScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.calibrationScores.hdf5 index 8a91db1f5b2..2d1285760f0 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.calibrationScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.calibrationScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2e3fc94a375bde9284a219c1c2eb2b204731af0c4fce15426f7903f6fed43ecb +oid sha256:e91d3841214988d91364471b27024a495b662515f5f9c20a94e794f85ffacee0 size 2664 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.scorer.pkl b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.scorer.pkl index 1142e1f4599..52275e5b82e 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.scorer.pkl +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.scorer.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:426cec56e16eec10f47c824797c035772d1ebf3cf4f73972e8a541deca622cd3 -size 248813 +oid sha256:27f65e711318ed5c45cb72eb709476a9837ce0087fb1f3c354819d3eebe6ac19 +size 321415 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.trainingScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.trainingScores.hdf5 index e0fdf55eb20..8a74a57221f 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.trainingScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.indel.trainingScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9ae00383d5302dfb129e6e7c0c61cb115e74fade18b0b62bba6284f876fa8277 +oid sha256:9335e4be88647547f4772bcc25aebe75893680136ad08943cba267dd3f517500 size 2880 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 index 1250aeddd2a..98b043e0465 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.calibrationScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5a2fdb209c8814f63837d30bca8883ed79063d66fe22516f4dc6cb54542d743e +oid sha256:679265d663977578c529d19f08f8115c766a3eab8d364110be1d86f11554b7e7 size 4960 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.scorer.pkl b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.scorer.pkl index ac1fe518303..d545e48f71e 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.scorer.pkl +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.scorer.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0510d85a2680139fbfb2d3c8f2d5fed8977af834bf82d09d9090a06fa8d454f4 -size 525312 +oid sha256:b1c6222a7428aabca3ed19f2cf910e0d4e62a167e1c28c500fa45ef19d90cc39 +size 701888 diff --git a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 index 4f95113bc2e..4e6f027b951 100644 --- a/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 +++ b/src/test/resources/large/org/broadinstitute/hellbender/tools/walkers/vqsr/scalable/train/expected/extract.nonAS.snpIndel.posUn.train.snpIndel.posOnly.IFDifferentSeed.snp.trainingScores.hdf5 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9c063a077702f5979525286ff8bda09d9f6133e251babf27d0ccb9e384578fc0 +oid sha256:75f6f2d806c53feeabafb16ef9670815e55abea6d6027244ca1807e83af11522 size 5992 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/log_c_emission_tc.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/log_c_emission_tc.tsv index 6d0a4b2dbd1..bff50ac67f6 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/log_c_emission_tc.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/log_c_emission_tc.tsv @@ -1,172 +1,172 @@ @RG ID:GATKCopyNumber SM:SAMPLE_000 COPY_NUMBER_0 COPY_NUMBER_1 COPY_NUMBER_2 COPY_NUMBER_3 COPY_NUMBER_4 COPY_NUMBER_5 --1753.5461346310458 -14.002102362911492 -6.661214461620781 -9.22572443891049 -13.018365988253707 -16.799760011613053 --4307.093314452008 -18.93608098865231 -7.683831406995849 -8.9388221425687 -12.041989681475645 -15.38320033136914 --1648.8939586496067 -13.273835774530202 -6.898022545544388 -9.815837323017167 -13.801263765974248 -17.70808467344778 --4.139978030990118 -2.433616450161774 -3.25608871769688 -4.804582837555967 -6.592080385089297 -8.439120323200086 --1264.9424306601022 -17.297505123111158 -6.360731444400441 -7.780346328980739 -11.084469773103503 -14.633550743040626 --715.907545678598 -12.676919191788794 -5.8330384554061325 -8.499262958151792 -12.401915563241724 -16.302184852970115 --399.6157242028812 -10.188142082085019 -5.508060087724646 -8.67532738058543 -12.778896606892422 -16.78297373766895 --2466.0703880412266 -14.010228360904406 -7.072917714005955 -10.068904954259144 -14.205586769651969 -18.266715983433667 --3017.21984464337 -13.471292862388342 -7.6467839072178005 -9.387031254120764 -12.072878021979541 -14.768455652418735 --1374.3081553273744 -13.030200717645247 -6.586492083323854 -9.224587454467231 -12.951536996153758 -16.63396007292994 --11.397650451991801 -4.795590578259655 -3.1121394691904194 -3.053521872434517 -3.693371471390378 -4.6657579944047 --248.85668593582093 -11.578800110272272 -4.914673995218005 -6.641665774188131 -9.75541350988286 -13.031476463952519 --1692.0082989336197 -17.179391246699907 -6.742519178841837 -7.939603046217419 -10.897361346486814 -14.090136947928158 --49.56886336110059 -6.520709508757218 -3.808183609040695 -5.450906631139326 -8.045306715998588 -10.807363003130725 --13.443474615557273 -4.040999831344061 -2.9684466320554384 -3.921105208427074 -5.562747115924273 -7.447735298634611 --7946.272709046384 -16.352296812994148 -8.221793034786229 -10.488220114382147 -14.061721992704769 -17.660342110622373 --34.16690839490821 -5.059165959895135 -3.686579116321217 -5.758652376277507 -8.58055595692797 -11.503868051955092 --429.56424682297234 -13.242410211538164 -5.4303736791213915 -7.057352871494289 -10.162052551823813 -13.43333058851118 --243.19885346695688 -12.044962172351426 -5.074634148311404 -6.350800618085466 -9.048162470979799 -11.956066056740404 --120.89072601494686 -10.134370000882663 -4.7396849008458695 -5.525349633789082 -7.517162419752269 -9.741555084595602 --8183.886776834756 -15.551066031701046 -8.295018354124858 -10.948055054410096 -14.760295778443584 -18.529030520910375 --1280.3053909785176 -14.531313821188784 -6.459833813524116 -8.827779662213374 -12.578686313396735 -16.375029363284334 --718.1806427942174 -14.38109584109433 -5.7815402104086555 -7.610105525022204 -10.980109066318597 -14.494850406288794 --134.67233336663122 -8.763579856016367 -4.37965839650135 -6.6888448079518525 -10.11732991179735 -13.628940833458342 --440.6447699821041 -12.406379275437533 -5.459404401633573 -7.45027877732901 -10.755586816780127 -14.154466555870897 --193.75392750853825 -11.93441363325794 -4.7257729516751645 -6.0633334994180546 -8.974652469923374 -12.149329990152967 --54.5426522920292 -6.880879679048433 -3.988954165436169 -5.384090476180344 -7.678093724782629 -10.124529761112546 --9.791486564931946 -3.383398803339745 -2.9024620993785506 -3.9740890555151216 -5.5855525624031594 -7.3859015745831575 --172.00193154435703 -8.317742487870438 -4.719706495450823 -7.479028964472074 -11.11774971584628 -14.71706239969517 --979.8497695364888 -16.753266110932195 -6.396801447484706 -7.388575920643068 -10.182057893251452 -13.249559940461488 --260.5568338219751 -13.425915568687444 -5.067978119455677 -6.341570903835514 -9.346839738171942 -12.64329020589586 --1377.9455339536257 -12.21993414106339 -6.7204669126708225 -9.820042632823087 -13.847643405955857 -17.751770127792383 --1525.74205295381 -14.08475991629265 -6.6351894931686095 -9.00953631819017 -12.63939710560296 -16.284218031536916 --609.9660766210163 -12.211890593699527 -5.7574413044564015 -8.160648382082897 -11.739139924948212 -15.330206133980777 --56.62064675093941 -7.74277416194751 -3.862043896643735 -5.0451274733565015 -7.424513453202992 -10.081466931462362 --838.7214012710758 -13.089584334561573 -6.063233765909964 -8.621465170728099 -12.424382082160376 -16.232991111265463 --1169.5274359533842 -11.283304379180429 -6.545892462669272 -9.822069406403102 -13.904776948758919 -17.82309754917811 --771.02106988838 -19.331775845071203 -6.208298041667225 -6.509512224067472 -9.157168856680142 -12.273098937598458 --530.1542512354441 -13.200533638556344 -5.6293808157877 -7.597208227193013 -10.967351785883665 -14.4473093672711 --718.4344469464135 -13.282551685479088 -5.870541093833005 -8.07903014515755 -11.615679907095743 -15.213500681315699 --130.16985138764738 -7.401829555661393 -4.703508131337852 -7.686671869361258 -11.444768908849962 -15.133555248165223 --105.07708078770375 -8.058315797328993 -4.339733760976685 -6.544508569968519 -9.77533591684689 -13.089051200070122 --1304.9624603653792 -13.710396482260018 -6.359479054624179 -9.084902395108509 -13.066859202430688 -17.03202848804159 --11194.533547287705 -15.145518491883413 -8.725402733806334 -11.111264279618455 -14.51737914669133 -17.87914456795235 --262.9164614104526 -13.662898887096997 -5.142451661456333 -5.978973830889295 -8.529945104547991 -11.401566197087531 --4409.0900474137925 -17.131681429777643 -7.7245724678823615 -9.19968941077515 -12.211812414759303 -15.377213296235606 --77.58546399184726 -6.268101161029064 -4.362855338229959 -7.082661515115807 -10.507481344361953 -13.897733661774112 --306.03849956965917 -13.172916238322308 -4.9641369444504635 -6.529387847644861 -9.752232943419628 -13.209563997763077 --984.8343406179938 -13.625787069656084 -6.115948399652188 -8.666344945785251 -12.529501782531609 -16.41025324536433 --536.0469495637408 -16.056498062836834 -5.824685390506863 -6.561688281544151 -9.171323549818833 -12.113240663041822 --235.6025735279042 -16.4906810735137 -5.423994641729124 -5.250132250672548 -7.353793200879361 -10.025845291331862 --137.42102230270564 -14.416349894854411 -5.0714281630663915 -4.719006230116817 -6.463009022286589 -8.793391904256415 --451.4617802761611 -9.874102536866951 -5.816187187451439 -8.315203969393275 -11.570045130626697 -14.740452032217659 --2678.8509986574395 -16.39333413762891 -7.041577214880032 -9.060690816031826 -12.62702567126832 -16.29754663949854 --123.19443554269111 -11.758216659370301 -4.493477855390295 -5.137285802205433 -7.502079850671438 -10.272154450826557 --1039.688742534717 -12.609570591763314 -6.254829559278049 -9.22885611273282 -13.30698205226979 -17.315582450266128 --2020.9293966599375 -16.906111710672306 -7.002418061426561 -8.426922599521353 -11.50855076489994 -14.77909544648833 --4158.356979499613 -15.830372526207919 -7.495821941826632 -10.13964266496219 -14.13842121414911 -18.13641447983725 --738.9253275620852 -13.1998431207824 -5.805989897102207 -8.14216078293547 -11.8021194097607 -15.509280831791681 --1264.0126515833967 -15.15232750164302 -6.2806395112730655 -8.468974363437994 -12.182066378473014 -15.988437433349539 --8.14491798600215 -3.2625154073877107 -2.8315818146234237 -3.70121659623704 -5.060858210415789 -6.611450709283604 --84.36288943812188 -6.631808068664919 -4.336630496688006 -6.823227012371399 -10.053900330447817 -13.272858992243897 --1328.1209253465513 -12.999021781382496 -6.438186882151458 -9.24486660746259 -13.165905415717305 -17.03171012436789 --131.0518074484946 -9.398671178807255 -4.343842973812643 -6.244154626722244 -9.399780327513753 -12.713449646955327 --653.2913430139596 -17.712850736630173 -6.11750266902585 -6.6542573870374495 -9.28465163004989 -12.30993837509369 --181.84141070217026 -6.383878314694139 -5.623628487110688 -9.492903147957692 -13.664067627336689 -17.54473546294349 --869.8047667579615 -11.170955118329978 -6.233547354927255 -9.233135956924666 -13.096000219964411 -16.837907878402003 --72.28220421350277 -6.6955756445342445 -4.104976117607016 -6.388132629456705 -9.536616649979784 -12.74120702913778 --499.75099207039136 -7.318046247351366 -6.919144557897504 -11.716335299605333 -16.637962152007287 -21.114796534966562 --534.4296637576581 -11.471111070169858 -5.655880161707344 -7.986166294102026 -11.384087333436826 -14.780284857566205 --7017.244960631247 -12.3110896313297 -8.711017311970242 -12.74354941743862 -17.322651801969446 -21.597165294482746 --82.9711878820225 -7.872487523135751 -4.028241585606157 -5.901851530440168 -8.89296756285534 -12.042556061769183 --21.352252286094476 -4.463999443115149 -3.3520938454035036 -4.904018680879172 -7.158886158256956 -9.574599420022118 --10020.813124110644 -24.170625301581786 -8.988713908962744 -9.027009296555525 -11.550820702895969 -14.558754420767835 --23.807848609232607 -5.009823287350953 -3.270766467034403 -4.5503744311379375 -6.682082268813846 -9.049197513576079 --838.9217293751431 -12.21941353323065 -6.03319634547508 -9.0074891675498 -13.08003024806109 -17.086133898515946 --235.44256005653364 -9.816079697528052 -4.983834467269636 -7.584009248038038 -11.246276002124084 -14.914547029795777 --502.8772018905753 -10.425234768156855 -5.954114296540156 -8.104536364268512 -11.065260302968447 -13.984449412792262 --4406.564629049058 -18.894930841935302 -7.596040672298198 -9.114495621359712 -12.48758833785547 -16.073368767568994 --2.176371827767177 -2.11310898504858 -2.3159876587746573 -2.676871424869477 -3.1371874301716445 -3.661947825805745 --12.263546771076173 -4.055690161827837 -2.981591416602281 -3.7238492756164447 -5.10450595093846 -6.721580262337271 --234.50474033510775 -14.720389000622955 -5.2164795546218174 -5.496931337844537 -7.714822221989547 -10.368163462019634 --15847.202004754616 -14.246340457843386 -9.318703442332247 -11.921399663119661 -15.29539943902423 -18.553630841853998 --514.2375617084374 -10.702107097138404 -5.792948057583671 -8.387878485046851 -11.891735431368298 -15.334260160622524 --97.30065954255383 -10.31428084674791 -4.203249569868775 -5.08542765066426 -7.52119833803655 -10.316969767906878 --371.4385046656121 -12.062872815864193 -5.368559480844241 -6.991938510486377 -9.890496591093893 -12.912413225633724 --242.64208428465332 -9.978914481037387 -4.832178452250084 -7.312514364628845 -10.90451394222635 -14.523474030463898 --691.0178529366492 -15.492983123880883 -5.818751736973745 -7.106743881946003 -10.130541601930926 -13.395031720877522 --1142.95436836196 -13.409132662347533 -6.494986670773244 -8.113224019300628 -10.904230778279313 -13.770665740511491 --73.66113767900721 -7.648047725740031 -3.994686920993554 -5.709494036680216 -8.508328058336787 -11.476856988131514 --344.1563195814525 -10.976513095284492 -5.36891674752618 -7.35322738604134 -10.425018835922023 -13.545418903174271 --1940.0543604551326 -13.150323599641679 -6.9966036060609405 -9.808756785085412 -13.638662435452677 -17.388286023182303 --344.13184925765324 -16.29964425888986 -5.482378088224364 -5.8653442533766835 -8.353184076565375 -11.285343759475026 --208.98662141130964 -8.613489851507182 -5.02615350515519 -8.12414632537582 -12.076774361776078 -15.944748129724351 --169.3804804851158 -10.481242939587663 -4.585652193187547 -6.366361108737171 -9.498113793239291 -12.804756243619877 --284.2749742174457 -8.014038219806883 -5.689893965426835 -9.123694880769637 -13.083114238453712 -16.83123323143309 --59.90154426081305 -6.135042433399541 -4.073291818744977 -6.514277862748699 -9.774802618567545 -13.083263080042395 --122.87244363372167 -9.380452672638432 -4.455532391484643 -6.178914860127898 -9.124995204474136 -12.238458952994362 --1875.5360153871447 -13.65046089509249 -7.11460952144861 -8.862068309612377 -11.690551347628293 -14.558017606865088 --316.6949886159085 -10.953270530127131 -5.053902153873578 -7.646438426276211 -11.453161588664067 -15.289922420328885 --12.20884845632643 -4.346731253595353 -2.9896554691900783 -3.427425344493879 -4.539758385515543 -5.927211743678619 --90.77277107271001 -9.435578110107905 -4.110941456238356 -5.352133295792292 -8.011974226140447 -10.969307699964974 --326.6184061467735 -13.710352986252275 -5.192885010736608 -6.491179643352972 -9.472555013581369 -12.71414801104444 --12.334835043070193 -3.233571875833494 -3.520198496331626 -5.492635203638024 -7.873539009555466 -10.30295086454394 --19429.57313809658 -13.65633651189397 -9.942776251142053 -12.876425486714137 -16.378601486716562 -19.691309920394122 --257.9538892563197 -9.809732366523688 -5.0507320891372895 -7.623730304447864 -11.212398722933074 -14.792384529990734 --251.45282531052663 -10.755644139274356 -4.837928001428074 -7.111392006180326 -10.64677766484092 -14.264722120304048 --214.19216250422303 -12.068840548674476 -5.030620930791031 -6.167946286406088 -8.771967694357118 -11.618201501185968 --525.8956296095307 -12.305724841363846 -5.786502222303226 -7.798016465475729 -11.006610169818739 -14.273698215677408 --1114.121934592827 -14.445849650579945 -6.2334735570929505 -8.298352965407977 -11.779476807045807 -15.344880608602471 --49.81693558503891 -5.542729825848348 -4.0525618368836 -6.3227724464869475 -9.250160220296976 -12.19174869196109 --1776.4911140663764 -17.39753577164879 -7.112164947811112 -7.794281477586456 -10.203020491831921 -12.89000316823492 --145.07099624749645 -10.944084188278133 -4.896929791675676 -5.686472287733936 -7.79372342634916 -10.155100380207895 --197.20614772095507 -9.649339794866313 -4.785562157979213 -7.024488352061436 -10.349431129106303 -13.726435435035935 --203.8660240967774 -13.817192902259091 -4.9482221594182345 -5.551795485470723 -8.039463288475291 -10.933887418443183 --5198.597927576731 -13.730410509388967 -7.895291439589701 -11.294895351541639 -15.621419889915437 -19.784022796691172 --422.75233919696177 -14.326367331573776 -5.39331923502243 -6.797569321111195 -9.90683801314115 -13.258955441489146 --187.82656381211507 -6.319503640187566 -5.941731172151347 -10.206228234952839 -14.717258518009976 -18.8891516150752 --485.79139116426467 -13.982471166829026 -5.510588764354871 -6.985796049596883 -10.037835402242916 -13.288934067232955 --246.8041224647352 -13.861227579510047 -5.106567017006449 -5.741320482712897 -8.14754736448069 -10.910472180499257 --243.63545325335974 -9.934538062909983 -4.900102473841001 -7.405320063412483 -10.998245183537481 -14.609703476379563 --82.8564828153661 -6.563671319138101 -4.444276331640223 -6.975286998667561 -10.21407249677085 -13.427701931741293 --12928.953799897847 -18.51003761641517 -8.924881421893613 -10.496702068947776 -13.614982206031 -16.87526272281241 --2187.2679867478428 -16.983317642604355 -6.964502322402948 -8.720127355026227 -12.149730432365157 -15.738001289065195 --236.1770966193737 -9.960382673282908 -4.925370780805329 -7.288220798084246 -10.733524131094624 -14.209376918254122 --10.667107991492433 -3.5986542812187894 -2.889552921844434 -3.851062399066304 -5.4021990612579485 -7.167612759905536 --249.99053059703843 -11.74426575063568 -4.843662783354202 -6.629682415986936 -9.862956965454858 -13.269591955299157 --18.275675667226235 -3.794742876554688 -3.5049031083426723 -5.504927128538169 -8.052167742713463 -10.678584473462708 --16708.13371873639 -19.696525803428987 -9.112280041226164 -10.640077667066722 -13.876011069751147 -17.289775143009035 --740.1354647813039 -11.09767398036876 -6.061776661618607 -9.242935844067212 -13.328842574209958 -17.288712838217663 --231.49894822465973 -14.369173140100852 -5.00058301831653 -5.666455981700618 -8.29082562642796 -11.327112260128828 --30.07250028489814 -6.371289865391807 -3.4556328152355436 -4.125510791929043 -5.8415543763715245 -7.885751804185476 --73.32191945367308 -9.978133832183874 -4.099742137115732 -4.5796339191300985 -6.637743657256484 -9.12978129678977 --242.27266874270362 -12.904961567133093 -5.094903638850923 -6.120597032681404 -8.742690012305985 -11.64360129309192 --2973.1554417009183 -16.189293015495036 -7.2105388347104356 -9.252354104981979 -12.772577361477556 -16.379810385753352 --606.270627619472 -8.387535819487244 -6.5547722455836555 -11.020529861295243 -15.850080756413785 -20.315745425491563 --363.1779958436837 -13.658627353311658 -5.309772275324214 -6.772695021649968 -9.86136959969194 -13.17551649112935 --143.51617143883595 -8.06659947335809 -4.63997778792537 -7.46859933570458 -11.209352358940503 -14.92699116973547 --11.461164752652293 -3.050697632375164 -3.6644962137218475 -5.84398290406345 -8.371790559164324 -10.91247450326407 --1066.1983541373163 -14.269293938949769 -6.29598040455853 -8.261943138996939 -11.60282238017787 -15.029370465804341 --86.45422040186538 -8.379794472228216 -4.034800757418582 -5.635997430690104 -8.435237793617535 -11.434683523270232 --2896.7888194028833 -16.293970951646617 -7.114384369845254 -9.194228046371236 -12.787911087945137 -16.47220353722315 --691.588414571237 -10.956757245528957 -6.022415855775472 -9.297045213233043 -13.469142560901533 -17.506286382771968 --13.033991492253223 -3.3626024741272618 -3.556321717902367 -5.436012163476973 -7.710270610553185 -10.025075181499068 --9669.612636843998 -19.20498134461997 -8.295375472226345 -10.124310078953037 -13.719406793212745 -17.474343807715478 --2059.222037407667 -16.628661956701702 -6.9512157292686965 -8.600820315326997 -11.868403871043498 -15.29427115348875 --267.9698488687354 -10.928457831836674 -5.125923161311022 -6.97083826844584 -9.994139337977387 -13.111447969486871 --774.5423860107203 -14.980929855157092 -6.065245021762081 -7.366626644150197 -10.240055098996534 -13.312774887226317 --6.656381350932097 -2.7014584150826497 -3.308573674189487 -5.001204367674504 -7.009824019146848 -9.081591647568963 --351.4543590624978 -9.115973501920383 -5.540890842433381 -8.940134193684207 -13.085159987106598 -17.068345797382435 --1424.786098291259 -12.1209467753062 -6.599040210889252 -9.692589323379497 -13.714603121109842 -17.613221185160647 --1693.7707403684797 -12.285557110099042 -6.823474382608406 -10.414614482087284 -14.916873233070483 -19.241066594398717 --1.9575692523242085 -2.4399908630859413 -3.2262724961033795 -4.156484610840382 -5.156298748748816 -6.1866922988369115 --771.2139842088739 -16.821196091363113 -6.043541176588519 -7.1044176257448735 -10.086299818597396 -13.368713935709057 --97.86217395034708 -8.534242555464871 -4.187534088465449 -5.967645475068453 -8.920773022803273 -12.042045680649801 --383.86528650146937 -13.351888939625713 -5.225505662252333 -7.026000466876381 -10.414155814915098 -13.986069996873077 --258.24720334874706 -10.970587878692957 -4.9250197623592396 -6.861070219698626 -10.045821981707157 -13.33613865061266 --3686.3154742462134 -18.16631013187677 -7.486505117808832 -8.878636702001662 -12.028531302663556 -15.38555865540233 --1780.1497076103853 -15.222952109758896 -6.506405913605488 -8.81389042975757 -12.586928906769561 -16.423311333172492 --217.15919772903268 -9.663871455167781 -4.830011260992331 -7.439927074847274 -11.138597838352034 -14.854127686113353 --192.0465361426485 -12.561633464779748 -4.735277826824609 -5.895445691241838 -8.774267223643346 -11.974043211142916 --1068.3961678411747 -12.411371385686577 -6.269101258817063 -9.162890157906917 -13.117350514120819 -17.000150486182925 --721.9497326137399 -15.149262150489236 -5.729446114831586 -7.524174356498129 -11.01646119130816 -14.691819848893353 --1870.1993079915383 -14.914529875506135 -6.899116393426259 -9.178728085134791 -12.79853818245396 -16.457948851813384 --172.15431633665352 -7.828360688047118 -4.880759529948028 -7.946245982115084 -11.76571690776089 -15.485983771020901 --452.5177666203684 -11.694393117791657 -5.720710451595908 -7.486546681623543 -10.353946856908168 -13.284581200428782 --62.824374506104874 -7.826106830151989 -3.9210164878148377 -5.223001849253455 -7.6912923478872335 -10.404063528607097 --456.88619166629616 -10.118020318589398 -5.712387127525634 -9.003071165930432 -13.154067933811806 -17.171594680577275 --3.1583157679296643 -2.3446906006423074 -2.4266685212330548 -2.9349583550067955 -3.66916892939474 -4.528343465503523 --42.66348003790205 -5.776783545441057 -3.8048625973334977 -5.615162146858781 -8.216470094778117 -10.926791378004939 +-2185.2552276315423 -18.370690106053484 -6.544841746631657 -10.957975382143745 -17.402383838515455 -23.820791221208495 +-5384.940969167808 -23.7545919162458 -7.383682741215706 -10.266750419361863 -15.854264666239807 -21.687961007687623 +-2044.8997387365157 -16.486809207795222 -6.704955420273458 -11.782563900685272 -18.544266127960128 -25.14293831906713 +-4.284547872670995 -2.349013867391283 -3.1809381177309746 -4.937277128177892 -7.0661896384319185 -9.34314067487298 +-1585.5523259931304 -21.039734449768797 -6.049598368905738 -9.754065128658702 -16.12844083225704 -22.69670608047019 +-888.8712961463705 -17.511404094378864 -5.69907982724499 -10.035271189318465 -16.639135361925703 -23.320562308550222 +-487.1550898599172 -14.874290615800927 -5.081275837530927 -9.249783945783603 -15.516205610471335 -21.883495181790224 +-3101.4792395729314 -18.914955197906977 -6.882591118616865 -11.950010582316697 -19.041759893167928 -26.032849149504326 +-3574.507436407361 -13.158786989217521 -7.8257863948057045 -11.23905586070986 -15.505907455802308 -19.59463485413655 +-1717.1052983077545 -16.77148005540726 -6.415843906973032 -10.945216232369505 -17.281048316109068 -23.538270797972313 +-12.322027836218174 -4.9796635925335915 -3.025399370743327 -2.9613497310419947 -3.7567345486753854 -4.98667040770909 +-293.8544900514752 -13.420176941636122 -4.7385630717487 -7.726723766532723 -12.694185876828685 -17.878059271094443 +-2098.284230822541 -18.97430783348337 -6.505596267028979 -10.048748025989314 -15.728531391271101 -21.490152525866634 +-56.53803258469202 -7.531715551070107 -3.595245835525768 -5.5999706501817945 -9.124497652961493 -13.028895897882602 +-14.753229871532024 -4.417164490547005 -2.8209233533023514 -3.7192222278577978 -5.607436721590483 -7.9277021922341 +-10021.19533019243 -19.56527725406295 -8.106231344868386 -12.655351203203619 -19.04255514850337 -25.32776850084945 +-38.50479399506964 -5.706467658467137 -3.427856777922785 -5.864607160770461 -9.572155526776163 -13.601312336674916 +-517.285695228939 -14.45963709948563 -5.176583023056214 -8.726559084209995 -14.163234127645817 -19.690943753515587 +-283.5472185320496 -14.775709812541841 -4.949778478501459 -6.662734584079567 -10.497286421830353 -14.692269442057459 +-139.88870482214702 -10.644516385282312 -4.4278261723868155 -5.9903581614242425 -9.060444599304452 -12.388679818949248 +-10316.334236183731 -20.358583598597445 -8.099081461146742 -12.530563700042517 -18.932897647326833 -25.27140457196375 +-1585.1920277421034 -19.077866955108284 -6.176997635771466 -10.219414563069837 -16.54732448862326 -22.951552706783076 +-885.2505977034164 -21.129210277506115 -5.641934801610606 -7.994118361373842 -13.25494865763783 -18.925747912237327 +-159.76541626929736 -11.6168343475977 -4.142737611028586 -7.085250780422544 -12.14431295638924 -17.562173729644094 +-532.9086602075461 -15.151893472517845 -5.25130356252027 -8.648881044506439 -14.046253966099579 -19.574602943458085 +-231.98915784165519 -16.950848215783957 -4.681982129323513 -5.899042793642225 -10.015990231313092 -14.804014781989498 +-62.485131921426735 -7.605037184095803 -3.7911440706379524 -5.682472783118588 -8.897705906131876 -12.391670149907476 +-10.639235177151635 -3.641302494309995 -2.7157573913931325 -3.686809260549781 -5.44387329810422 -7.5554257547148 +-204.30496321545877 -10.993967432977295 -4.5464158443594656 -8.211008328447484 -13.601027186560534 -19.126885732616138 +-1220.9228186945993 -18.67646230947046 -6.020360365467382 -9.202223682743812 -14.656132898737493 -20.275425056839612 +-314.0083778779686 -17.538384169585008 -4.7306496152825215 -6.654190736074874 -11.465962107536463 -16.83906535168568 +-1690.9937889550504 -16.07551591994986 -6.401657380536619 -11.099371354839155 -17.486440584086022 -23.754055234445552 +-1884.5631756676137 -15.868926042628946 -6.5435092057406985 -11.356770158721808 -17.778141960233764 -24.047837037057565 +-743.5004703626928 -16.38207778968733 -5.504439260153244 -9.020137659946442 -14.622094553464706 -20.34259877432045 +-65.97604524376777 -8.842572086362546 -3.599909425689279 -5.338385184989999 -8.948110849665788 -13.082780832124918 +-1048.320649622431 -18.53949706929224 -5.748225119373596 -9.715793662700925 -16.06657346925097 -22.54443870618104 +-1441.5489470793993 -18.979499335242075 -6.121385115531422 -9.53325082982679 -15.222456107392688 -21.049335700926044 +-951.0077338003528 -26.179847898900295 -6.148193243372413 -7.048644640994424 -11.684715743558591 -17.055407569589 +-652.1178845992324 -17.2317439954292 -5.414452596073526 -8.71327349951512 -14.338741299375883 -20.171007867927777 +-878.1609722246994 -21.2948020958038 -5.731358945477062 -7.757251822693082 -12.688111147549476 -18.057315909961222 +-153.13787045661445 -8.983195015520701 -4.489527702593236 -8.659657430514606 -14.278240845295418 -19.947068117614897 +-123.93279488772225 -11.239349756191407 -3.9832707542824797 -6.20083267471639 -10.54003155693508 -15.33595750816685 +-1635.0333672746467 -21.010789915073133 -6.02897070577775 -9.789062389550335 -16.211078815054456 -22.818493112284816 +-13505.61740133602 -17.43188145500909 -8.634251403311819 -12.465531101469454 -17.692276986439605 -22.800926306588643 +-309.6109604634309 -16.636507698312414 -4.948509725395061 -6.3303193796031065 -10.219443617452725 -14.597213780452579 +-5294.57838273949 -21.751802149411446 -7.586481743949738 -9.727341087888343 -14.198082538109473 -18.913468345743997 +-89.82788422024295 -8.037825035041598 -3.914832202046952 -6.953679637289198 -11.478469529306068 -16.223474246551348 +-371.2835743791848 -17.145830145773324 -4.8110131532537075 -7.458804428037632 -12.837412281036679 -18.64994961732961 +-1213.3078868592029 -16.489275064473542 -5.957805763575433 -10.79420679960398 -17.55800706938528 -24.254656487547567 +-644.121099880249 -19.305812241407637 -5.606953341206638 -7.361622068732303 -11.73871025870846 -16.53223148148137 +-281.91585583063363 -20.528401704346535 -5.375839479464112 -5.582887636391725 -9.16649356113434 -13.61097577389356 +-161.3769898355225 -16.50700112207884 -4.814197934449138 -4.943253304552978 -7.9489576685379975 -11.767316778047014 +-534.9425713629514 -10.488728752269973 -5.89550741288922 -10.02853782678957 -15.07838367637367 -19.92685140019201 +-3341.1556530330136 -19.19790148750515 -6.948443978726613 -11.489737978521262 -18.078989089884644 -24.62272865336479 +-144.5956763315575 -13.383618692200239 -4.253604459084087 -5.735159816965161 -9.652920484147593 -14.158579003594165 +-1297.9649481205934 -18.382091732492114 -5.998390689096797 -10.439462364876487 -17.135792723000975 -23.87374257911947 +-2457.9095760995424 -24.571067318085156 -6.9964182242973525 -8.38464306051937 -12.765871947136995 -17.616626661547098 +-5269.154190570642 -21.041329873174412 -7.13849868890912 -11.95295416471305 -19.055422448873703 -26.12650055720611 +-902.4487312383723 -15.996770037910213 -5.761664783659227 -10.09026670367182 -16.35503378307736 -22.617605484088216 +-1573.0086758155107 -21.45661031872983 -5.958707764797068 -9.353707837556652 -15.505139426816646 -21.89905359652542 +-8.737737347921097 -3.4866142034999386 -2.638551390566092 -3.3249278282500976 -4.692292552988255 -6.388858192394433 +-98.60332752316113 -7.43045458617725 -4.260946203971824 -7.934639530425779 -12.835563770634806 -17.8036449389734 +-1651.299482843311 -19.126012279056123 -6.115137635367099 -9.992533490365842 -16.159527244004476 -22.417367389645797 +-156.0171191123752 -11.637503688815181 -4.134141267191632 -6.995340751898885 -11.987806778063721 -17.354139987519375 +-807.4626415094854 -20.762845724675024 -5.628937067115771 -7.917156758931407 -13.075544521288176 -18.64725622056484 +-215.1088379538951 -8.953134196791067 -4.985505441624992 -9.530662484991426 -15.212603478362201 -20.77624577195008 +-1039.3364629551575 -13.848390188904691 -6.169382469543158 -10.558806447070614 -16.34560663335483 -21.99368660141206 +-84.36058505495576 -8.297914295938511 -3.8373055743382323 -6.6524604332168495 -11.085947608247652 -15.819498132907428 +-600.9564355047418 -10.109289327862134 -6.309426786851156 -12.606886525105589 -19.757125496611486 -26.4906853238187 +-653.9838923709244 -15.272792617046408 -5.468512111417367 -8.8907416398533 -14.214350579000568 -19.628148518430752 +-8679.42931474055 -16.70783872513899 -8.216445435832574 -13.871228975710604 -20.86912708939232 -27.55538644712209 +-96.61149784057699 -9.13799587222547 -3.894395788291125 -6.6550514632565 -11.19460165958612 -16.076659201840272 +-23.642865255188575 -4.593938557617869 -3.217881227639909 -5.234232051827611 -8.268724014115357 -11.603206879474781 +-12326.421258682863 -25.480358201980433 -8.264925197238059 -10.655113129227674 -15.845953276953704 -21.343811607986652 +-26.738366015772193 -5.550734934707133 -3.0544511766202573 -4.5019889380407 -7.261347645191518 -10.491214699508053 +-1047.6474321620303 -19.403001404388952 -5.629706110108725 -9.431050832304983 -15.804527687526036 -22.36457824267601 +-282.9919606631869 -12.479333751947667 -4.70311838497578 -8.591524017047735 -14.378242135740662 -20.293963658663216 +-595.6945137322161 -11.472063140402607 -5.973041023642165 -9.408590985845633 -13.88577918357852 -18.25080366200848 +-5567.985486557438 -22.897832933402555 -7.2518846817545635 -11.146610851669989 -17.620709180389696 -24.21387757247775 +-2.1456077622228564 -2.0547951570293472 -2.218326862729037 -2.547349335823051 -2.989506113940172 -3.511486668641179 +-13.384457702015123 -4.465259556547614 -2.8537548982499725 -3.431871238233107 -4.901019907928651 -6.769634856733354 +-276.66321277957917 -17.11622741315646 -5.043339499772243 -6.073832619097365 -9.744113953492764 -13.983980988513766 +-19351.505745250775 -14.586828401123888 -9.603664618578733 -14.383132748547313 -19.918274736510273 -25.111959907030162 +-618.3280362568005 -14.689729356478665 -5.461667534669228 -8.725255468595236 -13.776776770505847 -18.90818015827569 +-113.11925337123276 -13.332495122394299 -4.200495152278503 -4.9346064608230655 -8.200584477511882 -12.19607753330775 +-443.96338922508835 -15.415525058272367 -5.234037644035237 -7.474161732306009 -11.754476214847676 -16.28911414453335 +-294.15964319427314 -12.424811263806884 -4.757577904496275 -8.880473660708118 -14.881974935034233 -20.984175287367144 +-854.6440261434883 -18.93201455572178 -5.493718852611991 -8.458420071808831 -13.95511718803272 -19.717939884013518 +-1378.77051805664 -16.14993101920211 -6.31358434285816 -8.880790313123665 -13.147562138628087 -17.50716681081406 +-86.19810790702738 -9.861948683395525 -3.7511184332648595 -5.586288100783676 -9.384861330722302 -13.677494086221305 +-412.5176588947758 -14.44619021841348 -5.143730750400474 -7.703347635477538 -12.162751748970042 -16.818276738782572 +-2384.7112446382903 -16.709836055056964 -6.769233350705948 -11.226712663726039 -17.365324812660013 -23.396965697837377 +-414.16356441421203 -18.000034335306218 -5.045634392424146 -7.06250409215637 -11.79984406927324 -17.001835590948353 +-250.65829445017496 -12.61880173313644 -4.620299223478439 -8.282396037823101 -13.963212006457454 -19.84441935696014 +-202.30966486666833 -12.251843162540052 -4.3358137582175065 -7.489216360298709 -12.717970429104065 -18.23368349857706 +-339.06001643249306 -9.746726492816698 -5.442409343166177 -10.325940304178312 -16.257314830733137 -21.97916692944861 +-69.00169161511823 -7.333815295457119 -3.714597377577025 -6.688205150195337 -11.185398163557155 -15.974864234053031 +-144.16611042827284 -9.194397613850764 -4.391097888938566 -8.084715844666325 -13.272609872794837 -18.56778176071727 +-2263.2756849766038 -17.78580623236206 -6.897771257609352 -9.0569028838081 -13.043364249142389 -17.18018310096661 +-383.87821053423625 -13.36304958584041 -4.956358235573974 -9.507816869254059 -16.009596713618148 -22.56691969190151 +-13.37109839206905 -4.595768647276892 -2.871495727113245 -3.3141108390186083 -4.655592641373103 -6.409614346276289 +-106.65678079764335 -10.819166071592697 -3.818808222305327 -5.94309156095457 -10.239416793245663 -15.052407463173031 +-396.25305660993365 -18.81184943101196 -5.0327848971110924 -6.744875316869929 -11.379507633199852 -16.566206976331365 +-13.417683792732026 -3.218458269405282 -3.445012772937279 -5.861515691210032 -8.92427880471724 -12.148054480068451 +-23555.32667182418 -17.44255398760447 -9.38103098809635 -12.921043396005047 -17.732128882067542 -22.429243906295394 +-312.90517249761785 -15.614050378923503 -4.722011221632156 -7.199333740427321 -12.128962637029034 -17.446776763448767 +-302.8511840323589 -16.65869387338789 -4.660619068114174 -6.827183469571872 -11.727664566727203 -17.12992077660044 +-250.47350731617135 -15.08112846304831 -4.869709008119926 -6.291830430243947 -9.978257603660538 -14.104780720273713 +-630.9198123174062 -13.774080431093518 -5.634462673916444 -9.285374905523335 -14.513635280245602 -19.734705509364865 +-1368.38522473077 -17.310533924001177 -6.0305521822059776 -10.029432288834222 -16.038549057887735 -22.072535226074326 +-56.896872803265445 -6.756906908573954 -3.758091990423786 -6.228420274173631 -9.951336845398384 -13.907655894338927 +-2131.899891850256 -20.725172344419313 -6.965843775293894 -8.407340068208521 -12.18074067406462 -16.28181997098625 +-167.1728795007606 -11.876703677805633 -4.531383552504867 -5.9546959243068605 -9.088655907205364 -12.537025843159014 +-238.10006535695385 -11.43882009453386 -4.5921256171043945 -8.37662948769909 -13.907216457862186 -19.550170109720117 +-242.4659362582967 -17.35186682353565 -4.777052983702751 -5.785064976999514 -9.699498996261646 -14.29319767518971 +-6551.553080761297 -18.85158655687878 -7.759331691657047 -13.18950315867969 -20.41400561813771 -27.442469670787794 +-513.6780085989657 -17.105589806704245 -5.225429947751227 -8.29146824908231 -13.804457516118426 -19.598090360133064 +-222.4551863642625 -8.054273476958492 -5.393963842798862 -11.018304789869866 -17.57377878965284 -23.864916227563043 +-588.2561757897965 -18.704277931570388 -5.408619838518549 -7.573289157362656 -12.348103168324698 -17.508553394623764 +-295.70752423138924 -15.057315785147603 -4.788771989504468 -6.944934699042311 -11.376630439294663 -16.17515874407739 +-291.909285324716 -13.419793263401669 -4.657538221477083 -7.9830009291810065 -13.36361148060735 -18.958216849534512 +-96.47369759135009 -7.611290416666902 -4.177952649721298 -7.596404833639776 -12.285854473023688 -17.077462894889983 +-16024.536679471423 -23.1377630849507 -8.682106061497105 -11.470790763716828 -16.593039383639862 -21.887979856258045 +-2716.2757070484427 -20.343584692574225 -6.701392592678178 -10.61291262189328 -16.839335264543354 -23.14300599217363 +-279.1928415501458 -14.141528886418563 -4.651438618232152 -7.157037526609695 -11.821338724838391 -16.79839968821173 +-11.585763524801656 -4.01530062769192 -2.7277899223526827 -3.438271624199689 -4.993094519896067 -6.940034117831319 +-301.48005061285824 -15.513846992972585 -4.746013602591784 -7.4166054501410255 -12.570344648460742 -18.113690636880495 +-20.257417468303025 -4.163197049627177 -3.2128725488309566 -5.354727964216201 -8.454606716840834 -11.845661705713608 +-20828.353523412494 -23.102276569344614 -8.789517191344167 -12.319313040308447 -18.14703128526398 -24.06398678563312 +-901.0373385566536 -15.761845673369898 -5.627220640381971 -9.888283358973634 -16.05967523605223 -22.22854000435125 +-280.9877880448697 -16.127256111416063 -4.583031023669188 -6.979129433503619 -12.09286312791182 -17.700481026150648 +-33.83592375113097 -6.914056098835166 -3.36082894384782 -4.30854095840929 -6.698697051871037 -9.597558106629208 +-85.23580802579454 -12.286799184351095 -4.052204067008427 -4.4925248585672595 -7.37189958260815 -11.033587059658846 +-292.0847328438301 -17.809646798550347 -5.079141925238983 -6.12698298225465 -9.962700998415942 -14.405638662397381 +-3744.429669035431 -22.873503680759782 -7.003787891214376 -10.256134669023245 -16.16496776787628 -22.2797820876848 +-737.6066866696278 -12.653252714908808 -5.936784170041383 -11.69084607757388 -18.80773389519382 -25.668610213077216 +-440.03476477816474 -14.700149554539152 -5.083928647257601 -8.781174692207255 -14.542605256280144 -20.44518696528754 +-171.16783434706085 -9.452111765621025 -4.5526395313553465 -9.099254944588996 -15.2151175840564 -21.380718907899446 +-12.454030357138626 -3.260425242533261 -3.2148015444853604 -5.292904717416074 -8.058225505437644 -11.034677430703411 +-1322.0767467644444 -19.16548762663805 -6.141285675699774 -9.313319227871322 -14.808429019150246 -20.47798880362104 +-101.41326787118524 -9.532171998709698 -3.9483811031125255 -6.5914624917745375 -11.06007707242131 -15.886584583025483 +-3598.042056606231 -20.28975400602165 -7.051589478791211 -11.130233481518673 -17.41915576667602 -23.740877694427006 +-852.7944307611741 -16.977796317728163 -5.5947368728759415 -9.732152730797786 -16.050108044100565 -22.44492623019342 +-14.210338694024108 -3.4520561730982964 -3.309023550211033 -5.392714359746842 -8.141806640539222 -11.067914520430977 +-12299.413850181418 -26.617150537847216 -7.929197335185689 -11.21080763345682 -17.532591253583096 -24.11874938590858 +-2537.949358067294 -21.60510783319679 -6.6826113103229074 -9.541655035095356 -14.937615480864146 -20.562154039658004 +-328.2120368860889 -12.031650351925851 -5.044500485919286 -8.91958195043702 -14.398165092850684 -19.905334695779167 +-933.0927715582189 -17.68912603640583 -5.881101436341307 -8.482391819836002 -13.238569085962443 -18.200147580249787 +-7.073646111977132 -2.7023886211633013 -3.025894591958046 -4.735277481167335 -6.969500277890043 -9.403574920188529 +-427.76384362607894 -13.407486833375513 -5.132985935682052 -9.54826171826003 -15.798549406452402 -22.071261402073542 +-1734.0019178699506 -17.47770504323774 -6.4240322695999 -10.461987116389855 -16.42246506651856 -22.376669573182244 +-2117.0718180862596 -18.31206754966759 -6.446926093482806 -11.638256619644125 -18.888946048768634 -26.045331435094653 +-1.921072891251165 -2.3889473946078414 -3.1780056541917197 -4.140215885484446 -5.2015120038513265 -6.320185970983537 +-941.2193802587549 -19.38871757674994 -5.704808682323895 -8.642857707619434 -14.127248002892749 -19.877503602778944 +-115.04300877041673 -11.350700471180478 -4.002190335740001 -5.9029092114080335 -9.954910076680786 -14.51007506736656 +-467.9916697869285 -17.157321028425457 -4.966950373957899 -8.142164747123221 -13.905420973206242 -19.988425653794295 +-313.78053632060164 -13.4120409511335 -4.782652032236552 -8.165135541805332 -13.528844656480658 -19.071967643147477 +-4508.439774690743 -23.056709908436606 -7.36914611969083 -9.96757912903446 -15.168325494250455 -20.625503066722327 +-2225.1551215371946 -20.52656003195333 -6.39995119074082 -10.465197094181077 -16.968312927762142 -23.5657122063683 +-260.34058830472617 -12.45911998962919 -4.602738809274243 -8.426812106497055 -14.22311987110401 -20.187130173695955 +-229.05118201634377 -17.302294108167814 -4.750501098765506 -5.957351628444052 -10.173321265009065 -15.102681470797332 +-1303.6497013539379 -18.200972983172118 -6.007271833369749 -9.714321273549581 -15.608557592316288 -21.597082917868807 +-884.8158626018844 -18.47609457225194 -5.489302744761852 -9.27368398372376 -15.534884033931807 -21.973329632115483 +-2318.4266214667673 -19.517627353620654 -6.45876298264187 -10.225392889247727 -16.2232810781857 -22.29877461608632 +-206.34606705866494 -9.58686967325501 -4.7833693224036224 -9.442718648664906 -15.520556101684662 -21.56408604045769 +-532.5811286298341 -14.900436512554768 -5.498516011582883 -7.618857611043745 -11.531544969263662 -15.63441955345807 +-72.62473190035494 -8.709468820253601 -3.727158831992258 -5.743351520107442 -9.49595301331109 -13.6741988296913 +-557.9750620694115 -15.238636580176573 -5.212085187864309 -9.345738771006506 -15.552188306194427 -21.84204175732344 +-3.207715477926142 -2.331089549796207 -2.296871899737615 -2.7127204106362135 -3.394461029009361 -4.242068400152276 +-48.768400075836304 -7.31357113712197 -3.5252078194799745 -5.185809867056279 -8.31428575119178 -11.845229281663563 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/log_q_c_tc.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/log_q_c_tc.tsv index e8559378893..75af53e84fa 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/log_q_c_tc.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/log_q_c_tc.tsv @@ -1,172 +1,172 @@ @RG ID:GATKCopyNumber SM:SAMPLE_000 COPY_NUMBER_0 COPY_NUMBER_1 COPY_NUMBER_2 COPY_NUMBER_3 COPY_NUMBER_4 COPY_NUMBER_5 --24.86211804807404 -15.125369683116356 -5.078746523456967e-05 -9.922055105499389 -13.481480315792737 -17.046253780508803 --24.86211804807404 -17.99919386507203 -0.0001376835249015662 -8.935502351074806 -12.054117433599739 -15.392945368094926 --24.86211804807404 -13.347125820262878 -2.7209497007851802e-05 -10.590934861179658 -14.593033110536917 -18.49839777202122 --12.275482655700245 -10.560963715932463 -4.216209592877718e-05 -11.414568007635859 -14.539387390546906 -16.472271047884128 --24.86211804807404 -18.112669307775036 -9.54329529734288e-06 -11.57024687499926 -16.274708650685184 -20.5260379063378 --24.86211804807404 -18.103921393489408 -1.4863304416135037e-06 -13.444787070592293 -17.57587272430869 -21.36015438046596 --24.86211804807404 -16.008013657423668 -1.2690412310445431e-06 -13.684904430620449 -17.863382594343413 -21.616937065715106 --24.86211804807404 -16.244196866762156 -2.668158695540157e-06 -12.88323291337772 -17.05948429369628 -21.094948798741108 --24.86211804807404 -17.81691002982478 -1.2449264916170044e-06 -13.65391845368679 -16.851423088049355 -19.557550815179173 --24.86211804807404 -19.140341055948394 -7.334045591389504e-07 -14.141351172610142 -18.859275775522182 -22.623778233027554 --20.052228918737146 -13.466334383553761 -1.6590340507660617e-05 -11.614077323245292 -12.326973916443928 -13.283834198631064 --24.86211804807404 -19.825265701559246 -8.704282061788859e-07 -13.977171078497934 -17.903532904285854 -21.51093415279635 --24.86211804807404 -23.90024184282872 -4.972121955826303e-07 -14.529567160387478 -18.747339399414834 -21.970518255814984 --24.86211804807404 -16.355915438021757 -4.639959739760613e-07 -14.812573370389694 -17.999423102251146 -20.779693856146075 --23.88634033849482 -14.91802036320467 -9.555331728083871e-07 -14.437903575122444 -16.402825277774692 -18.274563031481236 --24.86211804807404 -20.75302585675179 -2.2718295339396732e-07 -15.31927057157807 -19.39029375723609 -22.919300403517205 --24.862118040293083 -14.470300518175 -9.089345945900718e-07 -14.811035363749548 -17.791359852716848 -20.651631523643307 --24.86211804807404 -19.96641023794023 -4.646271749009223e-07 -14.61524165323656 -18.192933823711073 -21.473878680675234 --24.86211804807404 -20.13528330788216 -6.463529935163415e-07 -14.299282722449208 -17.440819422509065 -20.35721492248631 --24.86211804807404 -19.210096221890986 -7.107709811271512e-07 -14.246604143626092 -16.790603411241058 -19.0418972805277 --24.86211804807404 -20.275002884069607 -3.5586358132499996e-07 -14.865857766829912 -19.252870852612702 -22.888318053682532 --24.86211804807404 -20.45429834448533 -3.310869232109326e-07 -14.94341546305561 -18.947913778002704 -22.625485086491846 --24.86211804807404 -21.81819000130157 -3.4261408832225726e-07 -14.917023242531108 -18.464570261536362 -21.847103918503016 --24.86211804807404 -11.680728883073355 -6.290750712190096e-05 -9.847932155189438 -13.378924862025768 -16.88341510878126 --24.86211804807404 -15.697560959949927 -2.935275434512441e-05 -10.461031072357192 -14.410788680142097 -17.837168295312573 --24.86211804807404 -16.53585449177086 -4.735788683452036e-05 -9.996491082019194 -13.310680770472347 -16.41005686960067 --24.86211804807404 -11.290165932253185 -7.311209960275677e-05 -9.77036015256061 -12.645373521627151 -15.117465026021017 --16.98089617104946 -9.572779701798963 -0.00014538876449832205 -9.539520293349867 -12.628140357269197 -14.491719303092026 --24.86211804807404 -9.571076803622212 -0.0001686575371478427 -9.235088514489156 -13.524302595079202 -17.21393428151507 --24.86211804807404 -21.473458600249547 -8.938352335174926e-06 -11.631525145005348 -16.735700035604612 -19.90440925219114 --24.86211804807404 -22.243497654044972 -4.480197449530099e-06 -12.319637666857265 -17.941254443578533 -21.28444780625601 --24.86211804807404 -19.378594732102876 -1.9920281246754712e-07 -15.453959718552797 -20.692883263622097 -23.99538936420359 --24.86211804807404 -19.23834918115884 -2.685716762318435e-07 -15.16627607960801 -19.1227051251336 -22.665523867441085 --24.86211804807404 -19.047820393977176 -5.104989573290197e-07 -14.511593724587643 -18.8623572086281 -22.44911316864753 --24.86211804807404 -17.042627716255932 -9.71039805841567e-07 -13.948693281618269 -16.764098886440113 -19.43322426068553 --24.86211804807404 -19.18488132996265 -4.0516876159690796e-07 -14.751440942449104 -18.634729216030667 -22.323790282497363 --24.86211804807404 -18.808234751352593 -1.2092713375100317e-07 -15.997374103299661 -20.502008587055165 -23.81672680266293 --24.86211804807404 -24.812359384057736 -4.526215793276833e-07 -14.661855046272105 -17.606954323613387 -20.67874558398436 --24.86211804807404 -21.581638010219606 -1.7537754498642144e-07 -15.57651588281438 -19.637002055961446 -23.000526776861648 --24.86211804807404 -21.473947152052677 -1.4178130502973119e-07 -15.80160702217819 -19.356714074283524 -22.678941435653773 --24.86211804807404 -17.06278641908044 -9.211704660172515e-08 -16.77091607679756 -20.613315772514905 -23.773862118444743 --24.86211804807404 -18.26202698173831 -8.592856859390707e-08 -16.45369570878922 -19.773660967643927 -22.862478886346373 --24.86211804807404 -21.361802056672257 -5.8569791405727045e-08 -16.678642504468456 -20.82564191218106 -24.12250239802983 --24.86211804807404 -20.405570053519153 -1.1080744921621033e-07 -16.045271200986956 -20.142871741800818 -23.29194845089016 --24.86211804807404 -23.105756609324104 -3.300863112287722e-07 -14.960057650611818 -18.32559644821942 -21.213585337202858 --24.86211804807404 -22.95890822492554 -6.138781213360645e-07 -14.351474764421777 -17.421220607110552 -20.32982368756952 --24.86211804807404 -14.153511276650613 -1.1224280273558485e-06 -14.73717117765384 -18.32873022536808 -21.650300488735834 --24.86211804807404 -21.610313098184772 -6.371152219686316e-07 -14.28939237191617 -18.11044845903303 -21.48046208148179 --24.86211804807404 -19.241110848014497 -5.921314415457957e-07 -14.357061232158456 -18.976171930496836 -22.766037186384104 --24.86211804807404 -21.77553264594269 -5.529072371945887e-06 -12.12892587149559 -15.918928724689426 -18.991546537990526 --24.86211804807404 -24.656746293780937 -4.672232729818759e-06 -12.286107257695663 -16.722798100614654 -19.962156263631524 --24.86211804807404 -24.267562260495104 -3.497083491399433e-06 -12.587068225232441 -16.414097474430424 -18.813809309056275 --24.86211804807404 -19.222753396712175 -3.802345148740116e-07 -14.797043183582627 -20.772268171483883 -23.801747284280808 --24.86211804807404 -23.124351175861346 -1.6574468142405152e-07 -15.620065611839136 -20.67460825841702 -23.92795811513065 --24.86211804807404 -20.92314600799028 -5.203785597429622e-07 -14.542403658358781 -17.196112339713725 -19.97746724285553 --24.86211804807404 -20.04247597475224 -9.473718909358553e-08 -16.20324440632215 -20.85462475569476 -24.186559140059273 --24.86211804807404 -23.776290803180636 -2.881300006363219e-07 -15.111355137942388 -18.106638580283853 -21.06475589080763 --24.86211804807404 -22.30992419683465 -1.0699725511154057e-07 -16.071255718099362 -20.06934506978784 -23.567430335091796 --24.86211804807404 -21.51356118532352 -6.65629161233916e-08 -16.551547399585015 -20.523695270881536 -23.809892901429905 --24.86211804807404 -22.523103586449036 -1.0684447460107549e-07 -16.071438846801907 -20.117646471262987 -23.631300911047155 --19.567508977692434 -14.575799111465727 -9.065673465258328e-07 -14.877251818407666 -16.41900167941448 -17.95122693767291 --24.86211804807404 -15.803066929571314 -2.5730528729894786e-07 -15.961096396366957 -19.583224615531094 -22.740440547523573 --24.86211804807404 -19.6313792360365 -1.938244864052585e-07 -15.490363537854279 -19.500447767813046 -23.064548692530813 --24.86211804807404 -17.41023058721047 -8.925786628699584e-07 -13.988042260779986 -17.59893879375838 -20.9244248565337 --24.86211804807404 -23.122160441310783 -2.8191564303003958e-06 -12.84189844864696 -15.62527298137487 -18.6611626767275 --24.86211804807404 -8.554822878486776 -0.000207148506336019 -11.155070613921552 -15.396782198991634 -19.14616959195691 --24.86211804807404 -10.664904913204618 -0.00014200217763910006 -9.044629018641146 -14.316187461809548 -18.196004345628094 --24.86211804807404 -8.469281454316848 -0.0006563621157411048 -7.753082671938935 -11.030708951631057 -14.147104740722261 --24.86211804807404 -11.455880617161275 -1.0805644884814836e-05 -15.342241687199973 -20.491025278165733 -24.1771689136913 --24.86211804807404 -16.923683876052472 -2.0535180750291815e-07 -15.666800637395506 -19.478278797378152 -22.647356520921083 --24.86211804807404 -14.81083554726888 -7.223771698594561e-07 -14.868101012901912 -19.42868498356393 -23.30390974877057 --24.86211804807404 -13.26107151648944 -1.3358461256218757e-05 -11.38574427340821 -15.198246264300307 -18.393733725902248 --24.846300482395737 -11.89539427942797 -1.901567298900897e-05 -11.348776466787182 -14.785614708574819 -17.29633643212256 --24.86211804807404 -22.997260796791338 -7.894155043652873e-05 -9.493228985781256 -12.586139504253268 -15.655211305671617 --24.856976710537218 -11.348257594271345 -7.031411127006448e-05 -9.79793559265781 -12.813409993503411 -15.279038235373283 --24.86211804807404 -15.282277940760105 -1.0724059764766203e-05 -11.486103846114164 -15.345665203875457 -19.12011552165666 --24.86211804807404 -16.691475655464888 -7.560733440992173e-07 -14.198793091711858 -17.85769068241251 -21.384947943110692 --24.86211804807404 -17.356722577804 -4.342040468841013e-07 -14.744715874848225 -18.439492310607445 -21.36046508619436 --24.86211804807404 -19.389080246406714 -3.4839242840811746e-05 -10.288630165874435 -14.03902730836154 -17.864412513840573 --8.586421307369799 -8.444097985473917 -0.0006851526323486956 -8.722535129844202 -9.48159565472179 -10.031032942865929 --17.981419026773928 -9.799927074302545 -0.00021341005408809233 -8.91750169458852 -10.813203298784934 -12.49068334659005 --24.86211804807404 -18.94734144962478 -8.249803780630005e-05 -9.45136917939078 -12.501793389671311 -15.493021027182303 --24.86211804807404 -15.394849231013843 -7.946064330299762e-06 -11.777807770995528 -16.553957805236212 -19.90247796002224 --24.86211804807404 -15.923393107593373 -4.931571381261435e-06 -12.255826097106224 -16.78828960673053 -20.273806397545147 --24.86211804807404 -15.964137707375736 -2.916736132652087e-05 -10.524774582710828 -13.09468662489759 -15.84408687783929 --24.86211804807404 -16.1956891533746 -1.592276463102671e-05 -11.098746557392799 -14.22136172013858 -17.24509370378272 --24.86211804807404 -15.629474322450026 -4.286146918552891e-06 -12.41339718251721 -16.66608799390453 -20.301323970920155 --24.86211804807404 -19.85454635280283 -7.879300307711556e-06 -11.786360927253371 -15.164464164228628 -18.446667039753418 --24.86211804807404 -18.217659095634136 -6.579239857695818e-06 -11.976901360886513 -15.1524129719774 -17.919534498654958 --24.86211804807404 -14.51506799806104 -6.451009322283596e-06 -12.07150379716196 -15.318096929690835 -18.289956888946058 --24.86211804807404 -15.94182385328826 -6.732009836807329e-06 -11.964737695081563 -15.254190584170797 -18.35138018054136 --24.86211804807404 -15.889507055345558 -5.344659331996127e-06 -12.175598274752094 -16.58336190461282 -20.36385942705753 --24.86211804807404 -19.945876638567476 -4.113645494852047e-05 -10.171493005412335 -12.807668296011128 -15.722320394028712 --24.86211804807404 -15.765854778398209 -4.225857484718709e-06 -12.412949896659974 -17.852613715519553 -21.740090706435232 --24.86211804807404 -17.516587449800745 -2.087667947792138e-06 -13.10922730231059 -17.162074054949873 -20.45914181026708 --24.86211804807404 -13.970935963176139 -1.3368396761248569e-06 -14.55987777608789 -19.00310983211512 -22.60882060667695 --24.86211804807404 -14.798832703661258 -6.659195727065637e-07 -15.077974612028143 -18.577953791560567 -21.81262629503015 --24.86211804807404 -18.443444123230886 -2.904026338845789e-07 -15.124249013036668 -18.422004733597667 -21.490499316956257 --24.86211804807404 -19.628335211386645 -2.524125209957262e-07 -15.23447192362014 -18.772234966472464 -21.62365055912053 --24.86211804807404 -19.71687167676544 -5.025324001928233e-07 -14.51193510854496 -20.40281824637418 -23.970545531984474 --23.508050758858584 -15.76413176472797 -5.117094377948828e-06 -12.258989293309492 -15.406650783972756 -17.37123775060848 --24.86211804807404 -15.890208208136452 -1.1085714417991e-05 -11.473111434655628 -14.451431290347564 -17.527760220927615 --24.86211804807404 -15.994338098787816 -8.268895383045649e-05 -9.451473147215983 -12.471112801855254 -15.631111249108708 --17.21460728226448 -8.07345884768273 -0.0003555652044558433 -10.10650411960129 -12.814800767973576 -15.277101103691809 --24.86211804807404 -12.183436397407693 -2.07382827409619e-05 -11.100301494454039 -14.517560044904465 -17.715458795567702 --24.86211804807404 -14.211205065306014 -1.0765784356492336e-05 -11.535635213457004 -14.996660124066947 -18.409671840493846 --24.86211804807404 -18.265020957771412 -8.516075747921903e-07 -14.006898764356242 -18.104865875145485 -21.68747597911524 --24.86211804807404 -14.483399026850735 -0.0002612543380661747 -8.312937783386158 -11.140797262620847 -13.9468291853513 --24.86211804807404 -13.64578892973977 -0.0004907639508441308 -7.631348107919959 -12.35649876895693 -15.710816156560584 --24.86211804807404 -12.423593384546997 -0.0016785258132180902 -6.417074822601708 -10.163191612270879 -13.716572472235095 --24.862118048074027 -12.583486734106174 -4.426218790770653e-05 -10.109298911520924 -15.865205624748947 -19.12851997224232 --24.86211804807404 -19.893660157772953 -5.7106866408529466e-05 -9.804382182616507 -13.242625575685452 -15.932283527451286 --24.86211804807404 -16.36596739893918 -2.9586502762635192e-05 -10.504735629645081 -13.161680070244353 -15.537246446435775 --24.86211804807404 -15.144890256204409 -8.227175439190493e-06 -11.755636228474652 -15.987686319692195 -19.450437883750848 --24.86211804807404 -18.971013261811983 -2.6259681531415335e-05 -10.622737563797592 -13.230323466750484 -16.09483022145339 --24.86211804807404 -15.099442840052932 -3.930881487423932e-06 -12.529405613111644 -17.176929667387896 -21.300367484808643 --24.86211804807404 -19.50669537031458 -5.243748217309552e-06 -12.205065591743775 -15.298839883552322 -18.592169676801465 --24.86211804807404 -14.468640523929503 -7.019828061061162e-07 -15.522825361964793 -22.426160276312277 -24.740685276106152 --24.86211804807404 -18.635468446100504 -1.3377984416917954e-06 -13.57113658100211 -16.79350052854507 -20.031252844756093 --24.86211804807404 -20.17194731887188 -8.470685598782612e-06 -11.745346067384867 -14.489341766764467 -17.226165921287244 --24.86211804807404 -16.47843986283172 -2.975014138484333e-06 -12.754517569331806 -17.9681928093985 -21.963085918464884 --24.86211804807404 -12.916053525207403 -4.664538559184805e-06 -13.060057705723898 -16.41282144638052 -19.561694910533333 --24.86211804807404 -21.546402074132093 -2.403270242423705e-06 -12.97314457898242 -16.372614493089742 -19.49087140438929 --24.86211804807404 -20.560205280821645 -1.9309906467146476e-06 -13.176343603927394 -17.197614059106606 -20.80864967725633 --24.86211804807404 -15.434298858646006 -4.240099972241396e-06 -12.449260923224243 -15.960193956211093 -19.285331090234237 --17.917622916197875 -10.85571312706075 -3.992020049670142e-05 -11.003488102815957 -12.599143505080207 -14.342544495073941 --24.86211804807404 -17.5401965264477 -1.1727081949408635e-06 -13.694790022561847 -17.74469402885453 -21.231420172976687 --24.83214790719818 -13.871343774094877 -1.7039752450709322e-06 -14.115686145795623 -17.92535629071007 -20.573116776503632 --24.86211804807404 -22.647102385456666 -1.083580806415796e-06 -13.74717844860535 -18.21386560777276 -21.639940820269594 --24.86211804807404 -13.403834294010617 -1.7742779102547512e-05 -11.048349264581526 -14.977819728797712 -18.763090111303562 --24.86211804807404 -18.855168565448505 -7.144940594538962e-05 -9.577800352769273 -13.070486065825227 -16.28338788339348 --24.86211584147249 -14.154168365056814 -5.792311695140828e-05 -9.800172233076502 -13.336887729501782 -15.694154246426441 --24.86211804807404 -16.254852611668635 -4.919148911924909e-05 -9.98313432485559 -12.818534638465806 -15.325793763108402 --24.86211804807404 -18.635361565598593 -2.398956561466825e-05 -10.663782751638992 -14.368290939534706 -17.341372557381703 --24.86211804807404 -18.122647140951113 -2.1303510776449208e-05 -10.776352689636143 -14.75681738907153 -18.235657313160214 --24.86211804807404 -9.624778278013869 -7.335926697249473e-05 -11.839606191737614 -16.457021795882916 -20.712397962613572 --24.86211804807404 -14.822786696763867 -7.995048774322999e-05 -9.482902247051726 -12.61537286120847 -15.945337333254257 --24.86211804807404 -10.694846261659762 -2.5978956742611636e-05 -12.621610022449296 -17.89377168108424 -21.89356532315618 --19.353971084434953 -10.131215129683016 -4.395760390801806e-05 -12.424712834266238 -16.03321537876084 -18.556058267464344 --24.86211804807404 -19.014702111586033 -1.54882628322639e-05 -11.081468741494456 -16.271582165435447 -20.108324131879055 --24.86211804807404 -15.9830521392258 -1.6221948342276526e-05 -11.046323928122092 -15.67758040414084 -18.877591038877 --24.86211804807404 -16.46994104760694 -3.090474189332282e-05 -10.413349630358116 -14.05725298300849 -17.741085684588136 --24.86211804807404 -13.096145648024804 -1.3414620304685876e-05 -11.400448119136103 -15.6010229981559 -19.55844632342542 --17.130009928774367 -7.457776154043734 -0.0006592198784829972 -9.517644396480712 -11.773553821425741 -14.063777662855557 --24.86211804807404 -19.95389442151674 -2.0536844905050256e-05 -10.811336717980138 -14.84698651901136 -18.591079499125318 --24.86211804807404 -19.721372157515166 -1.7859762262595336e-05 -10.955412739244473 -14.781626164478967 -18.152949826944436 --24.86211804807404 -13.634170428270798 -3.177683260502384e-05 -10.4373579719817 -13.625941779375202 -16.768194853561027 --24.86211804807404 -16.64094953711701 -7.225264346927274e-05 -9.589758178447818 -12.537400139521583 -15.558947190517666 --11.597265725601474 -7.638828124553495 -0.0005607855580819221 -9.69416726990985 -11.809252691469489 -13.848572305941472 --24.86211804807404 -11.940191474852577 -1.8168904477700032e-05 -11.380018132021252 -15.333436725490108 -19.071556643790412 --24.86211804807404 -13.727306768379693 -1.5122842823844795e-05 -11.193559941143775 -15.15473759368466 -18.94648138976588 --24.86211804807404 -13.173514530508116 -1.72818424466481e-05 -11.094767366345135 -15.491985085693871 -19.705654190656624 --8.770109825618345 -9.242416092327597 -0.0003200945868364058 -9.755384734050304 -11.806560789031314 -12.91680365525736 --24.86211804807404 -18.11871309349248 -5.1368573819987606e-05 -9.901323977318656 -13.619881280498216 -17.344262522450478 --24.86211804807404 -12.983457206307495 -4.2587543794547766e-05 -10.168651533955012 -13.200936286880236 -16.272278502119455 --24.86211804807404 -16.82610274443795 -1.7978976273314018e-05 -10.952881370367011 -14.705803254841733 -18.280600922161277 --24.86211804807404 -15.040849745904628 -1.9921754739471442e-05 -10.870020616283426 -14.349826960303155 -17.639811945545166 --24.86211804807404 -20.215457929119605 -3.977961282952691e-05 -10.174435594529783 -13.360187379298912 -16.50884237912533 --24.86211804807404 -17.76338133539573 -1.8951183920590253e-05 -10.887248853388522 -15.277886657493912 -19.133438998800386 --24.86211804807404 -13.319659099745103 -2.3161961254902774e-05 -10.772697544525013 -14.43058836676795 -18.011895973247302 --24.86211804807404 -17.395879097802062 -2.8772984233427223e-05 -10.509398409090185 -13.475683557586713 -16.61040198417909 --24.86211804807404 -16.007440459656404 -6.817098222589024e-06 -11.928937531398088 -16.06047359594193 -19.728710099915734 --24.86211804807404 -18.273210472258288 -7.098712784647798e-06 -11.88513574832885 -15.475165090758216 -19.157768990257964 --24.86211804807404 -19.806836288132242 -1.1601653053250338e-06 -13.685237741545075 -17.832459391254215 -21.413666832603592 --24.86211804807404 -13.986260897070721 -1.9942506806480687e-06 -13.688712789902556 -17.97480833916802 -21.65264913523865 --24.86211804807404 -14.42986106370028 -3.8885177394198944e-05 -10.225697504839138 -13.12088434874192 -15.994548459982342 --24.86211804807404 -11.659270140985143 -0.00010290619369940357 -9.351542819910575 -11.873927914915555 -14.589519432562895 --24.86211804807404 -12.159225943502713 -1.880621077332556e-05 -11.218810681669122 -15.747250574725388 -20.06259037604334 --10.083385899163089 -9.221837769460846 -0.00024050271530823286 -9.671316737991155 -10.565459391643595 -11.418453964484574 --24.862118047658797 -9.74531102906823 -0.00017375926548041098 -9.167218439570531 -11.519116743761803 -14.000986285312656 +-27.634706355513906 -19.613148075937477 -7.798154027149724e-06 -11.764081780726226 -17.93962117222687 -24.05580200087539 +-27.634706355513906 -22.60239273474568 -2.7728783729521368e-05 -10.49715460864289 -15.995094256962423 -21.697739407386475 +-27.634706355513906 -17.32148069056237 -3.3559441387622853e-06 -12.615005030178382 -19.2763865839997 -25.603498275923535 +-12.439795560368774 -10.50820401344044 -3.4271122231662e-05 -12.804679598682586 -15.284800125425427 -17.57368655574011 +-27.634706355513906 -22.564789378417235 -8.970284568229729e-07 -13.924673387446266 -21.600544717688482 -27.26375856679973 +-27.634706355513906 -22.478449318779827 -1.8733633900387842e-07 -15.49186848446313 -22.14858386738271 -27.35785006649398 +-27.634706355513906 -20.993087241328265 -2.819198414352921e-07 -15.08602448501051 -21.235712236705584 -26.826821773286767 +-27.634706355513906 -21.149236830278383 -3.225327742715528e-07 -14.94954947318069 -21.99799077804529 -27.387351560673885 +-27.634706355513906 -17.715563920537562 -1.9504196703638586e-07 -15.574461422314656 -19.747387043873974 -23.632481728723803 +-27.634706355513906 -22.352315949521067 -5.294925859700419e-08 -16.756329185593128 -23.50521585601327 -27.528243905815643 +-21.075025102125345 -13.718586153821407 -1.3988497545583254e-05 -11.709266272521326 -12.529386473858226 -13.766722581923972 +-27.634706355513906 -21.874124581976798 -1.657531882392746e-07 -15.61830610541271 -21.04115430053987 -26.232027088847467 +-27.634706355513906 -26.678531447534027 -3.633198676396703e-08 -17.130127734577393 -22.910558344506946 -27.198052873069383 +-27.634706355513906 -17.603592839601486 -1.997448337371673e-07 -15.568467459377171 -19.362272736089643 -23.284251309922322 +-25.64643544000207 -15.42720187384475 -6.840742882217723e-07 -14.67482474661532 -16.7018470389174 -19.033586180484036 +-27.634706355513906 -24.139876428598846 -2.371096325717692e-08 -17.5545526160146 -24.148421241971107 -27.5643500196997 +-27.63470635419038 -15.34991203414103 -4.289621630769957e-07 -15.384897909464142 -19.06750042736857 -23.026581371611822 +-27.634706355513906 -22.144030610886496 -6.078019682751326e-08 -16.621219537926162 -22.306491970227796 -27.020185929820734 +-27.634706355513906 -22.88036059271166 -2.8414824149514273e-07 -15.092458638516757 -19.074810783030482 -23.2643399361896 +-27.634706355513906 -20.2119133184782 -2.4845581832299607e-07 -15.257595312348649 -18.41310719602524 -21.614301230593234 +-27.634706355513906 -24.933704297280812 -4.914746000209702e-08 -16.82752620025343 -23.36273877653973 -27.477034502742136 +-27.634706355513906 -24.874860396446724 -5.3082623360059315e-08 -16.750871764962785 -23.170548038274056 -27.491534589436842 +-27.634706355513906 -27.235618792508234 -1.4643327273676938e-07 -15.74081275521605 -21.0396012307404 -26.344690408207473 +-27.634706355513906 -14.944827156920557 -2.898733202536941e-05 -10.4664628449777 -15.490660471332333 -20.821737226492008 +-27.634706355513906 -19.063306711603214 -7.820932579993431e-06 -11.762524476627682 -17.52379514439458 -22.808039475221694 +-27.634706355513906 -21.354002925062392 -3.515374530425467e-05 -10.269214419080601 -14.583203284119636 -19.328826753692812 +-27.634706355513906 -12.672545549779196 -3.4874481146144965e-05 -10.386444352763702 -13.962915945171826 -17.42061742497902 +-17.998467905126017 -10.895564192600386 -5.9657532124471244e-05 -10.17320450374618 -12.855356841732265 -14.991667949929097 +-27.634706355513906 -12.861008877537953 -4.013349943396066e-05 -10.192842949923781 -16.14050826684333 -21.733671919057425 +-27.634706355513906 -25.162483281073918 -4.0068162822142075e-07 -14.730952329127676 -21.50100716234884 -26.551955297613056 +-27.634706355513906 -26.151163223681944 -2.442692229119612e-07 -15.228777585624998 -20.680074948006574 -25.83705394651624 +-27.634706355513906 -23.442261725247 -1.1221115656241785e-08 -18.301317821293317 -24.700998449369116 -27.59850461948437 +-27.634706355513906 -22.427162859453073 -2.3344719555748873e-08 -17.577029298235548 -23.811136791076446 -27.533672979589234 +-27.634706355513906 -23.28926161483978 -1.1865474081754534e-07 -15.948704550751666 -22.109471507308566 -27.020844164257333 +-27.634706355513906 -18.42883040460778 -4.1567240872794135e-07 -14.741968745786693 -18.444693477774774 -22.498381839765507 +-27.634706355513906 -24.514830578661503 -9.241842414497665e-08 -16.197630920293797 -22.48145035241052 -27.361708653396324 +-27.634706355513906 -26.264838042600502 -4.6605635858753395e-08 -16.881342180266522 -22.863376909620122 -27.326462096492573 +-27.634706355513906 -27.63288554516299 -1.7198544638802068e-07 -15.58355999385929 -20.35634079660546 -25.567272689701493 +-27.634706355513906 -25.500725981463628 -3.358583900647376e-08 -17.207950259621445 -23.224968172064113 -27.4128461431947 +-27.634706355513906 -26.279449989362863 -9.621088614876241e-08 -16.16210368953429 -21.168386159785513 -26.25575808270424 +-27.634706355513906 -18.92359347742364 -2.1924988555763432e-08 -17.95429568630259 -23.438845781569757 -27.370838322106604 +-27.634706355513906 -21.445487643945945 -5.451607366269701e-08 -16.74360161165641 -21.143171092630535 -25.757204817417517 +-27.634706355513906 -27.04975673460833 -1.6766665563737044e-08 -17.897691303749603 -24.3912584559557 -27.60012795400438 +-27.634706355513906 -22.76432440817883 -1.6563592783409478e-08 -17.91990058269234 -23.463209894118073 -27.295830845818976 +-27.634706355513906 -26.022165561577523 -1.183698140717005e-07 -15.963145997258863 -20.18457691715509 -24.473959564036882 +-27.634706355513906 -27.042790376640333 -2.018932619008846e-07 -15.425027733998729 -20.020816946505192 -24.589439724516676 +-27.634706355513906 -16.20989975492068 -3.249559115771362e-07 -15.278574250987258 -19.884740242686572 -24.587240004833294 +-27.634706355513906 -25.63441123273475 -1.298280512122027e-07 -15.861343896444877 -21.113711806662064 -26.291092136718945 +-27.634706355513906 -22.989873887168656 -4.460892534112648e-08 -16.925624347102435 -23.924763657776964 -27.581063999500426 +-27.634706355513906 -26.01405597182375 -1.3229479972192996e-06 -13.54267124103941 -18.49367232266216 -23.14007035356714 +-27.634706355513906 -27.519025860952585 -9.609214507296457e-07 -13.85957871515657 -19.307851061017423 -23.81829332582913 +-27.634706355513906 -26.735291481227183 -6.654580645468041e-07 -14.237210938725712 -18.48051883500083 -22.158786124554354 +-27.634706355513906 -20.1036608110672 -2.0491586270354e-08 -17.79328644952281 -24.01566958825681 -27.34645640410586 +-27.634706355513906 -26.91479272554984 -6.415356255040113e-09 -18.84585214007175 -25.543441999577972 -27.620277349947727 +-27.634706355513906 -23.119134111944902 -1.913484436558173e-07 -15.489490872428913 -19.376653046315425 -23.802892492109045 +-27.634706355513906 -25.420161088171273 -1.6994829274260172e-08 -17.884087415300918 -24.901621371052745 -27.615853400054522 +-27.634706355513906 -27.603001128363452 -1.8876443425762615e-07 -15.494750063975433 -19.865121680575733 -24.578796789539634 +-27.634706355513906 -27.066694555269564 -9.65327857419099e-09 -18.443693051145612 -25.298054258969984 -27.623191094157363 +-27.634706355513906 -24.82793736363043 -8.513278091209627e-09 -18.570442490429684 -24.688368150441853 -27.594660147291954 +-27.634706355513906 -27.420583249488175 -3.155267276142014e-08 -17.269305608399282 -23.582562176024553 -27.540085113182013 +-20.327067818990262 -15.033802588927632 -7.433188679659643e-07 -14.870748581398338 -16.30540981373116 -18.001767505648388 +-27.634706355513906 -16.870540762764232 -8.296979221196086e-08 -17.14626359136578 -22.27347883582746 -26.71284773219186 +-27.634706355513906 -25.203279285389296 -5.341605714307435e-08 -16.74551531974841 -22.697040377517844 -27.314913381976492 +-27.634706355513906 -19.991486352405655 -2.417619842215701e-07 -15.249889617450181 -20.289266270309437 -25.452417338903214 +-27.634706355513906 -26.726405102642676 -4.84449134210989e-07 -14.546055823931555 -19.652186931290608 -24.989221093780515 +-27.634706355513906 -11.613015725958112 -1.4556675073084577e-05 -12.112618962222108 -17.765065343063185 -23.22462913481279 +-27.634706355513906 -14.906876079733404 -2.3237696805288885e-05 -10.685407728325636 -17.48963675868405 -23.045403614577353 +-27.634706355513906 -10.28609913483247 -0.00024052386218227807 -8.497457064178825 -12.94748115304602 -17.608163985745016 +-27.634706355513906 -14.904980277998357 -3.748654826022407e-07 -17.070783877097906 -24.178816931980222 -27.59248668008637 +-27.634706355513906 -23.564954010527558 -3.1734097914646465e-08 -17.268615643377238 -22.561852764425918 -27.025216031099934 +-27.634706355513906 -19.790742903003206 -6.712415929812021e-08 -16.554353385904207 -23.392065957789537 -27.537361423497416 +-27.634706355513906 -14.874808882186953 -3.5629366383938575e-06 -12.654076442183047 -17.646937656031444 -22.47384779436268 +-27.610983232178075 -12.250925111839383 -8.384108740286838e-06 -12.561513820340156 -16.16054939596201 -19.514638727589553 +-27.634706355513906 -26.690872677341854 -8.629371250762525e-06 -11.664446581630846 -17.15960371857011 -22.470441144714187 +-27.63094128645542 -12.094748304157484 -2.7078785063699495e-05 -10.802173694502548 -13.729588032418258 -16.920327688652463 +-27.634706355513906 -22.069193249268352 -3.122095371989287e-06 -12.678788653719215 -19.03355068532212 -25.40190687713811 +-27.634706355513906 -19.558304768261248 -1.8613756088027617e-07 -15.517212512297442 -21.097588999843932 -26.37925185759018 +-27.634706355513906 -18.855762293117493 -8.168985744612048e-08 -16.411894199361114 -20.9529005383825 -25.09932138506332 +-27.634706355513906 -24.124480172997828 -5.741831552087679e-06 -12.069702359955075 -18.293014216082753 -24.572135299150425 +-8.645978277951247 -8.508331866025225 -0.0006435600954790239 -8.856952983585364 -9.45743691422503 -10.00340339966432 +-19.24104272297214 -10.29866847337443 -0.00016424813065918543 -9.11492345041162 -10.928544218964676 -12.859262488008111 +-27.634706355513906 -21.77301562228316 -3.625239390440715e-05 -10.235786741488024 -14.772592051691444 -19.36933533435595 +-27.634706355513906 -16.008573837655153 -8.075153402106802e-07 -14.17991075534088 -20.353252830912997 -25.146202330741712 +-27.634706355513906 -20.011978552750698 -1.778885482752625e-06 -13.243428175512161 -19.114695848153296 -24.202525943253292 +-27.634706355513906 -18.634826180997905 -2.514490381896555e-05 -10.62489707472655 -14.01570316046882 -18.03255948715396 +-27.634706355513906 -19.49613041131711 -7.732940033191982e-06 -11.782955932400524 -16.169269952622688 -20.667521565654212 +-27.634706355513906 -18.0762576854475 -5.73423271154886e-07 -14.398221095067981 -20.66757879872652 -26.353903950688267 +-27.634706355513906 -23.7186941869144 -1.2071743159603132e-06 -13.63099176950722 -19.197237966184716 -24.831631027956167 +-27.634706355513906 -21.128958299662663 -1.7341191955424832e-06 -13.278332218654064 -17.62910129999723 -21.79326756461269 +-27.634706355513906 -16.6930621225231 -3.4504547676675646e-06 -12.611631102912046 -16.621160347101416 -20.922838913519122 +-27.634706355513906 -18.832982304693836 -2.7111794324360224e-06 -12.830678811404736 -17.424901412999542 -22.08148140841198 +-27.634706355513906 -19.413578867176184 -6.310552027611632e-07 -14.283376583918196 -20.591344683955636 -26.28701146121851 +-27.634706355513906 -22.729870031902074 -7.529636520634117e-06 -11.805507108599926 -16.535571094115 -21.65916212572832 +-27.634706355513906 -19.792839055459616 -4.783649404648727e-07 -14.559533209257689 -20.998539118118607 -26.31333884870287 +-27.634706355513906 -20.110805310450502 -2.833899973742618e-07 -15.087336321702805 -20.422522805706972 -25.675210419986694 +-27.634706355513906 -15.8998931645093 -1.9158430360179858e-07 -16.51607315178985 -22.534384703507772 -27.192009962949925 +-27.634706355513906 -16.474500351350358 -2.026157501876244e-07 -15.84594346676554 -20.36069378168823 -25.0337789882842 +-27.634706355513906 -18.766600265545918 -4.724326114718252e-08 -17.033044286492956 -22.13558610411142 -26.671261791040532 +-27.634706355513906 -24.528482954617893 -9.820910224789583e-08 -16.152461668919457 -20.210973712643227 -24.289572267704475 +-27.634706355513906 -22.664146741083048 -4.0831592173606166e-08 -17.01449847445192 -24.865838866642072 -27.611970248039416 +-24.966839696386433 -16.278744999596285 -2.228451096655744e-06 -13.10394204149385 -16.21289015777947 -17.997479320469505 +-27.634706355513906 -17.65121605434761 -4.346250548939128e-06 -12.361468134511027 -16.937569202896146 -21.80725942487557 +-27.634706355513906 -19.854456815483797 -3.832572518397e-05 -10.177955625920593 -14.948264866331671 -20.14615647764407 +-18.38509529489511 -8.18986031637416 -0.0003020119893150412 -10.656752302512851 -13.89329305127907 -17.11204583128278 +-27.634706355513906 -16.38240097854621 -7.537885685082243e-06 -11.81420183473916 -16.598104438398757 -21.22535438429385 +-27.634706355513906 -19.61996461652936 -7.792093981263607e-06 -11.769773430464022 -16.733331204386154 -22.02344356294426 +-27.634706355513906 -23.586503844441054 -6.369126577077487e-07 -14.271347820077281 -19.60607077647167 -24.959505097854485 +-27.634706355513906 -17.449736566945727 -0.00013532628004473944 -8.932484375442602 -12.649513518346387 -16.7696151539443 +-27.634706355513906 -15.373108730961489 -3.329227624469225e-05 -10.319533922501002 -16.13655893863941 -21.306140593563487 +-27.634706355513906 -16.040820606905136 -0.00024707219880890443 -8.30940405967209 -14.115653436582845 -19.868671763276755 +-27.634706355513906 -14.06374428340803 -6.1404323300566765e-06 -12.142504727939372 -17.269588434258356 -21.246662338898197 +-27.634706355513906 -23.62332337478999 -1.2876445309083016e-05 -11.2760797871664 -15.421893756908071 -19.50761461075436 +-27.634706355513906 -17.549978766783052 -9.441611668026538e-06 -11.60984065134375 -14.920907155777043 -18.3810572326124 +-27.634706355513906 -17.23847871254643 -1.1719737064397855e-06 -13.687614144153526 -19.610974231189722 -25.043296664774832 +-27.634706355513906 -22.627884612777628 -1.4412821165891387e-05 -11.167128102345949 -15.093312645030732 -19.662254820122502 +-27.634706355513906 -20.63854364330464 -4.811682991211707e-07 -14.549741299096649 -21.813204008943487 -27.31712448344168 +-27.634706355513906 -22.72126721613879 -9.876476205002941e-07 -13.832550488702037 -19.21430404018065 -24.772607295269257 +-27.634706355513906 -16.690261061814166 -7.22375393496406e-08 -17.954873352548145 -25.903704396697556 -27.625193869907385 +-27.634706355513906 -25.09833328598298 -7.175299172420971e-07 -14.156998758417657 -18.793188287315633 -23.770844579431348 +-27.634706355513906 -21.730123696616452 -1.526934926651319e-06 -13.403866931247554 -17.876673868818845 -22.464565959767963 +-27.634706355513906 -20.53055859652326 -4.3539636824420675e-07 -14.651369379340556 -20.93395374209885 -26.236132764832334 +-27.634706355513906 -14.146445312685913 -1.4595487502184756e-06 -14.124123409694242 -18.791747872629735 -23.489170296770318 +-27.634706355513906 -25.749611408267395 -4.3396902745028105e-07 -14.656197892265082 -19.74367716295995 -24.771509792440117 +-27.634706355513906 -25.514712237323163 -1.948175503837553e-07 -15.452271595378155 -21.830303867644716 -27.122111312039873 +-27.634706355513906 -19.62027922376916 -2.7634172692119e-06 -12.807745223236878 -17.682640290440485 -22.675460187503965 +-18.974112529424627 -11.366802206602868 -3.532022993347857e-05 -10.849664567105622 -12.480381913232758 -14.452279761600437 +-27.634706355513906 -21.91881206299253 -4.412539594865041e-07 -14.636785740927328 -20.534438908545237 -25.931490794860288 +-27.582882144031895 -14.487887883974413 -8.504993859825996e-07 -14.915134304833265 -18.790753854587287 -22.173053994084093 +-27.634706355513906 -26.85393244371248 -8.5745515920146e-08 -16.272182953543652 -22.591007528873973 -27.258737477529685 +-27.634706355513906 -18.403789949182386 -4.516191960748787e-06 -12.312297178518625 -18.420002075064875 -24.480775294460802 +-27.634706355513906 -21.469467898889267 -1.2906466001560505e-05 -11.261390308552837 -16.897905556805153 -22.281908781714694 +-27.634705569668107 -14.805066428764205 -1.576025104428306e-05 -11.114803361781982 -14.564982234010701 -17.47899931297508 +-27.634706355513906 -18.43115360792506 -2.8931770995849383e-05 -10.489085613888266 -13.76068011921345 -17.442782172296816 +-27.634706355513906 -22.876378866371432 -1.27200682083047e-05 -11.283772537443676 -15.760377118891768 -20.220140511623885 +-27.634706355513906 -24.62110197612663 -5.325774533415181e-06 -12.14470896586184 -18.48030156928781 -24.475005304327514 +-27.634706355513906 -14.184968538086268 -2.3073365932738313e-06 -13.336190984334657 -20.40136235625679 -26.693319452590067 +-27.634706355513906 -17.428245855796433 -1.0307206688985064e-05 -11.488719512590547 -17.162552831827654 -22.961047698970646 +-27.634706355513906 -12.971343196215566 -3.0434364893220225e-06 -14.148018519257116 -21.64156268377497 -27.046885455295207 +-20.72874684243498 -11.335915772006901 -1.389223338174337e-05 -13.189292210098438 -16.33907116308681 -19.29968822966416 +-27.634706355513906 -23.922757278005164 -2.136112003852327e-06 -13.057818876519182 -19.679578857969947 -24.888825915173737 +-27.634706355513906 -17.16898033423633 -2.3707758007854402e-06 -12.970530162697363 -18.650993659434043 -23.419070456812314 +-27.634706355513906 -20.65935037474518 -4.036022123057352e-06 -12.422365370619668 -18.69940905010691 -24.8897724722249 +-27.634706355513906 -19.29806720408521 -4.3168928919173535e-06 -12.355844645618173 -18.604688831263402 -24.81603328275084 +-18.549533905230287 -7.79659144696031 -0.0004747128450585854 -9.730782577235306 -12.473912871488936 -15.39227258660424 +-27.634706355513906 -26.58269124315031 -3.4344752208715543e-06 -12.583258389273242 -18.992444642358727 -25.313785015485966 +-27.634706355513906 -24.95658918677501 -3.4871973325916846e-06 -12.570809006656917 -17.99250351062 -23.440124929676326 +-27.634706355513906 -15.701993527001129 -4.8314779739025135e-06 -12.277032799369563 -17.614701050088275 -22.924863171532834 +-27.634706355513906 -19.268676480959794 -1.5872550793159508e-05 -11.058803381844733 -15.939684786589957 -20.89714634700185 +-12.239799973748793 -7.867175829400516 -0.00044429726266233277 -9.890795152853658 -12.174261928410584 -14.615257262268548 +-27.634706355513906 -16.550789779561992 -3.775570521417127e-06 -12.506451430611731 -18.629837136373183 -24.69449274205416 +-27.634706355513906 -18.918026427148554 -4.85479609543227e-06 -12.23948615713846 -18.150319568281535 -23.990197324808683 +-27.634706355513906 -19.403036733862873 -2.9612616093845533e-06 -12.73191946700875 -19.860810129567344 -26.47509684993198 +-8.778656117712885 -9.23881871655205 -0.0002833370245948875 -10.639695502075982 -12.001568006901202 -13.103105703864957 +-27.634706355513906 -21.049390305676326 -8.28966482370394e-06 -11.702925977043979 -17.7577909553584 -23.718099022492627 +-27.634706355513906 -15.736209811875186 -2.8091071246228968e-05 -10.502244065882762 -14.582056235500952 -19.121001344892147 +-27.634706355513906 -20.99025528105765 -3.665044622990466e-06 -12.519620814541234 -18.407362785848104 -24.42530847821395 +-27.634706355513906 -17.856651929330518 -4.203455162026607e-06 -12.388823710968072 -17.67763853749703 -23.019961648052075 +-27.634706355513906 -24.705371946732892 -7.0024511530989254e-06 -11.874575783691286 -17.10929665267182 -22.504853731468888 +-27.634706355513906 -22.743915208778404 -2.3198881571813397e-06 -12.975456460069951 -19.503494645761734 -25.750387294407094 +-27.634706355513906 -16.332963432522405 -7.010638260765508e-06 -11.883826145067696 -17.361622894974538 -22.844325111186357 +-27.634706355513906 -21.93631966334108 -2.2013185621450706e-05 -10.737877164971682 -15.007615374248546 -19.922571225253094 +-27.634706355513906 -21.957936330220356 -2.3431464411021974e-06 -12.966207052083103 -19.123286674519996 -24.970147038178013 +-27.634706355513906 -22.47297110749053 -9.71555351108101e-07 -13.846339348991126 -20.098603186912282 -26.189412019039292 +-27.634706355513906 -24.229036673485215 -1.4009194482897594e-07 -15.782497026093727 -21.87930452063891 -27.066700066389156 +-27.634706355513906 -15.856394211985313 -3.025056369416302e-07 -15.573732992885875 -21.714524679614144 -26.948419235835605 +-27.634706355513906 -17.77287218732689 -2.4053500930239754e-05 -10.655716170075255 -14.590718344259706 -18.65989813730751 +-27.634706355513906 -13.003402286472586 -4.97604183959563e-05 -9.978751227402249 -13.707912229484558 -17.826505156850207 +-27.634706355513906 -17.263829382043458 -5.399286049124166e-06 -12.136501137155525 -18.728566680506226 -25.220801853795436 +-10.251008840967385 -9.373710826596529 -0.00022324955798698224 -9.694748445747802 -10.44845692394033 -11.299741692673031 +-27.63470635550078 -11.363290831614716 -0.00011238542933979739 -9.247986600234787 -12.350269939972646 -15.846500430180493 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_denoised_copy_ratio_t.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_denoised_copy_ratio_t.tsv index d9245516214..48c7ca4faac 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_denoised_copy_ratio_t.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_denoised_copy_ratio_t.tsv @@ -2,173 +2,173 @@ @CO dtype:float64 @RG ID:GATKCopyNumber SM:SAMPLE_000 VALUE_0 -1.938195794952936 -2.1048836194514284 -1.8405429122613182 -2.0997240647283677 -2.1553921704485353 -1.9228466416210988 -1.75524666077193 -1.8632760147242609 -1.9383100443355137 -1.8842552763179274 -3.6873758488813704 -2.077332105054551 -2.1401929818507304 -2.0978615092588044 -2.643543316661906 -1.9679395845549577 -2.010179145014825 -2.0515452094222013 -2.1702927404430086 -2.2799067031004703 -1.8576431291730509 -1.9835948825690852 -2.060690323518157 -1.9660848835375424 -2.0349035588961715 -2.313769952688598 -2.1225579035377447 -2.5063674346553118 -1.8261568856861363 -2.140991588503257 -2.183841901014578 -1.7528631020071177 -1.898190394128626 -1.948877605957697 -2.2871350383752915 -1.9172191739045679 -1.7617606206674592 -2.36603209649312 -2.0073916403181236 -1.9559702063329611 -1.7537707595764132 -2.036636094207308 -1.8788860999149484 -1.8485970450031164 -2.2653938292476963 -2.1497506284514207 -1.7815059831855382 -2.1227215396406782 -1.936982029285266 -2.2725527817983364 -2.6110224534347286 -2.6861166169995307 -1.7606626369881275 -2.0539846686155823 -2.3988949822322803 -1.877433291896725 -2.1940688306997758 -1.9547989975232922 -1.9577789577669353 -2.0034574768180184 -2.806441012536024 -1.8509824790669434 -1.857068155821777 -2.044192366643752 -2.3176397948963476 -1.58105333021275 -1.8102271088904975 -1.9531214043578693 -1.4684116645346 -1.8974066372349925 -1.6618957523108016 -2.0695247756209856 -2.1455524391649505 -2.4153099954206145 -2.309511518493685 -1.8673223081876726 -1.882331027791159 -1.7833049379113428 -2.1102861672434807 -4.547358743762208 -2.769273935062612 -2.4660788073233406 -1.7413515843439835 -1.841257825927285 -2.3888579164873476 -2.056316433768696 -1.912692288203774 -2.158965730037924 -2.0379716633228826 -2.1187019500550006 -1.9750391875321163 -1.7833380362460496 -2.384005451913788 -1.810998085632998 -2.0459913553342317 -1.6125154322108735 -1.911784551164123 -2.0613793859455605 -1.873657204427385 -1.8996257503129212 -2.899225723893377 -2.2266464263300714 -2.185420340030971 -1.8914411319929485 -1.7041995881621244 -1.8919621260306418 -1.9413275561436034 -2.2392323236066445 -2.001738501530395 -2.024794201603635 -1.842637676221146 -2.294972689722007 -2.3044795561675895 -1.9404240280532141 -2.3550259494410373 -1.7293950162185296 -2.169944555787839 -1.519004866765095 -2.130051165047805 -2.3436507462325884 -1.8410844357201308 -1.803373245089201 -2.152922453262299 -2.0268988801841514 -1.993606436607462 -2.6811973536266933 -2.086209952708284 -1.9737805672188165 -2.103099512405728 -1.8043928025594647 -2.411680045899616 -2.581995128034028 -2.522017102707722 -2.2847707478570425 -2.012644421747139 -1.5910493789374043 -2.1581934946153036 -1.8736951246597187 -1.8074371559981197 -2.0217145108805354 -2.1882123102015334 -1.9860289488676648 -1.7588707536198533 -2.0367725073004825 -2.0538184667021957 -2.1008372441369243 -2.003412861181724 -2.1764014045607616 -2.11666844414845 -1.698329700200312 -1.7727145550595413 -1.7575231136810097 -2.4993232858068355 -2.2314709430453923 -2.0625819294825596 -2.1100241529984842 -1.981287318210443 -2.1383104161101385 -1.9508669654778847 -1.9082438028984545 -2.2971967412573315 -1.8714019757892923 -2.0462140053096025 -1.9555580557487917 -1.7802021738665559 -2.0676133663400735 -2.253483181744958 -1.7630219987670266 -3.810781678930246 -2.130822086610058 +1.9076902939421871 +2.0695859296307817 +1.8284488023615117 +2.087377530729715 +2.0087296833839337 +1.9381062815039214 +1.9590449109179227 +1.8537280873297053 +1.733140777030525 +1.8428751574463014 +3.608984820395773 +2.0350865977302903 +1.9682865099681248 +2.1373031857487503 +2.723647795608313 +1.9150308142703982 +2.1338037289623086 +1.9903504812824842 +2.189267855650742 +2.1424508184250626 +1.9184950267311864 +1.9318064353304016 +2.0944122065569153 +2.0888306261368603 +1.990572412646708 +2.381673296662146 +2.1351446439513313 +2.645167344202378 +1.9095475999653877 +2.0221075618487707 +2.1959830379601732 +1.8108288352913997 +1.9025825972911738 +1.937315736971844 +2.303716606231353 +1.9469175387909132 +2.023654663337774 +2.341172391468572 +2.0394111505543755 +2.1617766706487394 +1.893890888430507 +2.1518741419707847 +2.002347376355717 +1.8424924764149149 +2.263452864264712 +2.0929091803053614 +1.9658098555089896 +2.1558039497609482 +1.8353497041776534 +2.2291478758487058 +2.4476101879116423 +2.5340825292577605 +1.6837436424320606 +1.9054456142554448 +2.2893858106530627 +1.9025376228418445 +2.2298426209790065 +1.9307662837355326 +1.8864255750305559 +2.094026593269264 +2.9676499792640936 +1.849024953841818 +1.990145761102567 +2.096477937414472 +2.171226525558227 +1.7278677862287104 +1.7951646364807239 +2.053868217772014 +1.6374049426182784 +1.9366421182442293 +1.7580156681122987 +2.0646844271760805 +2.1424682043676175 +2.1525101570428187 +2.358891137071942 +2.019440515509572 +1.901618313965771 +1.8130356478125593 +2.0141657234514634 +5.139077976120409 +2.925722422327345 +2.3481082696257713 +1.6345531694831104 +2.010557433460744 +2.448469511050623 +2.068205018785313 +1.8784841099710654 +2.090784785807955 +2.03560714065855 +2.227283834298111 +2.041277068190012 +1.8389798374884792 +2.181381723689309 +1.9676119776773502 +2.0648122269564966 +1.7276280873302527 +2.0357540543194172 +1.919092374154494 +2.0475746134882344 +1.9165396351135366 +3.0599067242569564 +2.2573296824016196 +2.149845658414068 +1.937182207642075 +1.8797498281573284 +2.145190989298151 +2.199852419019603 +2.208550799464938 +1.8635919091103315 +1.913948383805254 +2.086994976738677 +2.1860350119190852 +2.2138284917307365 +1.9449418421854703 +2.3515989385225726 +1.8261442729784558 +2.0773397075474884 +1.6546158082305926 +2.197374149641466 +2.1133710507210877 +1.9928096834920297 +1.9276996341230017 +2.082823762729177 +1.9753841572667874 +2.0922047080703945 +2.9097505201202014 +2.1080368092425004 +2.14728185449248 +1.969185583809893 +1.9082185177100077 +2.1493290933404237 +2.549810888830192 +2.5611451275918786 +2.3146247866415854 +2.071231635326651 +1.7419542561927643 +1.9544452005575403 +1.8334903390291024 +2.1250294054000722 +2.0300215174522407 +2.070944370318852 +1.935056964773027 +1.9435033531801533 +2.0686306639690515 +2.070833210556204 +2.050610876342862 +1.8505913829634248 +1.9977854773213095 +2.2046446511172046 +1.8718952160127031 +1.885633441553047 +1.8604041613925042 +2.660499783384358 +2.0792549894789283 +2.222475526081344 +2.027587792699614 +1.9898954280581176 +2.1318091812679807 +1.9289443073072094 +1.931382538897172 +2.3837851136927912 +1.9540033677665218 +2.0024750195304826 +1.9444549679978715 +1.7789938347962577 +2.0712689768608197 +2.1731286040778595 +1.9044086600458157 +4.015986547461121 +2.2926936320638256 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_psi_s_log__.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_psi_s_log__.tsv index bcda9980403..72787e6d1c2 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_psi_s_log__.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_psi_s_log__.tsv @@ -2,4 +2,4 @@ @CO dtype:float64 @RG ID:GATKCopyNumber SM:SAMPLE_000 VALUE_0 --3.538641261098718 +-4.115896030605331 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_read_depth_s_log__.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_read_depth_s_log__.tsv index c96a77a10a3..ccc7fb7cf62 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_read_depth_s_log__.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_read_depth_s_log__.tsv @@ -2,4 +2,4 @@ @CO dtype:float64 @RG ID:GATKCopyNumber SM:SAMPLE_000 VALUE_0 -6.046959920320962 +6.040779074567946 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_z_su.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_z_su.tsv index 3d86b49fe40..37c432d9947 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_z_su.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/mu_z_su.tsv @@ -2,9 +2,9 @@ @CO dtype:float64 @RG ID:GATKCopyNumber SM:SAMPLE_000 VALUE_0 --0.012115853878657032 --1.0135477723806217 -0.8780923681315713 -1.750551551168998 --0.6475298304403772 -0.13033304429958514 +-2.053186822108883 +-0.27155276025900343 +-0.33779550124699503 +0.0020682680646162436 +0.5308094576020672 +-0.7951313743446329 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_denoised_copy_ratio_t.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_denoised_copy_ratio_t.tsv index 702e2774363..276934a687e 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_denoised_copy_ratio_t.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_denoised_copy_ratio_t.tsv @@ -2,173 +2,173 @@ @CO dtype:float64 @RG ID:GATKCopyNumber SM:SAMPLE_000 VALUE_0 -0.35676082648741175 -0.34402859005051317 -0.3470647885008761 -0.404464047463586 -0.35673302506773813 -0.28819109468380133 -0.2768214842534659 -0.3218643171948218 -0.4566132252978298 -0.34157224618667303 -0.8502589001099329 -0.4037841365683954 -0.3970514119661808 -0.4050291550657542 -0.538959929522929 -0.3680256355553797 -0.4136036913002147 -0.35355656254854007 -0.417033125743629 -0.5437461540813695 -0.3391853613789528 -0.3436576302845641 -0.3410974487522541 -0.32044325331915396 -0.3847855267195515 -0.3954725677222862 -0.4953617663689878 -0.5293913477072131 -0.3359441657159409 -0.41096958399195166 -0.3003456693770497 -0.31821982450184005 -0.32751119949842367 -0.3311164031538617 -0.4111851522061698 -0.3187210967825235 -0.31466552053247376 -0.3745349907731219 -0.35456121832537324 -0.34527824983333666 -0.30568012639332565 -0.35106466542407455 -0.2918829371798508 -0.4087026734557547 -0.43783671003967223 -0.4242013452705209 -0.3567821916014614 -0.29620463553269566 -0.35486528747922036 -0.40032206424476335 -0.40987741313587356 -0.49193253332154846 -0.3552084515190098 -0.34438273668400343 -0.39428564809598377 -0.30812991584767657 -0.4378304720583256 -0.325367247236691 -0.36585549807398976 -0.30968204514359937 -0.6391334929226637 -0.30801711176163743 -0.31246363259144044 -0.32193701245845147 -0.4191880371486062 -0.27504816822700767 -0.3088269262093584 -0.3799598873900701 -0.27526309738241816 -0.3345403430222332 -0.3054056357833949 -0.3550361630221116 -0.3997273634253811 -0.46031584942439246 -0.40628874774638196 -0.29605966015768564 -0.35580746946027597 -0.3909936246241103 -0.3600356948987248 -1.003447612661871 -0.5448200362033521 -0.4487633650164724 -0.38569477300316724 -0.3751151883236858 -0.40359589021281606 -0.3723873657574889 -0.2928966778728621 -0.35615462500873946 -0.4205334464582104 -0.4020700838199034 -0.3619025397607522 -0.34384118959570004 -0.38945076828267483 -0.3210971973367387 -0.3915215733775214 -0.3038608919358574 -0.35593459250897286 -0.38867003362936753 -0.36421168828476763 -0.30685781220158975 -0.6452793865930938 -0.33357333854743587 -0.32329243364263344 -0.4017456510726739 -0.3861266315590922 -0.3247519896949844 -0.2956805565269558 -0.40925540212850203 -0.400778343711791 -0.3531636446508765 -0.3816728837227612 -0.4697388445092258 -0.48905669025936155 -0.3574598215874083 -0.38501457274889633 -0.29457343514471507 -0.34406000532038894 -0.23974374248072616 -0.3621724595640263 -0.4151102336101641 -0.3115355509602344 -0.3199729023054563 -0.4775746669171998 -0.34904691333933996 -0.35615198487135113 -0.4713550691419516 -0.32302540400402735 -0.3799585969885941 -0.3864166580665233 -0.2925324664825991 -0.4266296048807575 -0.554965752590992 -0.43342667300469223 -0.4189919754400696 -0.37177727614934347 -0.2655273120830455 -0.348733473929505 -0.33349648657491243 -0.3368164905302528 -0.343697192814395 -0.37853417968162456 -0.3499336722235412 -0.267099305633804 -0.45633115889514014 -0.33864943478745224 -0.4073825760662966 -0.34616725711867247 -0.39836532740628827 -0.43763453594094875 -0.290547608395029 -0.33623313911479347 -0.2926574817880619 -0.45834923284415485 -0.37157886569999166 -0.4060164144072639 -0.3407431814127573 -0.3309776469248096 -0.40963457117902596 -0.3052492016232938 -0.3127583254631216 -0.42505881440779614 -0.32243617098315414 -0.32509974113587703 -0.3672111799944095 -0.28228502081883744 -0.4376204997686252 -0.42962384412595517 -0.2946300879024689 -0.7478480214622951 -0.39331656941159554 +0.2705990727306969 +0.31126506958012357 +0.2461697551374856 +0.321491075463354 +0.24840601839398205 +0.2912047347141038 +0.2555397118614057 +0.25794382810838984 +0.33695962851553335 +0.2901225341854762 +0.6294083446271215 +0.27635224333407143 +0.2877682095749016 +0.3222270810667817 +0.3555084712724123 +0.30488939582098123 +0.2982885755090191 +0.24916703323558062 +0.3498005101002937 +0.37221509581676987 +0.2801253397415932 +0.2883260623599203 +0.2800849420639678 +0.2597564096980997 +0.29008801703322146 +0.32918486432315397 +0.36614654157168164 +0.3967461532917127 +0.266639107663662 +0.3208808997450624 +0.30014354111621927 +0.2654015729796243 +0.276687589243671 +0.2773087959148437 +0.32945101071176547 +0.24256223310831074 +0.25518779577551276 +0.27620696799186273 +0.3063347717186895 +0.3288646586029316 +0.26609753871429886 +0.28652027585689993 +0.27679941128064556 +0.32143313648842536 +0.3529669154491846 +0.3352284474143061 +0.2915947117805453 +0.2474767263699245 +0.24818190769248227 +0.35152413915636727 +0.32061125730546675 +0.33812425686368053 +0.2709326414040283 +0.29934281885234104 +0.2959768095350867 +0.26259570412891803 +0.333622405326206 +0.21747783473634882 +0.26205317199956824 +0.2881952190629078 +0.4714267224987967 +0.2668749302944371 +0.27206621187614477 +0.25771253049091075 +0.30697873318790564 +0.24844247680065287 +0.27168319422171583 +0.268149783360935 +0.20569073228847198 +0.2984957398105385 +0.23083103128117363 +0.30145429138808316 +0.3325664713252511 +0.32220653405303185 +0.33788044022243696 +0.27646313955817303 +0.2500224594150817 +0.31668997706480123 +0.28350878038028116 +0.9470233050373078 +0.48547831125037055 +0.37263747788801066 +0.29453857405150624 +0.3175478437289625 +0.3318113377926021 +0.3178413435614627 +0.21277420705034392 +0.26904965027099015 +0.32911647884565315 +0.31666651493995335 +0.32439889010349243 +0.2772795646319556 +0.2957419531606033 +0.24839676190786542 +0.26219483610148137 +0.26829061705042484 +0.273047238882626 +0.3085241834698721 +0.33503796835603933 +0.22709741135479794 +0.5082235623660091 +0.27699133896890804 +0.278047755593756 +0.3089038572133171 +0.3485451758204834 +0.30025675990048784 +0.2825341011027448 +0.35320432319596096 +0.29790334194223317 +0.24158189591706553 +0.36460156258225396 +0.38648953138631265 +0.4286329488124064 +0.26163191551292886 +0.2989410672029241 +0.21792801655034957 +0.2507488664936705 +0.229283681602582 +0.28748854662713846 +0.31712774913988284 +0.24624769982529815 +0.27529652941463173 +0.34159476307944864 +0.2855263363129453 +0.3041593549428853 +0.4710033193628414 +0.2827995443535734 +0.331648638359557 +0.3032092964101451 +0.25670790362389584 +0.28100980551931576 +0.39038257465912746 +0.37264588195126447 +0.38744890228767903 +0.29026110065450117 +0.24291467701039615 +0.2906127525123466 +0.23557634427299473 +0.32871953244459856 +0.29851864822644264 +0.2921502390292671 +0.2643240052044306 +0.25973006587944575 +0.35716966405447775 +0.2690896237272922 +0.3101609100198319 +0.25210101772252 +0.31555800089777025 +0.33767907177649886 +0.24696819846452356 +0.24648591139891013 +0.2540669176573066 +0.4052443013522526 +0.2742808588564273 +0.3344883982781669 +0.2787913700146262 +0.2746187280605595 +0.3090697830503116 +0.25334489152548734 +0.25184011088245944 +0.34353619482192504 +0.2610800052925577 +0.22839912434367227 +0.23620921717484936 +0.23473000517846238 +0.3393417023786324 +0.3356630037770536 +0.2583396418721628 +0.6325770467065485 +0.36243332284044205 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_psi_s_log__.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_psi_s_log__.tsv index 0a3c37391d5..1cad5dc6bcf 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_psi_s_log__.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_psi_s_log__.tsv @@ -2,4 +2,4 @@ @CO dtype:float64 @RG ID:GATKCopyNumber SM:SAMPLE_000 VALUE_0 -0.13269916055190087 +0.15238544640390225 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_read_depth_s_log__.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_read_depth_s_log__.tsv index 609a876003f..fc490df2b21 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_read_depth_s_log__.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_read_depth_s_log__.tsv @@ -2,4 +2,4 @@ @CO dtype:float64 @RG ID:GATKCopyNumber SM:SAMPLE_000 VALUE_0 -0.00886525733916229 +0.007974686289217315 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_z_su.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_z_su.tsv index 9adbd00547b..c765eb30454 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_z_su.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/SAMPLE_0/std_z_su.tsv @@ -2,9 +2,9 @@ @CO dtype:float64 @RG ID:GATKCopyNumber SM:SAMPLE_000 VALUE_0 -0.08666609905783836 -0.019104038538349806 -0.019352207566272466 -0.024772482294391822 -0.0199147773041517 -0.029881461734426608 +0.016402742030811372 +0.014263295035367513 +0.023064620931183673 +0.06592055351603773 +0.01586964248482667 +0.015457815474999846 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/gcnvkernel_version.json b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/gcnvkernel_version.json index ee711a11f0d..50d31529539 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/gcnvkernel_version.json +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-calls/gcnvkernel_version.json @@ -1,3 +1,3 @@ { - "version": "0.8" + "version": "0.9" } diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/gcnvkernel_version.json b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/gcnvkernel_version.json index ee711a11f0d..50d31529539 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/gcnvkernel_version.json +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/gcnvkernel_version.json @@ -1,3 +1,3 @@ { - "version": "0.8" + "version": "0.9" } diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/log_q_tau_tk.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/log_q_tau_tk.tsv index 92faf78e653..0756b14aa1a 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/log_q_tau_tk.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/log_q_tau_tk.tsv @@ -1,173 +1,173 @@ @CO shape:(170, 2) @CO dtype:float64 VALUE_0 VALUE_1 --9.313222415485711e-11 -23.097000166001383 --9.313222415485711e-11 -23.097000166052595 --9.313222415485711e-11 -23.097000160963137 --9.313222415485711e-11 -23.097000428866302 --0.0005098506463667163 -7.581647639882051 --6.457488015809698e-06 -11.950273395233049 --0.0007316526827102487 -7.220570437808737 --5.3404393589029375e-06 -12.140205302403109 --1.8355094547783946e-05 -10.905612567747532 --0.00030351743841222634 -8.100223246265807 --8.874950082932154e-05 -9.329737128513111 --0.00014621621019650366 -8.830497247161098 --0.00022113797789918843 -8.416834283814076 --0.000272022189643395 -8.209762923449361 --0.0002982189970393567 -8.117831557755276 --0.00035376024641137205 -7.9470680191806276 --0.00037050422601914157 -7.900830953380472 --0.0004946810970354321 -7.611844581804981 --0.0009389611239424833 -6.9712059250125495 --0.002131371356011602 -6.152055173708385 --0.003812896220307449 -5.571272058168099 --0.019040882328376252 -3.9706722446590605 --0.07987831027955472 -2.5669242371491183 --2.8104838988720227 -0.06206251304331489 --6.371716321357171 -0.0017106855189274461 --6.234490649471628 -0.001962552152999897 --8.242548304939511 -0.00026324729453780504 --5.4976344494620415 -0.00410486378372199 --5.426872977935238 -0.004406517746340155 --0.01002182655940237 -4.6079966369883865 --0.0033488038150431554 -5.70082600168449 --0.0013687954955753368 -6.59450844584951 --0.00134369828924491 -6.61300132317786 --0.00013684479293396556 -8.896731594342942 --0.0003274630192600103 -8.024299154565657 --0.0001239984324645227 -8.995303632449993 --0.00017564098585476362 -8.647156318604436 --0.00023103734678031618 -8.373046702601421 --0.0002731038841221056 -8.20579485612574 --0.0002711243446222311 -8.21306856516213 --0.0002790128580662521 -8.184392194121656 --0.00029759867546741425 -8.11991350133498 --0.0003289837906014226 -8.01966656443378 --0.0003173308690033183 -8.055724238849436 --0.0003750504096738938 -7.88863763463569 --0.0004525912616781813 -7.700747418946821 --0.0003697854762149677 -7.902772401495417 --0.00039776216223180727 -7.829855188143611 --0.0008082965274312515 -7.120985698396291 --7.163591804582037e-06 -11.846502634575032 --0.0001094735534429847 -9.119882295105329 --0.00017343168016686894 -8.659813525025527 --0.0002321034183424553 -8.36844356635092 --0.0002875217262497398 -8.154355888438873 --0.0003449620123829322 -7.972248732067052 --0.0002639455970475657 -8.239899517691569 --0.00033693134488410603 -7.995799833652691 --0.0003805347725939767 -7.87412325957907 --0.0005298294534094583 -7.54322029225222 --0.0007645602825134268 -7.176591939280853 --0.0012049805028286897 -6.7218943221527105 --0.002034167453702107 -6.198685568775535 --0.004005915950393124 -5.521985312226641 --0.013211094647170518 -4.333296573966276 --0.05572840857555733 -2.915000039105821 --1.7272444961639701 -0.19573948572367106 --5.960661487746058 -0.0025815352527924773 --1.418375667315289 -0.2772130113752697 --9.528983158091364e-11 -23.074086712303483 --0.0008027925192143903 -7.127815628855798 --0.0021906483539849697 -6.12465285113768 --1.583316255882039e-10 -22.566496244177664 --0.0008980754136189151 -7.015705517763543 --7.804271687228415e-07 -14.063424810606147 --0.00045118512476421957 -7.70385841052193 --8.275629111431648e-07 -14.004781128618468 --0.07607995025589015 -2.6137693280601724 --0.5473580856098877 -0.8638787478313273 --5.551082972421855 -0.003890808903046661 --9.519837612499652 -7.338427221598165e-05 --11.647797845684035 -8.738312389067193e-06 --14.528468349378803 -4.90192271385137e-07 --12.056556006897472 -5.8063808390795835e-06 --6.865994582631404 -0.001043188872530798 --6.484345440039179 -0.001528327354898329 --6.457855301289336 -0.0015693861696216005 --9.562361568097048 -7.03289945729324e-05 --7.2607730999774445 -0.0007028115870686968 --7.086647462982928 -0.0008365458567960449 --7.233920863713012 -0.0007219462178756353 --8.699480357778453 -0.00016668628991339807 --5.268629377826836 -0.005163975754764516 --4.812154103774813 -0.00816355860686313 --1.2209695992672163 -0.349478118612349 --0.7748049366959329 -0.6176569541826005 --0.42774341974344965 -1.0554915315331368 --0.14659526194180428 -1.9924821771737065 --0.11130311400389215 -2.250633470267956 --0.09390278609996905 -2.4120792367741415 --0.0857691989416679 -2.4986734270801336 --0.08235512888812874 -2.537609524496991 --0.08110638336965531 -2.552272724247453 --9.313222415485711e-11 -23.097000367651468 --5.129039617524089e-06 -12.180594693434317 --9.313222415485711e-11 -23.09700035069096 --9.78062325740492e-07 -13.837692909713196 --0.0010599039366044338 -6.850106905974499 --3.254062148093526 -0.03938242778977685 --5.300609193539934 -0.005001038358264653 --5.195268297436974 -0.005558146935942032 --0.010197568610397778 -4.590700410009549 --0.22081545053204538 -1.6188048976353555 --0.0003069225875234616 -8.089068457415971 --3.0325792373608884e-05 -10.403527137070926 --3.761169372312745e-05 -10.18821435806231 --8.136990038781766e-05 -9.416545812231861 --6.054561191293217e-08 -16.61986867613431 --0.0007315118573726909 -7.220762861591745 --0.001387700351318355 -6.58080109535661 --1.844602318112898e-07 -15.50583209467419 --0.00047459576800962244 -7.653284419469466 --4.061673839245161e-05 -10.111350609102317 --9.961342241820992e-05 -9.214263445632964 --0.00044764896585741676 -7.711725007206962 --0.00046576653025504067 -7.672058931646477 --0.015685261591767863 -4.162866139322184 --0.0009549180176692262 -6.954362487556239 --0.003412762747151632 -5.6819390220210595 --0.025781920499282074 -3.6709450528016925 --0.5738856581510796 -0.8285827023562873 --9.313222415485711e-11 -23.097000465277006 --0.0004342885429332033 -7.74201853569479 --4.847236117783149e-05 -9.934541031002048 --5.7355824858940085e-05 -9.766264830422731 --0.0009001033163573702 -7.013451023156293 --9.313222415485711e-11 -23.097000166516363 --9.313222415485711e-11 -23.09700025183503 --1.4413693960602103e-08 -18.05508675296669 --0.00024135413620002266 -8.3293659328401 --9.313222415485711e-11 -23.096998995714003 --0.0012920331104457894 -6.652184193674961 --9.824813185232983e-11 -23.043316325306645 --0.0002703324872500579 -8.21599308555929 --9.313222415485711e-11 -23.096996814893863 --9.313222415485711e-11 -23.09699989642252 --0.0004447690580382524 -7.718177757527272 --3.0726816296899884e-07 -14.995545137213904 --8.821203155151558e-07 -13.940937802646815 --0.00015431487578426717 -8.776592551441663 --9.313222415485711e-11 -23.096999731864887 --3.6685723941998205e-07 -14.818293244985929 --9.313222415485711e-11 -23.096999901126843 --9.313222415485711e-11 -23.097000338881738 --0.001054584928357638 -6.855135268404066 --7.794733120070063e-08 -16.367232685641707 --3.101095769064699e-09 -19.591509049349778 --0.000217800925874867 -8.432037994996142 --9.466699646409893e-11 -23.080475145274544 --0.00037162637520038455 -7.8978073836333 --9.330275441143954e-11 -23.09517787334063 --1.5822521232111697e-07 -15.659246516869326 --7.008633912292117e-05 -9.565817702737778 --7.036824939965491e-07 -14.166938930918326 --0.00013269917013936094 -8.92749221901212 --0.0011768094302827548 -6.7455367222364915 --0.00012900814040350816 -8.955699555085205 --3.943321780219833e-10 -21.653826796016787 --9.313222415485711e-11 -23.09687322116433 --0.0007759442750869261 -7.161817797876291 --9.313222415485711e-11 -23.097000162153737 +1.2751249228764086e-10 -25.869583314438515 +1.2751249228764086e-10 -25.86958331968553 +1.2751249228764086e-10 -25.86958322478665 +1.2751249228764086e-10 -25.869587522527272 +-0.0005098325692569155 -7.581682825544091 +-6.457268415035966e-06 -11.950286752912493 +-0.0007316493830229004 -7.220574763788338 +-5.3402220434122795e-06 -12.14022102567656 +-1.835408753387554e-05 -10.905660166266198 +-0.000303518396117594 -8.100219652090445 +-8.874655987207425e-05 -9.32976876280535 +-0.00014621344175897724 -8.83051526777507 +-0.00022113469257185327 -8.416848535799678 +-0.0002720184334810777 -8.209776239777586 +-0.0002982147139893393 -8.117845470714588 +-0.0003537551030664083 -7.947082178889844 +-0.00037049735441858374 -7.900849136785219 +-0.0004946685288397902 -7.611869712866595 +-0.0009389346269596077 -6.971233989518316 +-0.0021313050866809255 -6.15208617079077 +-0.003812778672970157 -5.571302793743919 +-0.01904033222889506 -3.970700854272298 +-0.07987621665907184 -2.566949413004938 +-2.810100648811629 -0.06208705696936387 +-6.3638534162330425 -0.0017242010124537501 +-6.224587134049416 -0.0019821041173095732 +-8.238322971551375 -0.0002643619693377389 +-5.474967740106805 -0.00419916777242648 +-5.407255320857472 -0.004494013121055126 +-0.010023347261040072 -4.607845655242552 +-0.003349284165177933 -5.700682772813398 +-0.0013689604641816727 -6.594387917126954 +-0.001343826767706119 -6.61290567712612 +-0.0001368456663340483 -8.896724237905557 +-0.0003274622656968623 -8.024301048185189 +-0.00012399584528850202 -8.995323420495964 +-0.00017563862582043726 -8.64716899493878 +-0.0002310341687316669 -8.37305987956743 +-0.00027310069473846784 -8.205806044470537 +-0.00027112127395618465 -8.213079397585432 +-0.0002790098330141627 -8.184402556699132 +-0.00029759574185268253 -8.119922909501236 +-0.00032898097687845404 -8.019674710570824 +-0.0003173283604381377 -8.05573172261243 +-0.00037504814415829365 -7.88864331840161 +-0.000452588453865152 -7.700753326790055 +-0.00036978058085363765 -7.90278527686205 +-0.00039775766786193936 -7.829866149777475 +-0.000808291263007474 -7.120992043742005 +-7.160642269196655e-06 -11.846895841178645 +-0.00010946867553669194 -9.11992563371661 +-0.00017342676880234 -8.659841072821777 +-0.0002321000935042256 -8.368457315158837 +-0.00028751969631119763 -8.154362483774404 +-0.00034496178706373295 -7.972248998504997 +-0.00026395431419041533 -8.239865991191406 +-0.00033695005072554646 -7.995743930527681 +-0.0003805890776513822 -7.873980239340738 +-0.0005299367651259274 -7.543017574659269 +-0.0007647592386855341 -7.176331675158233 +-0.0012053641751710513 -6.7215760485024845 +-0.002034901174726187 -6.198325236511284 +-0.004007504840937594 -5.521589515418745 +-0.013216862881122024 -4.332862916428582 +-0.05575377945687921 -2.914557448452038 +-1.7293742141266186 -0.19527961493034593 +-5.980721868478928 -0.0025301995946313918 +-1.4371772488578756 -0.27128063631461075 +1.253531085047453e-10 -25.552948742698888 +-0.0008028029631013758 -7.127802458557007 +-0.002190657941185511 -6.124648418589055 +6.236993427315488e-11 -23.368528180857545 +-0.0008980283089992743 -7.015757797678286 +-7.799128116186571e-07 -14.063913140168914 +-0.0004511148386111085 -7.704013873136082 +-8.273216230508246e-07 -14.004911568486191 +-0.07608072855051025 -2.6137594805483007 +-0.5473592385944049 -0.8638771652251216 +-5.5509485905518785 -0.0038913326772018622 +-9.519520340319499 -7.34074261824004e-05 +-11.647827684454276 -8.737918341947566e-06 +-14.529867702742758 -4.893734986771291e-07 +-12.05669135382964 -5.80546164325729e-06 +-6.865987772864012 -0.0010431958466540878 +-6.484333432323714 -0.0015283455872217712 +-6.4578752180536245 -0.0015693547547757194 +-9.562259718012822 -7.033602484780286e-05 +-7.26065423716716 -0.0007028950261615051 +-7.0865124902317165 -0.0008366586891170929 +-7.233768508374481 -0.0007220561249114486 +-8.699295696000647 -0.0001667169425345733 +-5.268546885868381 -0.005164402726709429 +-4.8120996242643335 -0.008164005051699081 +-1.2211289168630026 -0.34941147907548786 +-0.7749528060552658 -0.6175306054197223 +-0.4278826019976933 -1.0552308410281421 +-0.1466205126179822 -1.9923222604216462 +-0.11132077511224168 -2.2504834725745506 +-0.09391674437259802 -2.4119374702604293 +-0.08578130971802025 -2.498538202328578 +-0.08236629196216533 -2.5374794889128656 +-0.081116971524255 -2.5521474070719568 +1.2751249228764086e-10 -25.869586543958018 +-5.136137303026421e-06 -12.17918587141472 +1.2751249228764086e-10 -25.86958630310926 +-9.799135216120297e-07 -13.835665964285305 +-0.0010596424873707323 -6.850353352382206 +-3.2480118898330717 -0.03962622200703001 +-5.251115302328984 -0.00525545470020316 +-5.126834241687191 -0.00595300444264449 +-0.010204928294442932 -4.589982621087674 +-0.2208378880419034 -1.6187140962680018 +-0.00031873576252318295 -8.051307074366477 +-3.040086773203942e-05 -10.401050221280808 +-3.760934551972619e-05 -10.188273246921614 +-8.137015216753415e-05 -9.416541079237957 +-6.032357553192832e-08 -16.6213346140552 +-0.0007315127617965682 -7.220761443320822 +-0.0013876998847022841 -6.580801335224843 +-1.842326681849579e-07 -15.506343020559388 +-0.0004745978932048728 -7.653279661600486 +-4.061604971168084e-05 -10.1113642813564 +-9.961190639935212e-05 -9.214277325137296 +-0.0004476489044262868 -7.711724846457619 +-0.0004657498083364202 -7.672094539478206 +-0.01568447640349747 -4.162915799423139 +-0.0009543790191161746 -6.954926682522086 +-0.0034109063952564313 -5.682482147218125 +-0.025767069370408593 -3.671513848666593 +-0.5734485788616481 -0.8291468475921676 +1.2751249228764086e-10 -25.869588105311255 +-0.00043422749053829426 -7.742158788208813 +-4.8468263243958496e-05 -9.934622823589734 +-5.735186251349661e-05 -9.766331589752166 +-0.0009000389904560508 -7.013522310387293 +1.2751249228764086e-10 -25.869583327160303 +1.2751249228764086e-10 -25.869584695070646 +-1.422067003869977e-08 -18.059238150202393 +-0.0002419028656172638 -8.327094691798997 +1.2751249228764086e-10 -25.869564596995254 +-0.0012919537730138968 -6.652245457743921 +1.2239658459016814e-10 -25.23766195583235 +-0.0002080617246462713 -8.477779157371332 +1.2751249228764086e-10 -25.86952946069207 +1.2751249228764086e-10 -25.86957900435307 +-0.0004447531644075712 -7.71821318492832 +-3.069717037867406e-07 -14.996076103661743 +-8.550904375215669e-07 -13.971903098109497 +-0.00015506382946866055 -8.771750393795038 +1.2751249228764086e-10 -25.869576371460735 +-3.6666158993164616e-07 -14.818463078969772 +1.2751249228764086e-10 -25.86957907936496 +1.2751249228764086e-10 -25.869586083721394 +-0.001054383018537397 -6.855326518329722 +-7.772668715039155e-08 -16.368353151180436 +-2.8803394752082206e-09 -19.620106335769012 +-0.00021778871748885144 -8.432093431169864 +1.2597771997839905e-10 -25.633413017707156 +-0.0003716518275159809 -7.897738550789723 +1.2734196203105844e-10 -25.840821513162556 +-1.5799879078121022e-07 -15.659835058998237 +-7.008505236034406e-05 -9.565834159835104 +-7.034393744803069e-07 -14.167094957198131 +-0.00013277718431819907 -8.92690352418895 +-0.0011762612843955738 -6.746002233144952 +-5.742017236910619e-05 -9.765141269244648 +-2.0992025612008613e-10 -21.79255228942064 +1.2751249228764086e-10 -25.86755425146118 +-0.0007759459651548528 -7.161815448738218 +1.2751249228764086e-10 -25.869583254817012 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_W_tu.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_W_tu.tsv index e00baf31de2..31b343fc1d4 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_W_tu.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_W_tu.tsv @@ -1,173 +1,173 @@ @CO shape:(170, 6) @CO dtype:float64 VALUE_0 VALUE_1 VALUE_2 VALUE_3 VALUE_4 VALUE_5 -0.026753700256980092 -0.4006105617803221 1.5199961373482915 -0.779905267815817 -0.5153844356567848 -0.9451118147201304 -0.015150016011497324 -1.8268418099390387 0.07982225054380333 -0.045688588920964224 1.2604554764051241 0.30051602599626903 -0.027967928165796515 -2.090194777388886 -0.9994619077127309 0.28307251584941956 2.0761753596131234 -0.4084505317477433 --0.03959736621107168 0.9912404466926816 -1.5069239392940539 -1.0684408035600959 0.08540542245674006 0.23667850300092294 --0.024994664209567526 -1.0327974353927525 0.5272267793742328 -0.759711638864002 0.2854513598629829 0.48249713225011875 -0.003910301242450976 -1.0449264516399535 -0.31349582903932816 -0.41215350825330743 0.6758833658908996 -0.3041000101356333 --0.011371707224425851 0.19067369755332939 0.7028809078994872 -1.0257124771944075 -0.757460915369234 0.28005807304290337 -0.025732658322893218 -1.250548241990817 0.3745099593042352 -0.43744338258856513 0.18108572326610067 -0.9002777748059813 -0.010668761832253945 -1.1726824857719576 0.9355728100051601 -0.49657824304655707 0.1709968645499755 -0.27993638428803586 --0.02340506179498668 -1.4370320290325507 -0.5474824131782388 -0.3337691020901357 0.6050842677595059 -0.11311327242848151 -0.008534194326201741 0.4360517676463493 -1.842313312762507 -1.328827716830119 -0.3058771177949731 0.7126429505875407 -0.02596388629114279 -0.6165054392223774 -0.2178391169141423 -0.522843859555233 1.424985112095589 0.6589892184304249 -0.01740342065753548 -0.8695364888676202 0.7854800849216205 -0.6872630132393175 0.03870058911834731 -0.029979982707752924 -0.023195744183327368 0.33640319262728596 -0.6914064150476807 -0.954287835876579 0.2342972824233673 0.7568859112803732 -0.012788180340664108 1.497768251140486 -0.16592216929456166 -1.319894633466204 -0.2936157428851247 -0.12751290044539196 -0.0016152572332325688 -1.3936254575454115 1.9708001381198899 -0.29218382781305 1.1097719274794189 0.3062027150841188 --0.024285006180545864 0.7345094880043173 -0.40306489423275565 -1.0913004447767836 -0.19264064403633924 0.6859732218513295 -0.005802861672393502 0.027891101883611567 -0.02801789551898314 -0.8001067242518007 -0.7749083498776281 -0.9707607674195272 --0.028691579668699455 -0.554778119223812 -0.7320332366135228 -0.4923207041837447 0.7474866082525973 -0.13518802873691452 --0.02920003209154516 -0.22503961062872926 -1.0037913596380441 -0.47972978792798976 1.231960262207522 0.7958754058909727 -0.01583200401011452 -1.03519342135131 2.672308698777601 -0.8882094520778225 0.0024071762380124553 0.08954673157759245 -0.04612055823130312 -1.2127337548504813 0.3943802293806212 -0.03976689415542913 2.150734077553866 0.09306724051559292 -0.018601928295253208 -0.47605218153700646 0.22207820487291008 -0.6578313280492257 0.06076685843103863 -0.4154950563953184 --0.023368187157214677 0.3153034878249749 -0.0855097655153734 -0.9084344734214321 0.3013222082654958 0.5445604272980298 -0.0012223924027207134 -0.14558909450361535 0.42506055280530075 -0.8169492007995112 -0.3212817252620202 -1.0057199632482832 --0.003949059302756057 0.3790709554296831 0.2703255100390743 -0.9635656266896477 -0.08808403462307794 0.07917288793015746 --0.024297334158769158 0.6761984419189312 -0.3668666898006106 -0.9388432425166415 -0.031761633621767135 -0.2673836224329936 --0.044351684563040776 1.3823187321053156 -0.021955132536272487 -1.2602629039391726 -0.11897429042852216 -1.1136764992589008 -0.04654162276625952 -0.545864350757026 -0.693544033159301 -0.4998940129691221 1.236472138999917 0.6447387989254104 --0.0044663124907237135 -0.42918120885652256 0.722749828700787 -0.749776827210772 -0.10885201528305946 0.6790158364399139 --0.01775704108719317 -0.27675426038379575 -0.6549102651017946 -0.7931925402700282 -0.29093458631050856 -0.5716896154383041 -0.017724462287051695 -1.2956439401023994 -0.1156502266519123 -0.37137946012476925 0.5912834563834996 0.46182995461251697 -4.930343735844774e-05 -1.2516056415692822 0.29362202662608833 -0.05713265891171447 1.724082052920697 -1.1243940607379144 --0.02045836652833092 -0.7092473129664872 -0.06861927179921826 -0.2966166053267137 1.186573451482453 -0.12810628571487498 --0.004872593715880992 0.18056477419905495 -1.1679109933312084 -0.6897204134971244 0.629230179437354 0.5080861830407665 -0.02254919561463852 -1.00439536618399 -0.5947868420463689 -0.2967618696579276 0.2225941363860847 -0.08914578389311877 -0.008701706147245924 -0.6671251254265262 0.4400306084983819 -0.210730230715777 0.815659201645687 -0.541545899463841 --0.021462628303898064 -0.7181200867768908 0.14620721423673003 -0.6133197800312418 0.9552974757075766 0.03507846336625482 -0.04385400668150693 -0.8096668205956216 0.14154872705099686 -0.27906676861651775 1.6595555480329383 -0.29358845408273077 -0.022239688884997694 -0.040668173421865864 1.636499345367346 -0.6671429412342347 1.1298680353107138 -0.4052894026274609 -0.010540474474311303 0.23484678604451498 -0.18478039642910907 -1.0547597981125243 -0.37927270034016364 1.527606128653393 --0.0012162339898316218 0.2682754374098282 -0.7052275151362731 -0.6264319175641397 0.2380638797177147 0.04249101721098223 -0.012305302417607602 -1.1001309442868 0.1209124119401737 -0.3281283217644202 0.5793448973408725 -0.6796758568833985 -0.0011894689850160392 -1.4401337044223097 1.7774127396842168 -0.327327244391132 0.5008361581178077 1.2774652448580817 --0.05179387455067763 0.13966453857248012 -0.5828471601930424 -0.9613968674448705 -1.494996202614827 -0.2659062728821351 -0.013355831942981051 -1.3138389843779945 0.19547580361731637 -0.7175747790021143 -1.4671665031239585 0.22366145456450431 --0.012096915344310729 0.2377247873205017 -0.2542246037726871 -0.5377267970706773 1.4333591752757875 0.32511412691303293 -0.0010390321323940008 0.2885315383481183 0.7667911478846198 -0.6920779041979401 0.9901280631224597 0.005484387682308609 --0.016793263833979485 -0.6046996440676736 0.12104885189629483 -0.5229209753527183 0.019635495472152147 -0.28681858226342 -0.008247051127706866 -0.4637792013170968 -0.5330384390333334 -0.6917557455554554 -0.4869796991137779 0.5563667064191263 -0.022160844811041188 -0.890056058946846 -1.6622426920136149 -0.16710998765149387 1.3774977571768163 -0.7962383823446929 --0.03285717119375604 1.0274396389466434 1.0382112328846786 -1.4256254372298685 -0.8697540647094422 -0.28366076374152926 -0.009503072609475484 -0.28838005303366615 0.017210288482122072 -0.868857654630679 -0.5586540942450632 0.5771571897739561 -0.0015856462871335368 -1.7832603713221296 -0.9650289194600377 -0.28955421763337624 -0.08610406776716525 0.9850463404457542 -0.007922619320809622 0.0034864529287420972 -0.41365828712144653 -0.4177480428725776 1.7408831547279848 0.5433682925980342 -0.03795151623755009 -0.9042568814483353 0.010271172035055254 -0.2877425858712864 0.5694941786002957 -0.7247880380793905 --0.02557370214286206 -0.32505584635655094 2.1755648697369048 -0.6044408794120602 1.0957981379107469 0.3447115203121149 --0.008829651326455426 -1.286820736555247 0.7350717062556769 -0.4944855278582051 0.057451434457274575 0.27436649272570357 --0.004290739752119065 -1.046590801468024 -1.3087654325151465 -0.33683700168152353 -0.3125966171113399 0.24982614313794363 --0.02131805503272101 -0.7706043841553267 0.24370064673900885 -0.664695168643017 -0.15588463700673397 -0.303907200912855 --0.01554526959734061 1.245392015907558 -0.19239625261355042 -0.9781393020159416 1.1643108438048806 -0.810153763842363 -0.005507376504340596 0.535568309373293 -0.12952539784948447 -0.8958962645149026 -0.24300134336961945 -0.5600810412415683 -0.034101813206498875 -0.6968825390182346 0.7462628513845975 -0.6690385283434362 0.016108312366978083 -0.8069372931887059 -0.010452369472329867 0.5797403531435787 0.6495289215050596 -0.9349355081901618 0.7776040024250966 0.5478156325994848 -0.026059412418358175 -0.49393881943135004 0.38359037934716556 -0.4825212809947784 0.9694701262578805 0.07193328838903215 -0.044971125899512646 0.5071507786841045 0.5996311500399403 -0.8268694322635529 -0.027224103824168778 0.03624176274519619 -0.01955947177433326 -0.6398847145720701 0.08217616158025426 -0.48317902476366736 0.29418088963262484 0.3323217422052211 -0.02542006436818302 0.36980529063355105 -0.5251023447702432 -1.0451250983020053 -0.5076665733065697 0.6269609144076002 --0.029642767190799165 -0.8505226902857906 -0.7508454402870723 -0.29797162063847643 0.289981811663562 -0.24119698525224703 --0.05881143099768337 -0.33592222821305534 0.6574142759861997 -0.6172486269726275 0.8423620692155073 -0.20729128089960286 --0.026078256613598607 -1.4775892030009523 0.6459202970256052 -0.4194063350282252 -0.9037775199773072 -0.7956205332112513 -0.034718643763110776 0.18774829595543024 -1.2025875405725033 -0.9088029149692111 -0.902709655941707 -0.21320804772690152 -0.004423147111860051 0.3533395924372084 -1.1868785821907124 -0.7087869855917958 0.7977956682386174 -0.05785386483587305 --0.0032020280644774433 -1.9952375978200119 1.30866577575199 -0.510881443594158 0.756387171206066 0.2567453087355629 --0.011522930410230316 0.6737898577797283 -0.6828644016456495 -0.9592410038978455 0.5724786079464227 0.22071866736756934 --0.004512560335619483 -0.07806774327317716 0.999961064308756 -1.0281223185803914 -0.7496759311557629 0.06447932367166165 -0.03737907978298213 0.0910028879177456 -0.07856963387668618 -0.6912292782882816 0.17886382992979266 0.13278294759087614 -0.025980271582523966 -0.6765942905060939 -0.15901423538248546 -0.42371696606540016 0.5168824439102908 -0.20262750832152193 --0.03409604560422914 -1.8272377823115848 0.1583948023750323 -0.4281403172266551 0.030971553144649482 -0.335381474530645 --0.03911882084943501 1.5082656999498443 -1.0538086026725417 -1.1942193908561238 1.304630785588326 0.06405100685886278 --0.006957456295157331 0.9438222993247025 -1.1052026488761377 -1.1956144027130595 -0.20170273149351534 0.15222721285252197 -0.0024526286649378575 -0.08856169938940943 -0.7305420375029981 -0.7743905743917773 -0.6300236912694905 -1.0965264156344436 -0.021896620759697845 -1.5368062898006725 1.4964097140239603 -0.8937818871169649 -2.097422240134917 0.13152320077243757 -0.028252227885197486 -0.22924574451345767 0.9852041972436226 -0.8866333498803479 0.2709231170045204 -0.5380176013835762 --0.009340784108577948 0.19947202229088154 -0.6459191046910253 -0.6639258181700095 0.6044654740521138 -1.087369589607723 --0.03789582776214342 -0.27057964954183616 0.4911739570693723 -0.7163324951505652 0.7927455618731979 -0.4806681467943822 -0.010193311765506405 -0.08195143722437945 -0.2931976551221875 -0.8709278578481352 -0.42752074738434565 0.16795584599178073 --0.003294443063408792 -0.7420629530802351 -0.7492166515368013 -0.5184429546726429 -0.21147945147821676 0.34612785281987185 -0.007392963829829754 -0.6708939366047579 0.06874476950665023 -0.7752305052580146 -0.8580970520963426 0.16024004361932248 --0.010088316475904191 0.25221078729418983 -0.8591011059723092 -0.8308062606406001 0.06303862757629865 -0.12215549642156645 --0.0014011437725162021 -0.4309710911351091 -0.30842114274711185 -0.5169249258035963 0.9100953183606164 -0.11426230669430726 --0.06125173077393254 -1.3438992732442436 -0.10878372348051077 -0.028550676091180567 0.8420219510285183 -0.047983206060190554 --0.023043985025317605 -0.6753144448950118 -0.06524305887478678 -0.4921536023714202 1.8178099529975922 0.6095320504241295 -0.006625718056898442 0.7107898061873362 0.4793418773549776 -1.5278582393304743 -2.4423895556888917 -0.07988401478325205 --0.014279854612245355 -0.13928583046706267 -1.2974022922640864 -0.7528600020434162 -0.8913606488142597 -0.574622938069377 --0.004002301480093295 0.07855413510132404 -0.2528201218743838 -0.8614647347902096 -1.2498459163252458 -1.2434321514558364 --0.028710786590508776 0.43936650901875546 -0.5879135682027202 -0.7359026604238127 0.27726558537000656 0.0253481940240642 -0.009984647299747908 -0.7996992823882692 -2.007163801863585 -0.3615453348789573 0.46696593570459316 0.2535579094319536 --0.029273661723227155 -1.0382851085131748 0.8397783127251761 -0.35079791669777516 0.8567879406948136 -0.2592520149816342 --0.006390024416091591 -0.17384865114936238 -0.3276574743379218 -0.755952822587785 -0.519017717559351 0.33236582432209955 --0.06416363759535634 1.8424109374487012 -0.19644160418704038 -1.548513044348537 -1.1864253633731763 -0.25766613749226436 --0.0058218018784100805 0.2090397521855066 -0.7492068041812717 -0.6595484416576376 0.40860655652174865 -0.30705689288567745 --0.02216554189084169 -0.24441608348747199 -0.6374800064394317 -0.41009024774226743 0.6384349911491862 -0.29210333330227123 --0.009587017763373597 0.5943991255719202 -1.5027438795738088 -1.0437510014813818 -0.6395407280466187 -0.31918036363683505 --0.008236720004600948 -0.5975408045209218 3.7887104132239475 -0.6995559758661818 -0.23118622374747316 -0.25186149073935965 --0.04649172592010069 0.5175012090289105 1.1086186064232049 -0.8948161092606062 0.22770670189982195 -0.24190381071352748 -0.007784980018597887 0.10911091168609933 -0.00800067473904541 -0.6138208972895922 0.8575504993744705 -0.023605198021705725 --0.034437679761443483 -0.4181642544811655 -0.7664479503190501 -0.6474826799049069 0.2972139376116613 -0.9248431299345121 --0.004706553015804478 -1.1952637153032695 -1.2292287493846885 -0.425688495611988 0.21159687808321198 0.7353168781030185 --0.03315556396389777 -0.7010882230811443 0.5207913991984094 -0.7276040261139717 0.09965498102872712 0.12481769684735389 --0.0252125810509109 0.24465397951882156 -0.2933506875368588 -0.5323397467540225 1.8061362642079017 -0.34725905004724994 --0.05574612578447523 -1.015069061009826 0.700101246718754 -0.6888523672653538 0.2290945404636127 0.5082988143651793 --0.03599864519198463 -0.36068686165521485 -1.036533373857442 -0.8211052382297988 -0.1215316012140086 0.36135384408429155 -0.0033665865292005154 0.4619488448948921 0.7560598620033602 -1.0469413612807223 -0.18479550047327892 -0.02045435287066791 -0.0009691638415316943 -0.06222306671962504 -0.08861761516179904 -0.7590472167701725 0.515824041108507 -0.2857550992014572 -0.020456872398204425 -1.697564293359001 0.34701389634684915 -0.2436586909113275 0.3118702620320515 0.9527205257804913 --0.013260392980549674 -0.559499051258093 -0.38259835063634506 -0.5361674199026177 0.7364079226841777 0.9916270931766842 -0.00911411789242821 0.019524422579151223 -0.11390782101806964 -0.6882885622220307 0.16078471060873795 0.08669822570907067 -0.04094156457812076 -0.9313653173165575 -0.6237023830203858 -0.4556539120353516 0.6017825274388063 -0.2582351591110469 --0.027896813590075474 0.7867583584757945 1.4359923173563613 -1.432811000223674 -0.602188993344219 -0.1691689789446827 --0.019058491362837084 -0.04425059681655663 -0.540172718944697 -0.6258937880598937 -0.008452380663249742 -0.8542806238013886 -0.04427402479929212 0.38700286632271613 -0.035702456741276284 -0.7683267588919837 0.6969698896483144 0.6791569346121356 -0.0031936410968111013 -1.9929051014178598 1.2295418524502757 -0.19812931674687212 0.5449678349214241 -0.8455121794366236 --0.012412453855227656 -1.4223621074835877 -0.463415667296258 -0.19161285400299355 0.11561648318657605 -0.45462673397963066 --0.0036532282054161495 -0.29771254627931637 -0.8374442331747002 -0.25452215728754624 0.9952916029922431 -1.087508910400695 --0.052493285716898465 0.8009945464892924 -0.809709291345753 -0.5961820594402163 1.8444919790738517 -1.2246634748651237 -0.014668566155842867 -0.2447596221105707 -0.04170847313128007 -0.7211252751359224 0.4771917596535696 -0.12743359558881065 -0.017704505754751163 0.45491545698720603 -0.3589529514531823 -0.7594643644968736 1.7211713156641002 -0.47296122738118174 --0.005744887502124738 -2.349103488642888 0.4743698805922842 -0.2105932796322486 -0.04430000782071748 0.5225682310547644 -0.02568693412329801 -0.3221680190818847 0.2972249995176607 -0.7652621045141796 -0.47299764457903204 -0.19958530746462663 --0.0007188922297379748 -0.5900128084711409 -1.1630484075349719 -0.6703658925069972 -0.03723639792813903 -0.3391495238413743 --0.02673120414196187 0.4317909306461856 -1.1803432472064712 -0.8240187553982585 0.626064632923658 -0.42640864185268706 --0.013227391028009272 0.5265538019584988 0.04475530211989561 -1.0573054759041125 0.19888618103153582 0.10191902341847522 --0.03115476616492279 -1.089533600744733 -1.4894512434532565 -0.1053715063762271 1.691249266908882 -0.8336317276228944 --0.025827249574635027 -0.9160291037142718 1.8369523710203683 -0.8205002574608231 0.1214854056384573 -0.5775313589294423 --0.0008715346494108434 0.2587265738819841 1.8187801761196252 -1.0020348087365594 0.09993887702344467 0.04069686931236929 -0.013127781701609704 -1.0956254887151793 -1.229317015674165 -0.03046957363333546 1.8142190519305825 0.6088627791221242 -0.004528875419847335 0.1470824420128037 0.04382355734807188 -0.6382223842577358 1.0045460700230846 0.34616363775463216 --0.027049860596718045 0.6879492417169751 -0.5183564719958792 -0.790776102213431 1.4064699753123548 -0.6485177987241116 --0.04915516005877334 -1.175752550904923 0.3408457230215758 -0.10073126331796219 2.011874689899209 -0.9621394257445414 --0.02505538070305185 0.23225659828912984 -0.7019850215129749 -1.0266674587252915 -0.34463652608245293 0.7471580424124179 --0.008000137771742378 -1.2310571662547662 0.5027937278926277 -0.35911183582533185 0.11669402784180843 -1.014471755620189 -0.012885972394972656 -0.8217410501787431 -0.29859773442227194 -0.4564398117177724 0.07829578269262003 -1.1288683413450136 -0.035611165019571706 1.1487340588272004 -0.07448015492713597 -1.5024149768471753 -1.0231433067207187 -0.7910820845613443 -0.0005800817095141201 -1.1698669517097227 0.796552588255163 -0.28064658883322907 -0.8152310892007082 -0.6377426519585597 --0.019457942254010756 -0.9472980729431253 -0.681231192537987 -0.3297855728205843 -1.1220570735107938 -0.27150381162309856 --0.04464487978602369 -0.10573341918284873 -0.008131732306481143 -0.9470200586236843 -0.6938356216629911 0.07961773030384509 -0.0011705548795352939 -1.097148913179477 -1.459091142995268 -0.1420190829765706 -0.21401596899539715 -0.895577640892523 -0.0004032732999135135 0.622806202449348 -1.4120783783082635 -0.9312873983997402 0.46085756103016645 -0.532272079339961 -0.025389216978070533 -0.5977192715156262 -0.10307977009400339 -0.3295884742570383 1.5340507701629924 1.0524615807729036 -0.032480423513633 -0.32463791349966575 1.348659682214172 -0.8967336113039177 -0.29864457163972497 0.025315784024453572 -0.028932927108841044 -0.6095215559319653 0.6181312689223732 -0.6663252404759925 -0.7660353249448146 -0.18909194020415251 -0.0323991155058047 1.4522518500190131 -1.8944178748984617 -1.4900885699366848 -1.007423471230897 0.1889125673029926 --0.02614639540990353 -0.4441061742138652 0.34262636338888436 -0.6873706323361163 -0.01132909855950055 -0.7127201124090637 -0.022323693991489865 0.3631810856064047 -0.2538414507839534 -0.9845625089617736 -0.17087331327023744 -0.5031704675162457 --0.0044211096255604284 -1.1450755626526974 -1.354992202818453 -0.422870075483987 0.44712643987820005 -0.11338315793103243 -0.030136761757701212 0.03305659705237415 -0.0792668658182913 -0.9272273481922592 -0.7021561628345551 -0.2637815372887488 -0.02588257975224513 -1.29396079367642 0.9636184165919122 -0.5695331817939125 0.3682237750930406 0.552184401097385 --0.001184561796378392 -0.7661047138432957 0.7966645075968654 -0.6749190746978185 -0.1579255866323968 0.2768339914502809 --0.03947656264959251 -0.1830577754123669 -0.020725637880595404 -0.6313070845539408 1.0410782909696434 0.7347762154121182 -0.0066197970604291115 0.033363884874441446 -0.36206707336186117 -0.9586247728154921 -0.42433318093311834 0.8755257194483231 -0.008689993824283806 -0.8456900379928615 0.9085279276675827 -0.7048860569068734 0.7012103063563153 -0.4642942950794623 --0.004885082088938884 -0.9722125603302089 -0.5472758583554714 -0.1309683983363537 1.6388761349729848 0.23835259222765892 -0.028216494369000613 -1.2699239375689895 0.4683879140425819 -0.29037962983510096 1.3240545617582127 -0.26043016182750967 -0.03034881653577132 0.2789825065701919 0.005679890007351864 -0.9873452640737178 -0.6661110469094242 -0.08510543291071983 --0.01434037325251535 0.1989548961453768 1.0665071239804649 -0.9123318299700505 -0.11671599958332289 -0.5683928578384413 --0.008806549521966647 0.20316754511996943 -1.0100919693616799 -0.7444159648779674 0.10004705168704005 -0.8736317880888732 -0.03008270295496954 -0.22702766907093913 0.952822911835572 -0.7961820825472807 0.6948613084406476 0.06967573460841953 --0.016353376907481162 1.1328465914839132 -1.9609155277635324 -1.0666497590597805 0.31544310813779547 -0.26646803944366493 --0.0013676608084782242 0.7128246086342888 -0.4345101518554384 -0.9694061860132615 0.0207846963560304 -0.2509329020460124 +-1.0155035307494031 0.9691761244658629 -0.43490945911486145 0.0005797411320551968 -1.0647792555437565 1.0142310729685005 +-0.7774230083170882 -1.887718063559031 0.44121444035059565 -0.025766855934566377 -0.2711051088106013 0.8816866532268554 +-0.09949498863969976 -3.093946334691374 -0.3177243959073827 0.01594587643611437 -0.4837366069203027 0.6644187476957406 +2.0251410983073 0.04220160498956681 0.5883748301858082 -0.0008384954768386701 -0.3049478078381903 -0.3628739735555511 +-0.5881999388460519 -0.44679787030874024 0.8290053626789338 0.009192345431319488 -0.5214267084550475 0.7824971070566432 +-0.03813310596975128 -1.104330278571614 0.027023167741691174 -0.004752271983095248 -0.7369884261658728 0.5024989939142529 +-0.12070654949644175 1.101594168521662 0.7186085782687479 0.023392891282422227 -0.591910630460487 0.3856484433278572 +-0.7111392929317657 -0.6153349140093617 -0.3871107432004416 0.011055300503897459 -1.2385488763919021 0.6422457629762864 +-1.0766327833411289 -0.26936837378168144 0.08895185319915959 -0.003593486330090755 -0.8236565589235237 0.9141410133847915 +-0.17191882626568306 -1.4928128137659462 0.2765046837235094 -0.01636941922568725 -0.8478626680529991 0.23629025131330703 +1.912863455331337 -0.21420877849540843 1.228715256985055 -0.03367847653661244 -0.6973808562313821 -0.7687609493106753 +0.3662471703984293 -1.2386140953454126 0.6966588136656844 0.0059546510594683565 0.2645814749307801 0.9761902755654145 +-0.756390661556982 -0.05697263778633681 0.363895725337445 0.0005269799049048028 -0.6910718637033273 0.8299079788766636 +1.0921612052134848 -0.09452002015900157 1.0328037245591395 0.008538287638736656 -0.07213884815281742 0.11490696899677179 +1.4452300971839198 1.3145622280315346 0.2560307233217614 0.008520622731510715 -0.2903830262919052 0.3571544313605263 +-1.7106117023662413 -0.5164225430403325 0.37942509790124573 0.0010379584496233267 0.14080296901245734 2.037501527509461 +1.0759421875735515 0.5675767544200996 0.9879163242603349 -0.005182835984129797 -0.09989258775887365 0.08918626081460572 +0.17763531883979497 0.6427866071498715 -0.4143431967605115 0.00018101982051774916 -1.3083055138657629 -0.08334241108853706 +0.5613510855512307 -1.0418705678255527 0.1304176744292145 -0.006360873236653412 -0.4831945550602296 0.34301986189376 +1.0238648258814027 -1.2714139923328869 0.838410091642259 -0.0400166831701072 0.33152760353573124 0.33521241201372015 +-2.0100364944849676 0.8288117827285927 0.48782925220506 0.004566193526827392 -0.5328741779259945 2.0047013762193266 +-0.3711819208050042 -1.8744921520785751 -0.0219455909811986 0.008657039952129407 0.36887893851722753 1.6828544488471069 +-0.09390801002259563 -0.09785802439715345 0.017446149462823614 -0.003087801505191057 -0.8006870834601616 0.47831387895578215 +0.6852133588946415 0.15178031022160285 0.822917212099689 0.027834894831265052 -0.0076934458732713365 0.5281657859989674 +-0.07034026661410696 0.5232003148730431 -0.48230100059050696 0.018975422132521295 -1.1708920588011282 0.4817832513534553 +0.42270092913288365 0.5756236338306919 0.41186684516813615 0.0037262948564030854 -0.35928670069565544 0.5672148543443905 +1.0309774796372082 0.4497557191192282 0.05838348012089528 -0.03068690609608476 -0.46069965442624006 0.2249499284024505 +1.364289407683033 1.2514590598788373 -0.6701192144500179 -0.02080217340402457 -0.7437865670743529 0.584993541235685 +0.6896051946368038 -1.34624880288607 0.7620210663077894 0.01987088438971948 0.14125712165344642 0.5924173231977459 +-0.49432598578217707 0.2676032285186515 0.9421489078110075 -0.022721373440066313 -0.20930693561931354 0.6497227513771598 +0.5581326355866558 -0.1754800370147006 -0.053406283568695735 0.05751254882678333 -1.1766790722516827 -0.1525764926930636 +-0.36057385791181046 -1.1810745767750217 0.726461161036298 0.006391134402773365 -0.4579771328683229 0.4457023510826452 +-0.39510101214272153 -1.6421594241569395 -1.0208710776151044 0.01771303219755777 -0.5186386772572873 1.4546264707175989 +0.08840984424754103 -1.1139283267677014 -0.006668984270881183 -0.027175468469085008 -0.15191750314308414 0.8900884998387623 +1.332477380036253 -0.6981619920745415 0.6641908649237288 0.04591746072320735 -0.022548710479253362 -0.031099740894699045 +0.0012613443062574922 -1.0139222346193184 0.26218295763407434 -0.017968359017841253 -0.7633963303357724 -0.06411447609670279 +-0.31172777636807014 -0.5931672884326704 -0.3794250078100936 -0.005728199108113379 -0.36579993289579776 0.995328122833671 +-0.02078906369813215 -0.8355422936488603 0.2640015782845783 -0.022397571960866308 -0.2994869015393642 1.0305230810396948 +0.0266095273272548 -1.3489087088720608 -0.26336752353086407 0.05373642695199268 -0.017599883697106918 1.3501929139761717 +-0.48656098575036505 0.28044105673718595 -0.31269491562580304 0.010726254701674933 0.12551900377982295 2.1301010584263538 +0.5520480427916027 0.47080556839950555 1.8107593413942085 -0.006208310508642158 0.052263835505728426 -0.012411132315282472 +0.9881132810328677 -0.1707752824437433 0.21672382014764688 0.005867802928713863 -0.2795249120998339 0.0027183273103547336 +-0.38061081552885884 -0.9104004122580426 -0.3460117485771992 -0.01692690711238169 -0.8642510668747985 0.6948864904323592 +-1.7984210030848993 -0.29886238981468716 1.3923941485316198 0.016741471803725417 0.28217269605219586 1.4468341493514323 +0.4801691910009881 0.8639008916952182 0.4350412969650622 -0.004366358603856076 -1.3872412468947608 -0.9139899952461659 +-1.0161872860416088 0.19056215236021432 0.9480342838902354 -0.027196209380954895 -1.5759181636421624 -0.554008563486475 +0.9236288136919226 -0.6871855188285781 0.2874652934873437 0.03709972018694525 0.5025992160818418 1.0326162691986114 +0.2107029423335849 0.13709462995691532 0.04040809915231648 0.009201398772630055 0.2873107863398216 1.4530616227042206 +-0.2281665117871068 -0.23086939189076086 0.08221552681887076 0.03924320163786398 -0.7589869760161182 0.3637244374652303 +0.21418831227381036 -0.15485402643099536 0.9302207941903434 0.0021381284148873844 -0.6753923675763962 -0.3890559421643909 +1.0403495669638485 -2.142041040554824 -0.6031639083249684 -0.011606739178304732 -0.7063041412179611 0.06943825980169734 +0.2584678641935227 1.9779581794799477 0.2426003509249301 -0.04363925635151865 -0.6337861309998506 0.7230306155775111 +-0.003307688503775909 0.30538140630613136 1.0286153253237529 0.037325156688412284 -0.5779468366773243 -0.039137199089581014 +-0.35828249257096817 -1.5243067596725255 1.4054544477401012 0.032086143281752084 -0.7535381321767003 -0.6010116754146421 +0.8888605215270741 -1.155842509178463 0.38738897867261496 -0.004353909556181524 0.68640386476969 1.085477624948596 +-0.21455648128060972 -0.8251102283414681 -0.4137388361131124 0.043949230789514446 -0.7994047353046903 0.5792080979280776 +-1.098288204119273 0.34623623895197847 0.30939231932683847 0.009089949948227784 0.5044732891309006 2.3178626808161837 +-1.0195279498569283 -0.4507498746724498 0.6169841232915604 -0.004579508778822252 -0.6429035276669471 0.6758594564535467 +0.3053443243148178 -1.0484977548944052 0.6187432871603897 0.005664896011490927 -0.9958981612455738 -0.882392217837104 +-0.37552476104947274 -0.14643206772804285 0.20272221404074428 -0.030329528831520052 -1.0147619300799706 0.39122000564984316 +1.6363390395696151 0.25747020506862056 -0.673546304376947 -0.03733626203745468 0.034588189103543526 1.199258069542029 +0.7267380405485887 0.6098963948321219 -0.16874673341794155 -0.014189903163579572 -0.6905456911660801 0.23790303393387857 +-0.5771398699163164 0.0499662198110981 -0.3194461334732761 -0.0211905244578285 -1.0576656811441194 0.8561590983827514 +0.4703069043830689 0.43451528474809936 0.5904936490382388 -0.021563333082446033 0.3899706744321192 1.3071059230902449 +-0.1047899198500303 -0.6270435754340606 0.12887990316428047 0.006901156761517391 -0.04947693215159733 1.0781255792228486 +0.24172378587466897 0.815272883177126 0.3115625093468365 -0.02303991541839312 -0.15002203170657977 0.7589765866818426 +-0.1586650377680393 -0.46924631607717293 0.5622625379110799 0.027406188426930676 -0.3252535300944507 0.44087238602878376 +0.8382490288435114 0.49405479373066574 1.0644116910893189 -0.012172543658727131 -0.4708841335217534 -0.2277667331043116 +0.26456354263666587 -1.021982822227296 0.10008043317106155 0.006508508586817331 -0.7819638070159959 -0.07117304710348955 +-0.13596160972584764 -0.24595319862444462 0.010215599548084695 -0.04255626031889822 -0.19136734315871237 1.2472018767515822 +-1.3162633102786132 0.008598574218881301 -0.12179160739233429 0.008136971938580593 -1.7050089062055929 0.07748640446044144 +1.0622589278112369 0.21451733021535663 0.320143266233959 -0.005910920616189364 -1.1998271600153019 -0.8793145113761819 +1.498610869468207 -0.6630054407977964 0.14720250168340587 -0.01207792901692975 -0.19632382002465895 0.1576094040805654 +-1.6498885398259433 -1.0218475002021528 0.6038889891479574 -0.015420619386212985 -0.5962676648320042 1.4747751089315417 +1.383616852307395 -0.04647231545671742 0.4123248543477482 -0.010291360144290251 -0.07286526841137499 0.4041618024348969 +-0.4581009554789399 1.0751651441951349 0.5915891574901508 -0.0008603158386766295 -0.7441856281851068 0.5797553665181537 +0.43232800700056573 0.05444458235320458 0.3439650371134381 -0.008950560651632055 -0.2836528601407988 0.40627164340335536 +0.029181096840294244 -0.7162879556539352 0.09259561060444789 -0.051313555929564894 -0.5467206698078977 0.4525884269111502 +-0.9798899264946997 -1.0486528804810265 0.2364407473710036 0.019479337545113794 -1.3210589405079687 0.3212364127542726 +2.431934641231565 -0.08559791043671028 0.1879027736504129 0.05690876507213582 0.37157354259175285 0.8189894442109289 +1.7232152925933812 0.4230993231715333 0.5581292924366391 0.0018863060994404718 -0.48923340605548904 -0.2393778317783852 +0.6097705496175327 0.14279619626773654 -0.48823971675564976 -0.04100295988966357 -1.4655704563491923 -0.40178550487304243 +-2.0923966020928155 1.1049756561303703 1.03717478087729 -0.03856519170522303 -1.799051842406234 -0.11842321083092 +-0.3088220723007988 0.37839747393352835 -0.12034985012845187 0.009983970657955669 -0.6590830586306674 1.2418159829539346 +1.0320595120726574 -0.39454720783097397 -0.7498756164563106 -0.030342468993617037 -0.7772764684895392 0.4160608488321475 +0.03265576388859729 -0.2317574662461813 -0.21128117052915238 -0.0131851645731942 -0.4148752073767283 1.2175123344347285 +0.37113211555033004 0.21025516065941224 0.5984586404060023 0.007586832503010221 -0.72088241975124 -0.048026276574286264 +0.18085121925796535 -0.6218536209499098 0.7157836771010784 0.023284911353008395 -0.7693913352105501 -0.40717084721604013 +-0.34808113240865446 0.2617496615201377 0.7336167146666778 0.024658144919040097 -1.068201321258125 -0.217591782380591 +1.0861573711675463 -0.11705466402547098 0.2601826334302906 0.004558497327134023 -0.6155282521453858 -0.07745317727289398 +0.43185458785033964 -0.8494945761518601 0.0788228649433685 -0.016028081182120894 -0.2772755015990027 0.688112830009048 +-0.46655212069308155 -1.3885746464860125 0.11832122617510789 -0.003241908128767867 -0.415341527638367 0.5120976625397677 +0.2822081529892739 -1.4334263505322038 0.6229469821662329 -0.06191179475641842 0.3942126121983016 1.3542455720194497 +0.08708511127358089 2.4171060687920445 0.8095912578605982 0.0028337945049223094 -1.5820866763039736 -0.5994851174735266 +0.863871319677054 -0.06395834514602118 0.06576003580084579 0.009710270777993335 -1.480169337566195 -0.9884491186711061 +0.2877567944582716 0.8574290694233289 -0.5016151460625687 -0.05308697125906981 -1.7350227907075761 -0.4616146852693892 +1.0395901098187783 -0.025298754863503737 0.2611133846683502 -0.01533965023298704 -0.21366553226694765 0.19768709862197495 +1.1136451344545906 -1.713914337485896 0.5591658050202426 0.02581434409326087 -0.6735231363344237 -0.7693705636417896 +-0.7504634521025986 -0.6847903021055466 -0.05141235353013251 0.020034383548422068 -0.40691558007211376 1.2736034075408056 +0.2580984756702537 0.19079378953362156 0.771739826497781 -0.0186211231513902 -0.6624824567927549 -0.23661304035659853 +1.5388003249640374 2.1239236203480165 0.30074573899996687 -0.009944930423854888 -0.6925479062886467 -0.17192001099291132 +1.0115809947415546 -0.343717987880514 -0.08559309957680915 -0.03223507452143511 -0.43935005758698653 0.1550908659450183 +0.6386387770284627 -0.7560829285550493 -0.12664844198468014 -0.02990881102864517 -0.40713647602572434 0.24114925543104496 +1.615967823371846 0.22205928491418342 0.19818415151649557 -0.014486539534009892 -1.0881804556610273 -0.8032009441448323 +-2.5921567349456702 1.7380039293286154 0.010222854393248777 0.018570415527531737 -0.27431821613860197 2.4944782742161835 +0.0301052167593852 0.9309337071684513 -0.017570495455657986 0.05995568133446865 -0.14154728444560852 1.280790807683161 +0.562619388971121 -0.3106829247239282 0.12396035377652595 -0.026869594797975793 -0.012025704079742698 0.8989001210836917 +0.6443804355499596 -0.693198456199351 -0.48218082844759214 0.027068428940841296 -1.1197690644312142 0.13220112366354714 +0.3163755399034753 -1.439035329811485 1.0783527366950678 0.013497371740176482 -0.6034715185645856 -0.4828027200359614 +-0.444038224533619 -0.1377891127732871 0.5026947437962579 0.0023021991500771265 -0.6062282537100867 0.687399834757466 +1.0927615884032154 -0.9263668614827827 -0.3734951829879137 0.0025142957147216284 0.29724860859899266 1.3310171996333626 +-0.7243910804979902 -0.374903188922172 0.8054930527829507 -0.0051981250994146974 -0.4306031956856887 0.8362390387158946 +0.7537143775635438 -0.5116428475928575 0.8423462847806872 0.008238332418264013 -0.749446277502982 -0.38365879193817637 +0.15714712165230402 0.9665726099113496 0.3140107548235686 -0.011870096896114487 -0.33010697063907435 0.8244447426014062 +0.5066575864223501 -0.21435700951258738 -0.0013198945524274446 -0.019075062458780698 -0.43882286482390587 0.6380152806577909 +-1.0398017906382349 -1.111932173945994 1.1624048463423937 0.01671349404338037 -0.3331044275790938 0.44259668734543245 +0.2730602451152662 -0.893845230828235 1.0981453702181083 0.015161749282663848 0.11449702099275487 0.43438887615564375 +0.42841314465210434 0.014517220964926556 0.33456577950149274 -0.020113848161601857 -0.3916670219079038 0.37336759427598293 +0.24436860664274412 -1.144010802557791 0.08613561748286103 0.02147565377409632 -0.748764955049041 0.26355974681440336 +-0.10710157746861336 1.8391060743817578 0.30933664296372937 -0.015302405854520673 -0.544483439781256 1.1231841054853116 +0.6617056563177769 -0.12269022629231506 -0.41602957166566495 -0.0022032272557754857 -0.9582000477555994 0.010351211359995083 +0.7294693296198855 -0.03688366280087436 0.7515960009495359 0.02400200207891003 0.33691161910591216 0.7554222298107786 +-1.6941883551576933 -0.9596629003189375 -0.4303012282023571 0.007206847935023525 -1.104297548214763 1.241835094661603 +-0.39846264391466385 -1.1865057902677592 -0.009990333521442166 -0.001323718567697407 -1.1176166979214703 -0.07881111757632832 +0.8229355866716186 -1.077573786631792 -0.8844155403537196 0.025358063392575857 -0.6429062086582306 0.3830156956367247 +1.8143666756253807 -0.7909127227644497 -1.2167416997335807 -0.018197760468170444 -0.05826852249053278 1.1587200823557677 +0.33788516435298904 -0.3425452060565465 0.17734104716149215 -0.013487217228299916 -0.4306687314740485 0.6422574523090043 +1.3096874957379325 -0.703146276905263 -0.41657076713445046 -0.02377818393736814 0.0989604702010855 1.333292868223914 +-1.6378882942429336 -1.2624233369999471 0.9892855316298264 -0.022545694283262176 -0.9359030237127377 0.27671390741920104 +-0.170192232327738 0.3793108379106017 0.2731257690912751 -0.008866110665474977 -0.8953865360511312 0.24984497576554268 +0.682585606301815 -0.7931376076419014 0.14084543478221925 -0.017297387196371104 -1.1037831843734032 -0.391187020319786 +1.5497601347040064 -0.503402522525689 -0.11891465042475008 0.005134735806212742 -0.48402666125938193 0.12920605766139748 +0.751100659625198 0.4404254403525827 0.41243111212276734 -0.0050053189637277 -0.22977045030657223 0.6618250670943121 +0.9119871014776075 -2.379239693832942 -0.6768391353064726 0.035658035803475846 -0.6681060886799917 0.3363970104152476 +-1.3453643048515784 0.4177616962968105 -0.1310227441969179 -0.022186048041889818 -0.8729815631569231 1.6204978148925564 +-0.5910483244171156 1.2396177925178737 0.35856120795146307 -0.016806822975419085 -0.07179174581931949 1.654905208876829 +0.6477936392319904 -2.3898063077983354 0.493221781037027 -0.05011296515873814 0.26431189475660455 0.38330140628470405 +0.6248948402262903 -0.3512144360935224 0.2952097762701283 -0.013915750699044776 0.364969145261184 0.9508963009151903 +1.5228350654618001 -0.4489574399503058 -0.5342795166020599 -0.004739068345617574 -0.03291936108058475 1.0831648351980165 +-0.28015035570199515 -1.728644091827071 -0.8983966453468696 -0.019430221676573583 -0.25230494556662086 1.6699875622847653 +0.8743832710534531 0.1759518395245366 1.153522725801276 0.013400741726293798 -0.386399378465132 -0.2463383924225319 +-0.8391515762983639 -0.4963988713888406 -0.5456305443918905 -0.01870339445407837 -1.18726834024893 0.6375991286925198 +0.006557735977700785 -0.5886751859303002 -0.622754445245184 -0.009294769213171978 -1.3410784986574997 0.1953579377115924 +1.1112481428176264 1.6248591196483604 -0.06311973749508448 0.045049369387125573 -1.207573848174583 0.04516425207574497 +-1.2894824190760514 0.16322673253034378 -0.14950297922077793 -0.017962688355144762 -1.30699810631835 0.11182698151942772 +-0.24755275007099817 -0.23360658447215207 0.24540526922263028 0.016410589227709257 -1.414831969051486 -1.0059146993141241 +0.10602312060642757 0.5273625474478159 0.6083609915222623 0.009191273876922024 -0.8613720423850377 -0.03460863072384496 +0.3583789316349845 -1.2166681872406033 -0.4427467142504419 0.007786974138653891 -1.46455474026015 -0.8936293421834026 +1.8605060050902642 -0.37023666498027974 -0.1729277434049461 -0.000518334672564965 -0.6400640893429889 -0.03791144957459913 +0.25554991994809134 -1.2957983605775891 1.005723657404952 0.009451565558578689 0.6614812085889225 1.0361321285738045 +-0.7814365798191711 0.7883768140875484 0.42399100676550244 -0.025085875996419173 -0.5931693966856572 1.050091898583939 +-0.6719746001145768 0.47363524324846873 0.33818998355266383 -0.04379346802709082 -1.018565939091886 0.20209599326275526 +2.4488369903686733 0.8948623926553291 0.8084916540638092 0.040028085690248044 -0.8963445419090773 -1.122967096372424 +-0.20585804579089945 0.056836553641638206 -0.2625963026506358 -0.00886277756593773 -0.9432543488521625 0.5383307701409173 +0.7593285770579814 0.43244737928255716 -0.021747986162150634 -0.027443685970947297 -0.8515623803495679 0.24357911573472443 +0.5040709428562821 -1.5789575977915258 0.34054168448331185 0.013711638213643238 -0.9867341867702555 -0.2907936306182963 +0.28071384849707287 0.5759028597549779 0.2492719921839272 -0.0020887106243040353 -1.000362429977034 -0.0660790643760528 +-1.066570980069426 -0.5005634328054042 0.8582084536668736 0.006828540837988896 -0.3525485555845349 1.041683832805085 +-0.761281638259403 0.12513842840913839 0.6602669885026087 -0.020113087574851904 -0.5838242936126299 0.655631194082815 +0.42346956539768305 -0.6150243620591289 0.7776229896452187 -0.014718329528552681 0.3143672365603969 0.9019549345370393 +0.5112536910284766 0.2372535489640671 1.2348207466093908 0.00924393450985619 -0.36892397319571957 -0.10175260375535668 +-0.5739508024879977 -0.3781335989525916 -0.08112789361464919 -0.031858084451998406 -0.64405657799872 1.3813777489849022 +0.2888408002369947 -1.8322366118585893 0.23450786568658544 -0.031020238058587904 0.12206800652804849 0.7730020164090984 +-0.5742071346473329 -1.290183233040686 -0.055829419851564234 -0.011842734211460896 -0.364085041481201 1.3368853959169007 +0.3718973386458011 0.7886408220041906 0.45639877722833366 0.01886716954905998 -0.789354218475409 0.018715178775932276 +-0.22402315574437018 0.906365310249096 -0.18668151395676646 -0.017467505336947645 -0.6415139096803982 1.0436603857541975 +1.1604373461913293 -0.2291804039051792 -0.441864494989107 -0.0281931468780325 -0.9306851232449858 -0.11823440965321695 +-0.23516585340990756 0.07282315787752065 0.33619415259712143 -0.009414041923666218 -0.10970243679024128 1.4305404777907216 +2.5121348780530943 -0.21082918375340776 0.04865833771388756 0.0071267829158981316 -0.508392142154775 -0.4324448847902268 +1.1440501501262363 0.41204058026402585 0.07613188452847641 -0.022118521880350822 -0.4883322651094521 0.23804445984942452 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_ard_u_interval__.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_ard_u_interval__.tsv new file mode 100644 index 00000000000..521a23b2b85 --- /dev/null +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_ard_u_interval__.tsv @@ -0,0 +1,9 @@ +@CO shape:(6,) +@CO dtype:float64 +VALUE_0 +-22.886570003781273 +-22.870602737869437 +-21.946500570864615 +-19.78053942626643 +-22.42703085958477 +-22.65869737799072 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_ard_u_log__.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_ard_u_log__.tsv deleted file mode 100644 index d0e7f8ae2f2..00000000000 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_ard_u_log__.tsv +++ /dev/null @@ -1,9 +0,0 @@ -@CO shape:(6,) -@CO dtype:float64 -VALUE_0 -3.3157452315872797 -0.27700210936024544 -0.17155080231183484 -0.5966390764523473 -0.332508299459193 -1.124462475245523 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_log_mean_bias_t.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_log_mean_bias_t.tsv index 1066841cfb5..9a357595684 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_log_mean_bias_t.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_log_mean_bias_t.tsv @@ -1,173 +1,173 @@ @CO shape:(170,) @CO dtype:float64 VALUE_0 --0.25849585646014905 -0.040225177787154114 --0.026185431993490965 -0.03725559498343827 --0.16538441997032297 --0.09228167661400453 --0.1256880156401002 -0.08633265467685908 -0.022113132827958033 -0.15391751538075946 --0.10095306370885793 --0.1687663961928414 --0.11488124990804598 --0.057855651527406245 -0.032467834693093015 --0.16051173145443026 --0.15188551009171883 -0.07234064881915624 --0.07072211886982924 -0.1104903927299972 -0.003183972228064411 --0.13415244390416362 --0.0173410831331658 -0.1547962836712629 --0.13336018556534004 --0.03743712782117777 -0.012381405865775224 --0.2114343671895864 --0.025791090747636716 --0.21293904382110193 -0.04149588027009048 --0.036673066624566465 -0.04971474075116118 -0.019591082197033576 -0.03525689768146697 --0.1914011900899641 --0.04725967156757652 -0.15274088676825434 --0.16122720361552978 --0.04136921351326967 --0.060209703827821 --0.0037056561935444824 --0.1351026827205754 --0.03369614376830839 --0.10411666196614842 --0.04657277102510122 -0.015077469235957259 -0.07754771342487858 -0.017914134286040675 --0.0710284267939751 -0.06260671591789709 --0.1320239478972418 -0.01961377424845363 -0.03858300991943911 --0.05492655291475266 --0.09410306319859052 --0.14434388427707762 -0.04273439447178011 --0.05839158444715406 -0.0703856249091366 --0.09589691457419967 --0.07848472372285839 -0.008442201756186348 -0.07374234341321247 --0.1492200732897827 --0.038903675641324825 -0.029904713495308384 --0.12617774475493035 --0.00684914045361414 -0.011720581870187374 -0.015159695768490727 --0.07896578318508424 --0.1385164053481828 --0.022721484315516446 --0.013656836616571378 -0.0007785867345173695 -0.01720449539311937 --0.10015929756959739 --0.06471074917794821 --0.1028394180063259 -0.011929294155889059 --0.05438686691749441 --0.001558528160390152 --0.014347270386367864 -0.07791486778457327 -0.018933480078153153 --0.044302163262634225 --0.0037092256840304504 -0.017662365344264363 -0.049337444026949125 -0.2262582515599912 --0.17281175279934033 --0.022790648571096687 --0.09414934489840618 -0.003798316187703955 -0.05202609080567137 --0.08738609044096314 --0.20587098060963496 --0.05907073144371839 --0.19001123651688706 -0.08826033838494703 --0.061698837927479155 -0.14512079608341846 --0.1224143859626555 -0.09598676878941785 --0.07985991812703128 -0.30074304164546134 -0.02060655486502876 --0.12429930147761475 -0.024020085715494074 -0.035918871220163746 --0.08673063143865953 --0.10153036098278169 --0.0825562611594305 --0.09297189839728308 --0.059244773256301134 --0.043590982851544564 --0.0074028737178112895 --0.11544692143179815 -0.06466204356597986 -0.2052745363350947 --0.07639543656474511 --0.05940514877494595 --0.07469196295204192 -0.18535078487812032 -0.0028707229352946074 --0.13154394549006287 --0.03745895786179402 --0.0747556060432161 -0.07226597938541604 --0.10475053502512473 -0.10605753982820944 --0.2026377612182792 -0.002085797071045483 --0.1619078335072256 -0.018117337333394497 --0.10288274451780398 --0.003339035266293413 -0.04212633510507791 --0.059088685709035235 --0.05498066439498802 --0.0803712766905565 --0.03921453117201492 --0.1759544843524738 -0.05113110906974171 --0.057838553417466104 --0.27236651708142473 --0.09141658300969051 --0.03187573698452198 --0.11594757607821507 -0.07587902698330139 --0.11295681835573647 --0.07967253687405149 --0.05844286822698041 -0.02263954603086293 --0.08744992968898345 --0.11004743382384538 --0.04706980705914157 --0.12789193947132776 --0.026474839656227638 --0.18506363178934737 --0.01710179280899088 -0.16587304717506682 -0.07881349627358528 --0.05913927298598616 --0.01229016056377594 --0.052055444238992304 --0.05730227334784892 -0.021841217216727514 -0.026173066921367432 +-0.254990252638147 +0.014858653522346329 +-0.034993064322295736 +0.02733561035375897 +-0.18829004413894862 +-0.10466998884824635 +-0.13758506861278869 +0.0801734660074207 +0.021152399289093467 +0.1343754358170675 +-0.13609388099102018 +-0.17555987614128968 +-0.11906567976958912 +-0.06684270967433836 +0.04483779285886327 +-0.14941881317226377 +-0.17071222702751895 +0.0726012015687334 +-0.07279312471493742 +0.10402122797857113 +0.0003434416830303041 +-0.12641339632580598 +-0.017005447607898634 +0.13874102024484936 +-0.12349357710694546 +-0.027957056135171285 +0.023917561918721256 +-0.2010857046877753 +-0.012716871527164069 +-0.232323141988703 +0.04169333927844279 +-0.057633144451718535 +0.06993621558238981 +0.017215025065006835 +0.028260854107833903 +-0.20230186371970632 +-0.04000642322736993 +0.15642482540067137 +-0.13007552840080583 +-0.007024467651137523 +-0.09375760690783468 +-0.01290477141298952 +-0.14022288341199812 +-0.05507328181686991 +-0.14085814620316145 +-0.12314783817205326 +0.02785272093226975 +0.10486464004527118 +0.007299483787562443 +-0.09891755696924949 +0.056417356164576854 +-0.11557864416824319 +-0.016308550261651115 +-0.012548748856564824 +-0.0178095854740767 +-0.09041822602642635 +-0.1359061344009681 +0.010488794199528318 +-0.08772318878418295 +0.03776348387025117 +-0.046431148218995966 +-0.052246762704875896 +0.005148765091522689 +0.0873721859634696 +-0.15168944487747624 +-0.051004533201239134 +0.024742788718927548 +-0.16275689565869284 +0.00020883664133847886 +0.015281835712887507 +-0.014021851710500653 +-0.09252491080214695 +-0.13036501425660316 +-0.04586091709967205 +-0.016109345732042934 +-0.012554740367280645 +0.021851555521647435 +-0.10830870222961729 +-0.10017972536420565 +-0.08908632880200233 +-0.00935619614620954 +-0.07230609797228194 +-0.044565327366779386 +-0.009206939188368653 +0.08220238579323659 +0.0175764048120341 +-0.06690498971524073 +-0.06559229059671028 +-0.014666812601742168 +0.041376268676970494 +0.21916237423208626 +-0.17648504535949366 +-0.008616758234419644 +-0.13320720788921456 +-0.033016732276934795 +0.04925980109865928 +-0.08179143181251275 +-0.23207553224223246 +-0.05407242212238501 +-0.22498989030208416 +0.09197581867034112 +-0.07283443116036362 +0.1414645340199492 +-0.14367832732517521 +0.11305590479747829 +-0.07404575037106347 +0.2893847780353018 +0.022326021652258346 +-0.15612318919609747 +0.004631341605863884 +0.06589315047890788 +-0.1079294648352954 +-0.12526642783794875 +-0.08597210216665079 +-0.07954610079991845 +-0.09746902853754133 +-0.07231434727919345 +0.0034058904172967804 +-0.12920725947366155 +0.06190501234510637 +0.22371455289166092 +-0.09045696884806335 +-0.05893441130874435 +-0.09493249550587272 +0.2022212724141327 +0.04970734295483949 +-0.11903098268203985 +-0.015505025911980452 +-0.13064720179654718 +0.055689573566620715 +-0.11816820007538256 +0.10954620402478422 +-0.21629262166322963 +0.011790970808432062 +-0.1611021222108821 +0.031212143759755617 +-0.10444072778561536 +0.00819561744245858 +0.0643061931541563 +-0.03919919250473639 +-0.09265944383076025 +-0.0894758393654009 +-0.04308845902727643 +-0.16640210443969677 +0.023944914697072547 +-0.10020384569960464 +-0.29564265269991186 +-0.11645176613938836 +-0.018998472486903145 +-0.12698441639553676 +0.05895992334900127 +-0.13477803526960505 +-0.09303383153459936 +-0.06895558769754544 +0.013095052793009258 +-0.11897981219834453 +-0.1095469106869683 +-0.05146713053051518 +-0.15825136012933314 +-0.03621638328753367 +-0.20735259469734427 +-0.018606042251129672 +0.15262891798372674 +0.09135556667092698 +-0.07036231693500287 +-0.01010461986204991 +-0.03762993668385063 +-0.06596494625587755 +0.02690801607859216 +0.02158667539590805 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_psi_t_log__.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_psi_t_log__.tsv index de47549e796..e4e7496a864 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_psi_t_log__.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/mu_psi_t_log__.tsv @@ -1,173 +1,173 @@ @CO shape:(170,) @CO dtype:float64 VALUE_0 --5.831494684210253 --5.701904843345005 --5.949368974150768 --6.050755166785436 --6.585187809043013 --6.650864603574508 --6.544312589203743 --6.441139369710851 --4.146274741068249 --5.524828329319168 --5.390424770356458 --5.586802120322322 --5.468917126300418 --5.698363787812316 --6.5383625395148 --5.5039598371557155 --6.400893019488429 --5.466109918505184 --4.974765480420021 --4.309302019458549 --5.609005040676659 --6.180305162670144 --5.976934300597773 --6.691007187635419 --5.4558432293894334 --6.228046287621058 --4.680698138769965 --5.996441517493935 --5.821614544454013 --5.333424043024774 --6.501027723944035 --5.6750086073293335 --5.626356087053471 --5.499582413107742 --6.423088839788553 --6.257753524134419 --5.647697915152166 --6.517604617219825 --5.758920796584939 --5.681960988756882 --6.1992159656382775 --6.043677506575606 --6.580453829905904 --4.819883736655394 --5.300543290026614 --4.973245674514526 --5.782226601075153 --6.880580149704275 --6.360307433883671 --5.305852112707681 --6.161501823266756 --5.93687607744366 --4.5524401597676665 --6.075118755053154 --6.213587511583106 --6.403794332377154 --5.242293095307419 --6.6343660267713265 --6.002957009201296 --6.463174853367908 --5.6364564578313185 --5.333513011561811 --5.963295979059167 --6.5234925778856105 --5.819505613698147 --5.3299466607888295 --5.253132326179157 --5.970585371467633 --5.9561921005760174 --5.17978593278875 --5.858630105833846 --6.383207930396814 --5.700354056325294 --5.710034578698793 --6.581745788951691 --6.626182735190688 --6.207069667843266 --4.356165720523822 --6.385845470478773 --5.626183057397337 --5.246212329711581 --5.29627971302999 --4.526206153698966 --5.065060475115395 --6.356760440804606 --4.882950937971541 --6.316361899737171 --5.721482818795819 --4.506056851349174 --5.909360072957461 --4.93055015328936 --5.4869796631734395 --5.9118505380204125 --6.420940781154124 --6.245230198248998 --5.294650751557804 --6.393196415329064 --5.761629234372524 --4.419540147213615 --6.857243516425034 --5.272713512747694 --6.860971795043832 --5.983181126117818 --5.580763214914436 --4.472397624176357 --5.768271817205979 --6.454090911328089 --5.0692959288269375 --5.032563131635241 --5.644655521114213 --5.120434302440426 --4.632550613514635 --4.503406227899607 --5.7143253516232635 --6.01424144385011 --6.349304047817668 --6.056387721491639 --5.868934061007598 --5.461170516270111 --5.288905985742242 --5.924908203200058 --5.206562627088317 --5.0238441265799265 --6.045318265938115 --5.481315298696054 --5.985467845121656 --6.2903918089975415 --6.067873227576291 --5.578042459498003 --6.087767665715757 --6.604732006406723 --5.587241623851435 --6.52433398087029 --5.391183231291469 --5.815643786506569 --6.425770714376088 --5.967353478406907 --6.746582246761884 --5.545180805315946 --5.493337017075321 --6.040464613228106 --5.995004458495044 --6.269933261836012 --5.004317001034683 --6.646647159334649 --5.552820891767378 --5.227784566735141 --5.077471875432616 --5.736183704241921 --6.19267494097831 --5.534628816609782 --6.937373586278021 --6.233477295770942 --5.890460826994477 --6.028941561504666 --6.6108879288811755 --5.647155389843693 --5.468930187692765 --6.448438827858734 --6.319796047144229 --6.856418135668207 --5.913032182841287 --6.694214981282548 --5.675323154635705 --5.985055850696771 --4.497943024360114 --5.5979888816442696 --6.2303498815066005 --6.005491735894865 --5.292138486850725 +-5.90612933285341 +-5.6501637749858995 +-5.969253015269702 +-6.014875960742032 +-6.489406419121509 +-6.70573574944037 +-6.469998745738422 +-6.394916640523022 +-4.130369106398365 +-5.5774426885977695 +-5.221082461076659 +-5.405453624811986 +-5.438228412034885 +-5.604092646419111 +-6.530507911688839 +-5.4245438891190245 +-6.325117006506916 +-5.328269391374319 +-4.882154857369788 +-4.316722757488095 +-5.65347434274486 +-6.1511764360921815 +-6.009807965984691 +-6.668407572113125 +-5.407041752555268 +-6.238141580573078 +-4.733925456111175 +-6.181417114971542 +-5.848779933785511 +-5.456849362873353 +-6.537061213416539 +-5.704706215332857 +-5.546392888604351 +-5.524931769790207 +-6.441296764825605 +-6.315690009332974 +-5.662877386476033 +-6.255222177307756 +-5.824369402448289 +-5.722288956984387 +-6.020852332880968 +-6.124489479032303 +-6.550460903096564 +-4.711377588228547 +-5.218454160333076 +-4.8373083162975 +-5.708069483737089 +-6.840326939314153 +-6.296674741024219 +-5.239766873774782 +-6.0898046242172015 +-5.774097848610526 +-4.572072326531758 +-5.97578453871648 +-6.140225766203362 +-6.42817648695676 +-5.212646849542573 +-6.6665622239925675 +-5.951846407436707 +-6.418230850711172 +-5.667932715588853 +-5.426518468094688 +-5.981217726953758 +-6.651281818582164 +-5.840224045075712 +-5.29168583709431 +-5.225788292767603 +-5.96919658348638 +-5.683944637984386 +-5.218120355236839 +-5.785384413201467 +-6.499418046075388 +-5.728633663916372 +-5.557207812243283 +-6.685508556402646 +-6.6253475174338075 +-6.116437066167649 +-4.357522931379362 +-6.2852829181643735 +-5.736721958280185 +-5.314790862756494 +-5.23893212741748 +-4.564764815949842 +-5.059125887412163 +-6.277651173823053 +-4.881483574223406 +-6.260641023708913 +-5.748625486356007 +-4.49201786998875 +-6.009474348336306 +-4.894803346422076 +-5.349453648124567 +-5.88725015528686 +-6.3105982575093105 +-6.224541129260283 +-5.174256643883351 +-6.308724367587558 +-5.765085663869977 +-4.4455200031105555 +-6.8083618814224 +-5.241467890507009 +-6.971849002379696 +-5.984793324196751 +-5.516706547029592 +-4.441708189458341 +-5.835913406728012 +-6.417057753936638 +-5.01487713141903 +-5.062748560585003 +-5.686338559142803 +-5.144249622067911 +-4.5796745258291125 +-4.459422142226085 +-5.830330809070528 +-5.940151120142317 +-6.38793364127497 +-6.091929367553063 +-5.768560361555316 +-5.464867432191707 +-5.218211184682551 +-5.844077482762832 +-5.297802105705988 +-5.025331911763075 +-6.087148170512097 +-5.390365423362232 +-6.054521743218905 +-6.237072772937868 +-6.018903302018207 +-5.538028870720359 +-5.964676572193755 +-6.673623749909944 +-5.5384218005033965 +-6.438676710595935 +-5.441687641024226 +-5.8235007656042415 +-6.260508668121715 +-5.968597544309825 +-6.776261702171938 +-5.514289668312784 +-5.4630792004092 +-6.07790227719405 +-5.9134435718879415 +-6.271246035984225 +-5.043500352669252 +-6.689232043703124 +-5.438910790404376 +-5.417037448767159 +-5.052787028039681 +-5.756457482826005 +-6.170210096166937 +-5.4440532448863355 +-6.899233029148551 +-6.254251012294803 +-5.7760305501149904 +-6.026271710907097 +-6.726456406175265 +-5.671391729545762 +-5.4245478644747855 +-6.436074224814457 +-6.353464399927416 +-6.801414615550531 +-5.846030264046276 +-6.674007598437272 +-5.703792677568573 +-6.101965087189712 +-4.498128654157017 +-5.749580442276172 +-6.202874898334012 +-6.048991164382967 +-5.312246965175328 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_W_tu.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_W_tu.tsv index c6e80e0df0f..7830e45a584 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_W_tu.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_W_tu.tsv @@ -1,173 +1,173 @@ @CO shape:(170, 6) @CO dtype:float64 VALUE_0 VALUE_1 VALUE_2 VALUE_3 VALUE_4 VALUE_5 -0.18638004027724503 0.054445364159444176 0.05492042725323164 0.07914553458498379 0.059395159219031275 0.1109053706052984 -0.1887082605149887 0.07827341508390603 0.053294854294028825 0.07753057477120277 0.06468744326564745 0.1213875180359707 -0.19340512901767903 0.0747348744339327 0.056022256510859215 0.08436549476251293 0.06020217799551757 0.11745989386858939 -0.1831784637942384 0.04937641217018871 0.05023053358339931 0.09848442220152534 0.05348940190043709 0.09861371150338892 -0.1814339295200074 0.05726982474840878 0.05125626957828095 0.07833295259814411 0.05807233063078831 0.1139881639923321 -0.18394383862652658 0.061677865171385494 0.050765125490890725 0.07413555844765761 0.05818501918482486 0.09838321307748929 -0.18453328946164504 0.04906832332948653 0.0484504403801409 0.07976668124840959 0.05779620640368308 0.09295987069759687 -0.1985905612816648 0.05865712508841656 0.048084949576288914 0.07898504316116765 0.054946466201232246 0.1025141592328047 -0.19567879286789164 0.09124541482275766 0.08446085698286748 0.10775998959738353 0.08633468900644928 0.17112408794566436 -0.18278261834766987 0.06960355464497416 0.04967133510662829 0.08720854208215144 0.06308168477448217 0.10706764201814221 -0.18424113169394624 0.056976872934118475 0.06261029258673641 0.11528511564668331 0.06394261185858358 0.12571961242190482 -0.181802449178327 0.06613034044618796 0.056822229986494076 0.08456285288035513 0.06630352221426809 0.1257479635459855 -0.191123470203438 0.06517419568661156 0.05663641959336538 0.07938841264674555 0.06370404544720523 0.11763778476336442 -0.1906669953835963 0.05140738459565288 0.05601746651215549 0.09584618841089389 0.06117403558686995 0.11344726743046028 -0.1939027935550922 0.04674699900326651 0.0459027443391908 0.09379334297048103 0.051656173824682905 0.09059577378949195 -0.1920282647383268 0.07623452306688207 0.056372792978168135 0.08286626139475292 0.07133807827973833 0.12835887844613136 -0.1867440928401916 0.04781799107890557 0.049687213772443915 0.09001345104715507 0.053689194305759504 0.10355980370294438 -0.18035391912526344 0.057838545380670854 0.05453846367614229 0.08373200797553197 0.05685404954031482 0.10697190897746921 -0.19524439588537038 0.06452224626369482 0.0588385768011447 0.09368841345238207 0.07144941506124168 0.13558010774160367 -0.19105280813245926 0.07364328556422281 0.07654460597719483 0.11410165442848512 0.08228529234079718 0.15038242820760972 -0.1937282186329369 0.06494394336886906 0.05798626606878538 0.0860433111001758 0.06350714871920142 0.1208284500606246 -0.18396078357828377 0.07092259775202532 0.05094061780384626 0.0754039989292337 0.06190469354582211 0.10873350997184691 -0.19543300132604377 0.05684596488298388 0.0530696277153092 0.07471409359386712 0.05446630755626686 0.10454655754180375 -0.18343145676033046 0.046414946811106673 0.04630561218481213 0.07533808505374442 0.0485754883578731 0.09564423175206357 -0.17787662422395734 0.055455877420610186 0.054275082419276095 0.08699360907459923 0.06748004101888472 0.11749932393919515 -0.18496272213847098 0.05212944563056782 0.05138675033855413 0.08084349902723423 0.05514551504953828 0.10470547180161188 -0.19471343242980488 0.06547665039402994 0.06002117571912944 0.10832080492544284 0.07374725904653194 0.12902189266622022 -0.19168597737226306 0.04753321260081667 0.05027581021909984 0.10144017069635528 0.055798162282325765 0.10775979409847251 -0.1899006330536646 0.06568904355190609 0.05706352104018183 0.08136796514232321 0.056599345377596796 0.1162621162333457 -0.19182875680720624 0.05732507056539553 0.05821991225487051 0.09052390174956283 0.0648862565607824 0.12476084581129629 -0.18655539885220776 0.04639142241339643 0.04442839616073524 0.07779294441996817 0.05253420665678031 0.09472707381060051 -0.18025591869998453 0.06847993026067245 0.050508932776426776 0.08054530984238935 0.06072320693608706 0.11137260706948837 -0.18739819749683842 0.0741451065503948 0.0543043186253616 0.08135879100688913 0.07107080672704068 0.10741714766206752 -0.1936049652758159 0.06411186206841343 0.05265814228701117 0.08276660263924218 0.0674856371370957 0.1125806850971838 -0.1802546165480234 0.05041874774744445 0.050548580017167215 0.09328573242319632 0.05284047527272683 0.09926400190656978 -0.1809637233501794 0.058672030941654484 0.05302121039516297 0.08309656591572481 0.0602465412716216 0.10884783267747837 -0.18376090515545548 0.05996273078723493 0.05140562423158619 0.0798263433918944 0.0634343351462127 0.11663552144279114 -0.18464317817924228 0.05362582778287396 0.04937429181034376 0.07211743122499854 0.05841827840339866 0.09427067749910933 -0.190661864069719 0.06885576786186365 0.054248321275237724 0.08358055906386672 0.06172472403651727 0.11573349312135198 -0.1830894551613994 0.05750558388623571 0.05650623799462231 0.08165468032271585 0.057685937269925075 0.10853411124173595 -0.1786539342315104 0.04919334380077958 0.04794282039654323 0.08735220545069972 0.05496248366748454 0.11002120267708437 -0.17880171299935105 0.05136108063943623 0.05073016518508882 0.08330593937575495 0.054631202711911936 0.09956365235951506 -0.18623432244741026 0.06271451099765092 0.04959624651090658 0.07257328979841648 0.0602018809198207 0.11026735704698683 -0.1947658823804554 0.08206845027994172 0.06905507531360007 0.09190110488586865 0.08040074562848715 0.14304539187590803 -0.18284987528219826 0.05068236734624916 0.05657459542149778 0.08685652891079572 0.06240762814324983 0.11371000955319305 -0.18826440838882924 0.06488544829394532 0.05988675837873034 0.08468374123884596 0.06992334994817308 0.13925302475049642 -0.1867606358449755 0.054007225524564766 0.052277308309198516 0.09377054633475179 0.05500029440212944 0.11063749300986038 -0.19083112351502615 0.04698854567805957 0.04585738955517756 0.07175253652887942 0.0496445743161924 0.09232330490168482 -0.18245830393875592 0.054076852958935835 0.04762161091406169 0.07772832120746895 0.05738903637637041 0.10050887430885912 -0.1926863031214152 0.05790742885612426 0.05768080702438898 0.08780368435299267 0.06410733541693629 0.12369126031595329 -0.1887852495320867 0.0626426321062232 0.05185807684838464 0.07851689943073117 0.06233037714244255 0.10180254880575919 -0.19947360483998364 0.04949135082899403 0.054396615827985224 0.08749948123074133 0.05507805950804428 0.09856603331345236 -0.19326138362396236 0.06689827376775531 0.06773786998209154 0.10530572290968125 0.07808175201452515 0.14189438619360922 -0.19524130336798923 0.06360779488788718 0.049196021047435 0.07254357924571415 0.05983717582566694 0.10879611807732573 -0.18749521911679767 0.05672272037794201 0.05078282041590622 0.07437801884639912 0.057268603038535246 0.10674120352407801 -0.18748631639195795 0.058617812915518756 0.04908971892331004 0.07806027181228106 0.061992820296050306 0.1104981096727978 -0.18979078316363063 0.06887578810800755 0.06152557628757034 0.08130462465534943 0.07121027529629506 0.13895815143337764 -0.19060816292940702 0.059356638830716624 0.048025254878565904 0.07959996684960338 0.056828029424639506 0.10840650527302617 -0.19182686998761106 0.054690268805373685 0.05570289624528354 0.07551355419354877 0.058263445072157465 0.11974462429446253 -0.17950945894426215 0.05720762402028392 0.048949632721814254 0.07341126915074801 0.05653872219197345 0.10013635143226972 -0.1832421664922389 0.05213563932803334 0.053734352620095974 0.10975560984020866 0.05843795908290123 0.11502290726599804 -0.1952128144475863 0.0584319205015677 0.052592602057011696 0.08722323657773562 0.06483874795374624 0.11694010557670349 -0.17971951986377502 0.057500325428271826 0.04977456790397835 0.08050618809027751 0.056989781175353034 0.10755814864096191 -0.17937747034619425 0.047968017299699905 0.044150343222129684 0.07579544989637634 0.052412513990848036 0.09373780220367778 -0.1950489384444368 0.06568625757002712 0.0534458169193231 0.07798158279607356 0.06320506954687403 0.11233577499689276 -0.1977196808193122 0.054246972077068044 0.05362481745591875 0.08439415018722982 0.06462868108499148 0.10850473860219577 -0.18775345719256228 0.05905665984232387 0.053775809014875664 0.0843558887833343 0.06169151022291975 0.12334387050713624 -0.18409240161239465 0.05109172694857307 0.04861877087325683 0.08860572430638508 0.05498024405642487 0.09581361940593704 -0.19189014577478877 0.05926831970372572 0.05299252042666068 0.08059617204649791 0.06047464607015344 0.1093021591948482 -0.19211614280023484 0.06229265306736037 0.055496298503456304 0.08518403553520768 0.06381686764839897 0.11696560215501425 -0.1731266966764689 0.06280227800275634 0.05485181501597618 0.08636252284818302 0.0620702373133323 0.10890184827175652 -0.19654575145476902 0.045787098154232125 0.046614785155197576 0.08254037474650407 0.05063550931510037 0.09962703015726958 -0.19049423088620573 0.05387180322489938 0.05435591702174757 0.09570489626531663 0.061523540685408294 0.11444948613954876 -0.1842999020865953 0.0726578035995433 0.06095833254142224 0.0801629651705089 0.07175144990765735 0.11697631012967111 -0.1872859567999002 0.04521800336322309 0.04713900513687367 0.08741978594145278 0.04943136661971326 0.10142619532230314 -0.17730435703387373 0.05018954340426241 0.0457722531737593 0.07926812316090735 0.05292519883070055 0.09660843226526647 -0.19325464929183467 0.0490764783200236 0.0497717235070763 0.08793824359071746 0.0549982233776153 0.10821075415936682 -0.20050592646387974 0.07696288274975518 0.07574204140516418 0.10590836234640573 0.08542869052026256 0.15799677934559905 -0.18597024604078669 0.07005176671424883 0.05052341529868034 0.07885888829883626 0.061192574047044264 0.11287801462056068 -0.18835581071164817 0.054408772084426356 0.05270814105752753 0.11678729968249342 0.06047269481124564 0.11286512341094818 -0.1862272181853617 0.056461129233432904 0.06045069965232877 0.11012860851787477 0.060618643815751536 0.11542696330451702 -0.1812244864127353 0.05787198329454759 0.057177293547320894 0.08595291159233998 0.06620128592034492 0.11417683256346765 -0.18553983310231892 0.08347365172338903 0.06893649007685425 0.09697976436005615 0.08494710821352927 0.1575120556441598 -0.18661027948399278 0.06284020369906398 0.06293250611235691 0.0931351569989534 0.0637757977636135 0.13074788127517553 -0.1815408898645528 0.05244329706120485 0.04725219658792862 0.07916542947959052 0.05380182430591047 0.09640967881957296 -0.18654906192233017 0.0703960889725134 0.0599964126353278 0.08888611728515756 0.07293759525602833 0.13171553473319328 -0.18077187683535617 0.04575696206618281 0.04734584545245752 0.07761557880283732 0.055204757413675996 0.10374719148456844 -0.18304639179598087 0.05390307004853003 0.04843916142631383 0.08066718405358339 0.06272844569851785 0.11445743227753517 -0.1947746746372087 0.06988728573201815 0.06652530826818163 0.09848103840194912 0.0736869250770044 0.1482577168072303 -0.18454108855684606 0.049885412133637015 0.04985048520472533 0.08791101560100677 0.05464318484881905 0.09921830838137595 -0.1874052518106937 0.06429431139398058 0.06568085745154975 0.0943096807822076 0.06930408038718229 0.13788463073066817 -0.19045171934966246 0.07457780666742195 0.059847731134835165 0.08799105065308727 0.06742015226918402 0.12292980906473197 -0.17585688179425937 0.06131615820902084 0.05595590511201905 0.0755344051163804 0.05899782030489495 0.10832549005622366 -0.18410974869860833 0.04582071739044028 0.04915496952776452 0.0850865157038893 0.05248630237953995 0.09660773652651283 -0.18509518171118677 0.044185404153896206 0.05021255584795561 0.0844835219105996 0.05355945636294086 0.1004336981173842 -0.18887676480557203 0.057739868025515145 0.056243335785346744 0.09184884619311164 0.06231494129813468 0.11384287317693922 -0.1772856710244951 0.04982871453792992 0.04776713707657943 0.09350426375770614 0.05257043467120919 0.10691407297293476 -0.1892964673963698 0.06039028501425865 0.05606726357008428 0.08652111358439431 0.06678533526428038 0.1206665876442617 -0.19166567736410528 0.07825729063708703 0.07356255160902103 0.09505444418908698 0.08746094874988164 0.15422044252214498 -0.19037112125485542 0.04617400524446455 0.04980811872430387 0.07664027277485237 0.049414145661500646 0.10107469200453194 -0.19188957534490295 0.05206329797046354 0.0584276430784381 0.11158090740471366 0.059801226678973696 0.11950897514160184 -0.1851692690836062 0.049146049469753136 0.047014637039771184 0.08001633956090169 0.048836763063622717 0.09386307104462818 -0.18218215612289082 0.05624041239251572 0.05056787588616962 0.07590403644261531 0.05619553206274406 0.10163401060808121 -0.19383298466603846 0.05295939257239532 0.05974604000825306 0.09841486922445478 0.05635823937049521 0.10722330193098818 -0.17925190786893577 0.08425437786408217 0.07649691360992761 0.10820068324671589 0.08208263408601904 0.15538490934393004 -0.18382400407829763 0.051457534566251316 0.05485333282979863 0.08295343878080781 0.05821764680129243 0.1062341226519008 -0.18310465817743515 0.04684592865994392 0.04487645643320305 0.07721562470209231 0.048805744860125407 0.09072520047608258 -0.19142304186557146 0.06791489762973854 0.06307429417719092 0.09408508959069556 0.07524526917899396 0.14876366235528676 -0.20262011413158068 0.07079903990300677 0.06153356763716193 0.09057983345770884 0.07076631564724184 0.1317625775855039 -0.19078987215231394 0.06199231581124192 0.05159807285706208 0.08100663065447924 0.06346244189705204 0.1053145447544102 -0.18825154300708197 0.06867037470923867 0.05873835564134677 0.09731965170734735 0.0719597647959311 0.12299974634480514 -0.2002976845894517 0.07298129273539382 0.06777392786655585 0.09413320314020689 0.07588339200451753 0.1417103621152723 -0.1862698073007 0.06989483295615392 0.06737458445801876 0.10520864721506197 0.0772649781885838 0.15017479427685382 -0.1991484718954384 0.05353634284706036 0.052561205306090326 0.08537844735448123 0.05794252335353746 0.11073468291411681 -0.1862710472889814 0.05126754705129284 0.0510109681112829 0.0788887241802578 0.05507190606559105 0.10729753084117331 -0.18897136696730113 0.06762026424419863 0.049932874063853154 0.07778620437473766 0.06083970261357433 0.10614415087196977 -0.20579749935123143 0.059091669886552976 0.05116940016859107 0.07469446367691503 0.05728925620473198 0.11210358269548194 -0.1932745265740834 0.053763630901192454 0.049564720518804686 0.08339401193617882 0.0583284782300624 0.1110806320413557 -0.18756521524725245 0.06843501591960847 0.0578667234418627 0.08755120319026047 0.06541714729435051 0.12459560536793948 -0.18546037421265116 0.0549510281753249 0.053656129202183725 0.089947260879 0.06258619169483566 0.11571073257630655 -0.18186510468011677 0.05084899060892006 0.050551066024576964 0.07791143358217342 0.055137706533668916 0.09301837430562034 -0.1832494566526383 0.060878533970666344 0.05644978896109 0.08855917166132406 0.06575813440166649 0.11090206942724928 -0.1991624964837731 0.08389805500820043 0.06641814921959288 0.0891521875308944 0.07465061547890872 0.12932545827933392 -0.1878057727354853 0.06661261767854784 0.05513591803962569 0.07989845671227837 0.06231806133780155 0.10637227920525583 -0.18905572699769968 0.05952723720465491 0.053488176525860444 0.082963565357204 0.06044332940913741 0.11379480457391895 -0.1860166333229481 0.05392091054030232 0.051543664826685626 0.08931792209506957 0.05548759745389629 0.09971545207337151 -0.18516204167261144 0.054498726967483604 0.05342354753299008 0.08135004746731453 0.0595448529121248 0.10292692983836645 -0.19112891438371615 0.055556698252862614 0.04955028224826009 0.09502027844241023 0.059008153562335505 0.10322406251217464 -0.1898852720120985 0.0818901447329896 0.058144627784737696 0.08458344627257056 0.07031456317668114 0.11520236175457356 -0.1827399960123316 0.05046723924147364 0.04866028768597128 0.07982443237321285 0.0544372164010259 0.09992863850887593 -0.18064256110760035 0.053028636688959206 0.04710792298239019 0.07963149507627966 0.05819199406082492 0.10439781377982164 -0.19053430532264007 0.05512410682753198 0.05354888535129217 0.09956782373455313 0.06278911309266019 0.10664004428321823 -0.18248309645937752 0.04891109924254083 0.0492821001344573 0.08541058137111732 0.05455199794394008 0.10040596831118444 -0.19183198072070784 0.06853680865041906 0.05746761013690413 0.08404423369524125 0.0655786367625786 0.12296716571922786 -0.19039875492645345 0.06147137703331364 0.0546928659746691 0.0840689577107069 0.06492217350520192 0.11728581072390126 -0.19246631582992996 0.05017414566566366 0.04641330222176502 0.07933269580078439 0.05472640488581626 0.09992983756378963 -0.18588598077498597 0.07038924773540994 0.052011511554258455 0.07829581044728845 0.06524881520542564 0.11300236396174021 -0.1831445436064914 0.05157268815490313 0.0477090701809697 0.0750578713347825 0.05392974968459304 0.09941799651500877 -0.19332188586624324 0.05589149933198982 0.051286913635742 0.09181017365106356 0.057304305341077104 0.10781501044843947 -0.19059747769036917 0.07005651892515496 0.05931777406758302 0.08391348045854274 0.06801996989227016 0.12921078708767103 -0.19815443446148123 0.053351720007348204 0.049060961229539124 0.08514050823423555 0.05429995886603643 0.10032994890005227 -0.17866198992853144 0.06457402067747804 0.051363086992214875 0.08065591206491056 0.07266505296305266 0.11132907363138582 -0.1849303306470133 0.058145118875932364 0.04951175225705224 0.08046362049383934 0.05766465082431853 0.10033374466144246 -0.187311821672608 0.058319059693592065 0.06324752970681846 0.11771548459986259 0.0683818567421797 0.1299672603899857 -0.18908181547921005 0.051716107684956866 0.04676654540461454 0.07769715023745613 0.05404013569375687 0.09891187813507334 -0.19209059611850957 0.05882402648791141 0.05730244200551834 0.09069070113389346 0.06304591475290962 0.11477524398696917 -0.1882574961275503 0.06075634650077176 0.058345100100427684 0.08898757700862069 0.06662363466158785 0.1254520940779595 -0.1864673593597838 0.06235183524948838 0.060391232198620616 0.08695699930555553 0.07247171277676319 0.12596209649683043 -0.1768917394239181 0.05480601289855835 0.052861290984504115 0.10196441703001172 0.05684098205276057 0.10456980055638539 -0.18254608871801994 0.06333674775523047 0.05400714855987875 0.07575754415393358 0.058917333716207276 0.1081701078953638 -0.1871809209749082 0.05874081580760016 0.05677773916553205 0.08490374237126322 0.05668918616874378 0.11134894621711228 -0.20289682418539814 0.04976569557199512 0.05135077836843242 0.08086824150033964 0.05524656454841744 0.10499957595026119 -0.19049449625736023 0.04856153293079166 0.0509779066451867 0.10419836570411287 0.05209860689221629 0.09861460225242608 -0.1950911431148556 0.05729818957968382 0.053680889841276 0.07738885959319915 0.05992686487204867 0.10787898203095372 -0.18314627161343308 0.05151799925564575 0.04958847550380262 0.08693773545021971 0.054978268740074845 0.10095416187794966 -0.18530821842404033 0.060778902230921 0.049237063816254666 0.0759518203547041 0.05582353853586105 0.1030570246814225 -0.19349296084304263 0.05290801094153292 0.054066966273437995 0.08427252169367667 0.06242213682741933 0.11136469680192133 -0.19377823379021267 0.0629467605902506 0.053137629073330805 0.08090285295832957 0.06107347575902247 0.12500655499021618 -0.1847582290901183 0.05417679276334637 0.050660769426776345 0.07072542132143705 0.05699172449081013 0.10571381365103658 -0.18397965759602897 0.05549349354822148 0.04756495840963654 0.07763543449221247 0.05124592544778768 0.11055730627162888 -0.17857048778731036 0.04554662708024604 0.050105795407270455 0.0843993978699309 0.05210691542487669 0.10299024079041197 -0.19799459895190305 0.06061105291659262 0.05326341338465575 0.08188293105738882 0.061105703424543294 0.11409551568539815 -0.18810140107736786 0.05652130723682623 0.04790618279437712 0.0712053976846249 0.051667732075526294 0.09541899366674492 -0.19181815408630867 0.06795190091129634 0.054677937181757535 0.08333301593360273 0.06571229221398878 0.11268800087888708 -0.1890153323669172 0.05252090485884076 0.05066630901630168 0.07943162533640101 0.05754362259663104 0.10262191518771949 -0.19060812640594077 0.06927024381033203 0.06996998395848021 0.09599846135089549 0.08472036673867303 0.14918811428947829 -0.1855778767653199 0.054043118663965044 0.050944827791620004 0.09305031466811055 0.05724918011201132 0.10761357329324389 -0.18639648711134102 0.05559644384312027 0.04957895838814938 0.08009897266505482 0.05925338923826412 0.1117189713626293 -0.18142180600748445 0.04703604249481958 0.05612280238075603 0.10727665327039618 0.055251228312999806 0.10067560775076811 -0.1896566113990206 0.05225304979439156 0.05501854009464533 0.09629777619238883 0.06070930143401528 0.11268710306895109 +0.04807317403072505 0.05201331275264244 0.11013928560158447 0.1895457468552736 0.10213995235213001 0.06926768022491747 +0.05162586172078085 0.06881821450794115 0.12523666330484287 0.19756967664953168 0.09079203116130592 0.07372731977723972 +0.050254762871751395 0.07122840954305294 0.11335684677826505 0.18878579986964478 0.09283713858777375 0.06560664104026898 +0.06209785672390832 0.047189570024666304 0.10522077791310254 0.19404059213247965 0.08720257635611157 0.05431189002951307 +0.04551820604843571 0.05597075723034222 0.11843684704009147 0.20031242180478867 0.08280232078450885 0.06696814192680733 +0.05161595596019344 0.05663646490640864 0.10626471276091204 0.19481679751155115 0.07938914563656248 0.060511783354742305 +0.04939933568489195 0.045956568315813726 0.10596425461910049 0.19043400365185206 0.08681260623858823 0.054643760525130286 +0.04569260254056422 0.05124579100370079 0.10373310960096456 0.1933304238535609 0.08774960415066924 0.0640822410504174 +0.06966792968652627 0.08169049401892226 0.1652383616688669 0.2102863459900328 0.13906369098792434 0.09875759400469684 +0.05487992744000146 0.06766094922500944 0.1221370774129842 0.20160986668993408 0.08810880721903078 0.06721020534072446 +0.07396892059787841 0.057374658733934984 0.12433620626220025 0.18821829412786018 0.11418632195410412 0.06819368126896015 +0.052675409603188866 0.06591827070156334 0.11906606313207847 0.18435587188727545 0.09055565880984029 0.06699103010892347 +0.05225772341774337 0.06257834967493822 0.12581154171620276 0.19853884373951275 0.09630028308670092 0.07418757849089742 +0.05840184835897951 0.05441235421367879 0.11367973920607762 0.20227789986740974 0.09208312807135384 0.06353227842551443 +0.05424104290970294 0.0427273071574258 0.09555633249529352 0.18026563403746781 0.08463213374811632 0.05017375005367984 +0.05260981592471459 0.06374477417614224 0.1297600951904973 0.20175059993484315 0.09395226296316818 0.08568278852452642 +0.055167921524338234 0.04550335279019284 0.10303478954791122 0.1994723059311546 0.08329143527916895 0.058362413024771215 +0.051817052973928274 0.05216138653893812 0.11099875434418019 0.1973704381697258 0.09529668674678436 0.060042573616044016 +0.05811157918257847 0.07208528535611808 0.13454815920360658 0.20350764570099159 0.11297920624631999 0.07166055039573054 +0.06433643491532157 0.08636260966984592 0.1618227161358544 0.19519796483463253 0.12237563318445638 0.0891204072837025 +0.05100978219547711 0.05776972899612705 0.1317003419296667 0.1869779025687765 0.09728034670635821 0.07835631676541206 +0.04927400133256195 0.06233165503739729 0.11645965472355538 0.18910675165387725 0.09099415379341216 0.07798108533657727 +0.0459113760936936 0.05027298075632433 0.10543057466754704 0.1947032663449371 0.08399953273879111 0.06513762173778395 +0.04767225441718306 0.04322485136087224 0.10738789204196673 0.1866254737216298 0.07488516822700983 0.049381398160471185 +0.051691438278117244 0.05415608484431456 0.11776563289946515 0.18814707954280915 0.09760713814828761 0.0699404813272016 +0.049849942177789645 0.04561103312291225 0.10587231602269193 0.1815806071928004 0.07953816135249155 0.057508046667398095 +0.06609125832721749 0.06382973060532722 0.1385729122030582 0.20351999725986952 0.10888362577074318 0.07751024940369303 +0.062430290896663757 0.04708652981251478 0.10626264907481954 0.19491821404078863 0.09262863678355569 0.05999376107462948 +0.0533985932900166 0.05573876809936018 0.12008216881134907 0.19561644825461005 0.09601632974807087 0.06392107316715095 +0.053126863984053856 0.055837304680972005 0.14416495025161236 0.18992200982965496 0.10333229518438128 0.06800387571868619 +0.048830270903599614 0.048107621403728595 0.10267474797785289 0.20281573136726117 0.0830140625136125 0.05281964678611409 +0.04818733750535279 0.058571981523753466 0.12138126320055415 0.19840458944184705 0.09169954318096611 0.06536568751358277 +0.04955473964880471 0.06531300332781212 0.11961916377973017 0.20395013310438145 0.09360633663428906 0.07446156235016599 +0.05454131951908259 0.06189965527745826 0.11787904176293006 0.19384352386046544 0.09514464595146153 0.06844764768267514 +0.056634187018841625 0.048753016236135975 0.10028198044810463 0.19977866575430733 0.08015332129289415 0.05479662166784854 +0.05043819365725195 0.056297270750393986 0.11087310143760003 0.19423866603479112 0.09285920117601024 0.061585800901929985 +0.04936155000805112 0.05725058282012674 0.11989177621613112 0.19382673325651262 0.08693346964733964 0.07268887970310957 +0.044996852366842706 0.053140937048525586 0.10422504214999019 0.1859356447595195 0.08183292094342086 0.06030211190477755 +0.057165037595734776 0.06471333675878355 0.12040032998837244 0.1939263091498834 0.08606637584034021 0.07067546882754144 +0.0494294331017282 0.05665197370392707 0.11560444720822313 0.1934034621373332 0.08531109178920086 0.0696423571310296 +0.0514902037315359 0.04855853163564437 0.11606593193205358 0.1969155638915971 0.08580167019926345 0.059942602694387316 +0.052969879410771234 0.0471076447135073 0.10261063576010186 0.18923587361039756 0.08078708297851821 0.054509525032186125 +0.04697287881635561 0.05670908684829565 0.10372094798173409 0.1864749641630737 0.07716910391531817 0.06758544683214841 +0.057650805167361735 0.06818956772167103 0.15788760229943477 0.18555990142772702 0.10504737107760785 0.08728333688165815 +0.056707979795937814 0.054223828318334825 0.12771031004874991 0.18921159171466329 0.09950963238066066 0.06398905557978997 +0.054559695402619596 0.06419176140586196 0.1415335798819599 0.2040926002104698 0.11051920019643546 0.07373265569824203 +0.054526769572774525 0.05434914874514138 0.10760797846765198 0.201625318301649 0.09108272847397901 0.06478650627558317 +0.04629804191667071 0.044169801021281416 0.09183910215079003 0.19173282906884737 0.0696388846614175 0.057689419645910206 +0.04693220217240192 0.050695864641277705 0.10732121725587565 0.19091265062860785 0.08510440441996034 0.05802278385152599 +0.05676080830182423 0.059003203225596206 0.12975429882210915 0.18808135514562954 0.10816421991603507 0.0672093067316988 +0.05218003113998766 0.061055914283515325 0.10355151352893452 0.19108910380280503 0.08954830195638427 0.06215500502600005 +0.052814332277936825 0.050760558624007926 0.10997959859520004 0.18556296090127067 0.0870310146472698 0.06271445460875592 +0.06064033937661846 0.06551720184014803 0.15448949970880263 0.19838361207519092 0.11969214093013053 0.076819537707698 +0.04967347030690594 0.06270988829870246 0.12024418553365251 0.19469184364556658 0.08592580939250798 0.05987428127538525 +0.050649164657626033 0.052719261944393 0.10964453372738979 0.1781217412909973 0.087452286948438 0.06034108017376505 +0.051926790270014 0.05847315411186864 0.10399007096008075 0.1858601295879117 0.08744380886913802 0.06485481586833518 +0.05408307275538877 0.06428706852255878 0.14086603515869517 0.20173109180578652 0.09904978809165278 0.08294117154078179 +0.042385863782239075 0.05032151380374305 0.10789137155980774 0.18635728830336287 0.07757402051276092 0.06238841896747046 +0.05020098446358167 0.05418656242489987 0.1112361804186372 0.204006529539435 0.08747101928731542 0.05753975565011335 +0.045461536379865344 0.048226104999592116 0.10382252852780155 0.1933053632975488 0.08567303054630304 0.05330918509221679 +0.06241099245701968 0.052407572775896236 0.1132510284899499 0.19768893669101567 0.0913197479662808 0.06082801239182741 +0.056355975020830736 0.054536075492098615 0.11635086863202351 0.1913209201239267 0.09692288200771053 0.06922579121005187 +0.04964975986161388 0.05147650973764144 0.11071563798921549 0.19573948251029263 0.09034861436857294 0.06364948077613145 +0.046232604529881066 0.046092014391043844 0.09766973004031314 0.19412477676287143 0.07838055248005817 0.05705624464052863 +0.04990432136743105 0.05591514330891446 0.11693999441873533 0.20036740235903777 0.09329779500303062 0.06640732505089146 +0.05330223099797403 0.05850512128585191 0.12726689523308393 0.20071735018192244 0.09802264972671614 0.0661152004536019 +0.05603961847065132 0.057639977097845026 0.1345119487198216 0.19849591806535105 0.09199023441919167 0.06789457282228173 +0.05362142284624072 0.04773393613004446 0.1162288945150668 0.1999086618383249 0.0881654790402104 0.05908995967761163 +0.05270470668182587 0.05971803825328254 0.10472840387876418 0.19188580064890817 0.08514522269052859 0.06056647117041451 +0.05558362578148603 0.06158625072845778 0.1277378179554717 0.19721323789280892 0.1039041762705567 0.0698089673612913 +0.04746998351763762 0.05086456992344318 0.11638595944280915 0.18197747688778587 0.0960719711499606 0.06610193375799688 +0.055901283765563255 0.044250103028261184 0.10104523914798487 0.18853088393821982 0.08618315934835219 0.05814138512212533 +0.06317001048005136 0.05440893078631158 0.1127410092036717 0.20420472658313785 0.09157938541212812 0.06426230736066801 +0.04816945671859349 0.06826087269971874 0.13473926360311256 0.20358126869332824 0.09941859639029992 0.08189979191999854 +0.05425540313795881 0.04179245965698319 0.10077025581225058 0.19099232514324532 0.08368476640124402 0.05425940339501229 +0.04509331678631697 0.04273432708281684 0.10979687466669312 0.1930015840791241 0.08692392458945739 0.05852103340732905 +0.04802825493235939 0.051568317985358464 0.1036990035588812 0.19430262499264767 0.08311254934756843 0.05864308084250645 +0.06610763237493313 0.07794605318156014 0.16471760918260944 0.2137717381749123 0.12489761656725935 0.08682631987203028 +0.05006325375493333 0.06322780232158431 0.11650852826330474 0.19694094481749716 0.0874271938411044 0.0647061366438432 +0.0705539477265702 0.051275872231933084 0.11210769238841249 0.20165360477531374 0.0951366269218323 0.06373404981938759 +0.06527118525242835 0.0549311743659167 0.12207573299784855 0.19795458360914667 0.10241297694756164 0.06186831885592809 +0.05867733156781265 0.05786419831279545 0.11932588706212785 0.19635701819591658 0.10263850256059676 0.06895229097371113 +0.06546128346715244 0.07020534857225155 0.16782899659691583 0.1976409416933287 0.1253252950584918 0.08869793665880064 +0.05544557306460533 0.06321724709838235 0.13277606305175108 0.1978005197784024 0.10206093967255093 0.07876623533170239 +0.05301725464996647 0.0501257638796383 0.0983359678828772 0.19384388793427285 0.08063383756281506 0.060555352676039065 +0.053846061207807425 0.06667866720004861 0.1491989740762782 0.19417128183297921 0.10292114057992635 0.07868970710075292 +0.04751349299770514 0.04746126944279468 0.10167307192375769 0.20377742598059098 0.07861589495297182 0.05300251494901612 +0.04830087114952427 0.053879096580402526 0.12189887290882122 0.21242989729405695 0.08976173367805215 0.05825965640409058 +0.06198989487435147 0.06712280207909699 0.15734969080431171 0.20539136478366113 0.11803202617183468 0.08385510977330567 +0.05380869852655645 0.04604522068343617 0.10558134914890877 0.19998755841459076 0.08518608644684332 0.057766376153604374 +0.05733549949537818 0.06339636412102713 0.1324626318723951 0.19759681560643483 0.11021484970709843 0.07360655385902558 +0.056397616606864966 0.06699241456406206 0.13601666327312736 0.19489285826076008 0.10044562932399329 0.07120948445217319 +0.04782326947890045 0.058627239859744516 0.11203978390901773 0.19584651769696954 0.08713666985589039 0.0638054675142051 +0.04961162493190705 0.04426104564068481 0.10131801842594369 0.19167118712864895 0.08903734750145431 0.056489553399174 +0.048794743773119924 0.04654295365549246 0.10088116423317713 0.1899306575559907 0.0848358738324746 0.057305586399855356 +0.05654830716702932 0.056944538689765456 0.12070925005154254 0.19962272339673318 0.0960602736917696 0.06835480892376958 +0.05595177434894733 0.04535822021656936 0.10079766880550103 0.182141475349584 0.08285126506708715 0.05596213674690366 +0.06053736108189452 0.06692684199485621 0.11070162463995228 0.19834216979289465 0.10599890484287502 0.06747161342886691 +0.06214287166328933 0.07573119341611557 0.14583384720505438 0.20198677056789321 0.12111043496152106 0.08953633848544454 +0.045315581228355724 0.04313516851604737 0.10044869168689372 0.19543615128814285 0.08421558195239401 0.05442355677748059 +0.0638428333692322 0.05435889770339741 0.11923302825938663 0.2047137093705761 0.10162751472813736 0.06629300849878632 +0.04959137719829846 0.043936592051717814 0.09752576102432527 0.18064354443118452 0.0776265064157879 0.05148683700256475 +0.0524269673628422 0.05480813129154162 0.10897707632458002 0.1787780498476895 0.08018987243576073 0.057853089821190556 +0.0637188745590366 0.04921307948114535 0.11330619323497591 0.20848241162551814 0.09566593240759791 0.0627454828375526 +0.06270196571636417 0.06751670824717887 0.17079673194605294 0.1950675486328774 0.12344771863885431 0.10326321438333294 +0.04952020436517449 0.04893233148178942 0.11611311469883863 0.19848524506056076 0.08272954667858001 0.06901594880467235 +0.0453582577905381 0.04224664795089533 0.09652729693049943 0.18028712876486516 0.07729757344523981 0.05392851572070907 +0.05684621097338967 0.0661285034442562 0.14198248778657296 0.1992602889249841 0.10413159432893526 0.07069757816778814 +0.05703363088130162 0.07118664890384763 0.13091484560828645 0.19738460157337598 0.10644498126575941 0.07471682580088351 +0.04820827185735982 0.058812061475477 0.10676816703000228 0.202841831713089 0.08486174720987245 0.06661864616703495 +0.06602358170673898 0.06733734772199135 0.12536155787319045 0.18610738485516465 0.10034997516981899 0.07464951251792463 +0.0626872689710096 0.07268225075030496 0.15511105267884467 0.19850913049251517 0.1110327085252441 0.08508763751929127 +0.0664379605521927 0.06853921670284394 0.15075486526008644 0.19612658887154236 0.11018059434510187 0.07847293688766438 +0.05197318307804255 0.05151240771336763 0.1162950472152154 0.1977573323928584 0.0921541196171344 0.0662363520823282 +0.05061567328982827 0.053028150224558035 0.10993005258287074 0.1999565258894427 0.08460948992126648 0.062126893086798585 +0.04839345355063455 0.05531023233463067 0.11994765972981548 0.18595582315321074 0.0878611958261244 0.0676047107569039 +0.05281052874847278 0.05703828992268207 0.11319657120657306 0.18624609148040353 0.0828674264912492 0.06314338840535448 +0.05046837895448414 0.050959737533256264 0.1131443832754491 0.19999201238278574 0.08810856896360356 0.06093054639598623 +0.0538194576921918 0.0626939222141603 0.11846412231054734 0.19770572705758552 0.09840071335059343 0.06756183673919151 +0.05539783099508493 0.05663562547376958 0.12235465738453587 0.20262441826581734 0.10578585892462265 0.06714528314323481 +0.05083268742958137 0.05077850833546805 0.09853704803499626 0.192878506940154 0.08693445769519285 0.06028571554767918 +0.05853636423670556 0.05777081973054805 0.12240145720264634 0.19116349856615472 0.10154280584561955 0.07049267989865837 +0.059102080027418916 0.07163699409610262 0.134632904278158 0.18646178912752814 0.1076737189607172 0.08791256605349215 +0.04921317433668453 0.061339094864861284 0.10871633652325793 0.18959113989237691 0.0925582850430812 0.060506309305300626 +0.05443866412788945 0.0598469337614203 0.11507408959534765 0.19506810538287606 0.08589258365984254 0.06050832918276298 +0.056844952778352005 0.050466129407651626 0.09677455502684919 0.18158240781816282 0.08373139849397462 0.058517588573866054 +0.05044697381414868 0.05099792193455885 0.11005939440488509 0.20562113933441373 0.0806674882703361 0.06109655190203049 +0.058989133854823565 0.051936530842509376 0.10579256361556132 0.19859290330054674 0.0831712996281038 0.06432802793279854 +0.05364488153335406 0.06699956815963645 0.13230265441862285 0.20144335587366097 0.09960940657233992 0.07670577165413749 +0.04623093202146535 0.05200753617375461 0.11017913812427778 0.19782647796157032 0.08394957426714511 0.057176160369643445 +0.04812229797366241 0.051648218338572784 0.1006527537931363 0.19410831881181395 0.0852862960837212 0.05694518599970476 +0.06447258143665172 0.050213555838222304 0.10897869704100202 0.2065622760738071 0.09208594669743377 0.06408091716899113 +0.05269683053709032 0.04606007096187334 0.10558129588139212 0.19926035296041128 0.0869777313528021 0.06853761100687093 +0.05679423855207925 0.07293456352800237 0.1196707897117364 0.19840940587990136 0.10259357812434103 0.0687583548754021 +0.05195203842277646 0.05415670866540292 0.12398605524035296 0.19296337054917326 0.09711141396240659 0.07435095953626925 +0.04483372069673191 0.043471930248557326 0.10781915247933456 0.20686227789318923 0.0828368104880041 0.06463356905965134 +0.054272895207738765 0.06764614777111447 0.10908672007758398 0.19652407205554662 0.08037294806261552 0.06300546089706868 +0.050130005166421805 0.048873480465543725 0.09661122500655107 0.18781102450459836 0.07928029212857485 0.05877979912939129 +0.060071597068423695 0.05048148457310439 0.11952728798604569 0.19150753169026705 0.09513483581312776 0.06426630608876652 +0.05140137545514625 0.07157854317377851 0.1113498706381697 0.20711004971619987 0.09602890015075577 0.0751880968322611 +0.05596580243781476 0.047866512190832 0.10888084199199993 0.19643489385236285 0.09375440979534874 0.05616096989307679 +0.050089082891008704 0.059232610434357624 0.11326291444223745 0.18669521981838255 0.09309301982427588 0.07117900326571103 +0.04795690167218706 0.05516102076172866 0.11032956911137713 0.19595209541740366 0.08462533344281165 0.06050518551475842 +0.06739035864202628 0.05632098842237979 0.1297191869766179 0.19427009423802705 0.1049371959631244 0.0683151483146345 +0.04403497706072639 0.04377145594899654 0.10096834102720134 0.18305683822015528 0.08052432318596842 0.05975488123791471 +0.0538748993036519 0.054770691526477254 0.10969458734187275 0.1951340280488861 0.09621844582937462 0.0618623813613585 +0.05242874613705095 0.05619869654931709 0.13507807939283978 0.18709906323520392 0.10399824707159361 0.06943892656391253 +0.05752886185626782 0.0679704262126012 0.12775768794975204 0.1971472044270863 0.09861451283056069 0.07188157186602878 +0.06470671788779701 0.049684675187708485 0.10665939298149668 0.19681493315337184 0.09047081320255443 0.06078281237128691 +0.04735159948319753 0.05547508304253762 0.1106022123003161 0.18913425022187663 0.08488795169292278 0.06013697642986095 +0.051998857622686336 0.05461578502276898 0.1176174907589005 0.20019537223098743 0.09093794407173056 0.07016877114112764 +0.045390776472209717 0.04597136336287616 0.10153023651714617 0.19609307584634877 0.08268626996756182 0.056967099998948195 +0.06302096000368415 0.04450451691794874 0.09989354177067371 0.2048809301914596 0.08693174152104223 0.05862980263265707 +0.04817777091288575 0.04976637158437733 0.11081290420652373 0.18851012501509445 0.09020930733701486 0.06493433623996868 +0.05223743648258673 0.04697533671226019 0.10570841574961035 0.19027178863829985 0.0878568823005716 0.05738266182306776 +0.05100478813017286 0.059942570804833444 0.09972260802687366 0.19056202005657594 0.08145521803890436 0.057892591858737456 +0.05316216526826044 0.05212723043608432 0.11272949763916774 0.20052135147089573 0.0885639670702392 0.05898309048062649 +0.05225707589670262 0.05851477430992814 0.13184951041110862 0.1983940206150123 0.09473851442138265 0.07487221505636152 +0.04676042152795904 0.0546518922365568 0.11532430917895932 0.19632074397379098 0.07993524986305776 0.05900368914938904 +0.048033799248782275 0.05031802493179645 0.11289844023805863 0.19702520766248696 0.07899240073563266 0.06269984756189455 +0.05144996538135177 0.0476654641945988 0.11009473946212779 0.19217955659372893 0.08436621492938359 0.05734698540001564 +0.04824011904739797 0.059973467807930954 0.11196284108468668 0.1895418172285724 0.09062214533307966 0.07204965916053024 +0.044832833708782036 0.05337180516555491 0.09852801177654018 0.19212840905702935 0.07760156768094982 0.054161966489906954 +0.048004680351830795 0.06495123568977992 0.11505488349407104 0.18146917392240502 0.08431028356914039 0.06545373865241683 +0.0485665085324918 0.04538428270813575 0.10286321776581221 0.18374820099211778 0.08994532255969996 0.05728294017468363 +0.059842694661590444 0.07208519899951625 0.14200224918529852 0.21187882631936875 0.11687110383181372 0.08336260166479023 +0.05984196522557215 0.04939033175000203 0.11019817460460891 0.17991256356843396 0.08943535271902149 0.05813358184798195 +0.047138318245751175 0.05111120748667008 0.1158282711627828 0.18918443356858614 0.08653382992468821 0.06535728975765612 +0.06182882791854621 0.04593180558852109 0.10470760241508512 0.18450120257054317 0.09411752004305572 0.056964309230869765 +0.06379212255137008 0.0531186507874102 0.11722682500586497 0.20918573260852413 0.09197968357573029 0.06324513279033286 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_ard_u_interval__.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_ard_u_interval__.tsv new file mode 100644 index 00000000000..738af5cbbc1 --- /dev/null +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_ard_u_interval__.tsv @@ -0,0 +1,9 @@ +@CO shape:(6,) +@CO dtype:float64 +VALUE_0 +0.10677894646633289 +0.10745924966496576 +0.11416073462035334 +0.11140567580903753 +0.11281129306348898 +0.10612247399422854 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_ard_u_log__.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_ard_u_log__.tsv deleted file mode 100644 index 3f852ad4835..00000000000 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_ard_u_log__.tsv +++ /dev/null @@ -1,9 +0,0 @@ -@CO shape:(6,) -@CO dtype:float64 -VALUE_0 -0.11463823854989527 -0.10826701076665864 -0.10903574405122825 -0.10579556035870624 -0.10572930283949862 -0.11063798490431062 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_log_mean_bias_t.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_log_mean_bias_t.tsv index da0eddcb123..cfc38e70b03 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_log_mean_bias_t.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_log_mean_bias_t.tsv @@ -1,173 +1,173 @@ @CO shape:(170,) @CO dtype:float64 VALUE_0 -0.022806930046789558 -0.021778392951392136 -0.020940240529716946 -0.018869890671745305 -0.02103434951031071 -0.019164791117997668 -0.019918496108084258 -0.019878784396986638 -0.03379864756629677 -0.022835797791581177 -0.022970793900663873 -0.02360511384878738 -0.023994164422216635 -0.022013422701462997 -0.01956249385634936 -0.02502866836936687 -0.02026173441327546 -0.022970995869423652 -0.027537050906123062 -0.030841728323121344 -0.02225214284711632 -0.019725158078077492 -0.020618417660459652 -0.01820310505730845 -0.022508309011844013 -0.019799073271950123 -0.028545630387617208 -0.01976968114072662 -0.022256990599845025 -0.024753739701735705 -0.018522268211449994 -0.021666022102996667 -0.022324579597526827 -0.02152588955077956 -0.01963626028345827 -0.019480139872783398 -0.022731095416384395 -0.01837508598105044 -0.021738100662027936 -0.019919593260974967 -0.01947965141669056 -0.01956838630313974 -0.01965837368559719 -0.027909143049265107 -0.024496370844225415 -0.024954304201249156 -0.020267540010940034 -0.01809982535583815 -0.02089488316151419 -0.02447546406232171 -0.018601063741131792 -0.021666671329923975 -0.02817756214198475 -0.021462805270885874 -0.01982535000715269 -0.020488534748040996 -0.02413321156704316 -0.019344265759991673 -0.022239063446922596 -0.020272774089021166 -0.02133331722206905 -0.022082093166272267 -0.02089466936641527 -0.01854828870236103 -0.020991089153930487 -0.0232303067014869 -0.02185135156134232 -0.020647013556179258 -0.0215118532421049 -0.0247803693417537 -0.022112401881814542 -0.01934052969215153 -0.02046787036554397 -0.02311987453488732 -0.01890532236670311 -0.01969066914369629 -0.020793123497761756 -0.0315417639344525 -0.021020320107320835 -0.022369769354341176 -0.02424604344000171 -0.02248291649602069 -0.029751744559332483 -0.024399564242218456 -0.018648456921560825 -0.025261625748720186 -0.019590282339303815 -0.021474656809985074 -0.02779912647582822 -0.020750184245689182 -0.025557090618151375 -0.024234064685508844 -0.020498875150431573 -0.018911762066374842 -0.018851992441470282 -0.022449983454738993 -0.01933633874621592 -0.02347699026583463 -0.029445113590961563 -0.01987862004875606 -0.022121523878249456 -0.017611602768033505 -0.01960702252539323 -0.022699915987945386 -0.02959257791247043 -0.02064558796323884 -0.016830412815980782 -0.026959454787005382 -0.02678440928269409 -0.021294335920308466 -0.024547933884532015 -0.02915269978467256 -0.028384870620013946 -0.021049553198303744 -0.019101895246436344 -0.021372694385649763 -0.019721884692105975 -0.019032482631741097 -0.02256329505255343 -0.023235087069212262 -0.019697455835903016 -0.023628132761993006 -0.026060438029575306 -0.023469006884871673 -0.021546619845964104 -0.019490459590576617 -0.020064457310591716 -0.019780811212354536 -0.023745599640793945 -0.020747098292447863 -0.019899655989644792 -0.021607750071894596 -0.020606716243402 -0.022295263318789147 -0.02300012223334802 -0.019937434757381155 -0.02093408791222161 -0.019530161237315897 -0.020496604003795077 -0.02276068882535396 -0.021549301402339963 -0.02155101205859605 -0.020263535872867448 -0.027398375296936603 -0.018845895665284346 -0.024665045550076665 -0.02444461193784235 -0.02489475651677146 -0.020017201085681686 -0.019683517497830007 -0.021919963260257483 -0.0200869396525893 -0.018695743650280056 -0.020962758761263866 -0.019794402559861358 -0.020139522165734274 -0.021400527354367555 -0.023821280539440354 -0.019697131338026298 -0.019345482859980227 -0.02076815794212753 -0.021859300534878542 -0.017284111475294153 -0.02146204750807673 -0.021260630730722846 -0.02612978504601397 -0.020587287784649768 -0.01858203446756825 -0.01915315854090737 -0.022903341450912683 +0.021395047779801685 +0.023196158991218147 +0.021068903610229246 +0.01978516391194787 +0.021653329047007654 +0.02058725377387484 +0.01912348533469345 +0.0191636856149132 +0.03195505749721843 +0.021835632785217662 +0.023237443226275738 +0.022324206267130293 +0.023173160656079973 +0.022041287347459058 +0.016980481580392986 +0.022574864573911863 +0.02037860002018851 +0.02068493163523971 +0.026470011721982545 +0.029356563519191168 +0.020184681172859313 +0.0208878097528607 +0.019065970353904088 +0.018160519198723624 +0.02259419686161598 +0.0203915487341907 +0.02784111584345066 +0.022853007218877168 +0.023046687283255665 +0.024442236840167948 +0.017898574315255558 +0.02372196745728078 +0.020795013424010796 +0.021967102309728523 +0.020129071977419685 +0.021257146348975294 +0.021541882192824012 +0.01821978790439915 +0.021065077436527333 +0.02128931499930126 +0.020296900418483296 +0.020599598783715152 +0.018842417102395235 +0.027332115360198184 +0.026597543562752526 +0.027104875556315078 +0.020767290235302806 +0.017295157134283146 +0.019689540829403003 +0.025709944841236655 +0.020663069096182398 +0.02094216114503318 +0.02855101215795335 +0.02226494701915265 +0.019924041686438295 +0.019029897694555646 +0.02447346572831715 +0.020674271354819616 +0.021146002608332905 +0.01903523325753961 +0.021527448753828362 +0.023613524874680065 +0.021938129186924293 +0.019131610422873115 +0.022008750851010058 +0.022935039176969953 +0.02248628481175795 +0.021778541298727656 +0.022025088727290358 +0.025029277704172872 +0.022907195703182514 +0.018776699136991006 +0.02232824041083605 +0.02366236622864197 +0.018439722342561034 +0.019284869180641453 +0.02026124020408443 +0.029800558359584832 +0.02089206156784401 +0.0217706306293045 +0.024069011097532293 +0.022762593303430945 +0.0322813474518412 +0.024347946237245052 +0.01897228111543537 +0.025913474345298945 +0.020636052316614747 +0.021201595749667936 +0.02991306819611879 +0.02026221287281129 +0.024029207325046854 +0.02413068217494761 +0.02124606923976795 +0.020246786233571817 +0.02060472394854245 +0.023578724521194663 +0.020383251402692492 +0.02269471544287572 +0.027884366881962035 +0.019456704853793527 +0.024729042154958223 +0.01847940567199558 +0.019770747206418977 +0.022524298628029803 +0.032032353424221435 +0.021244668848906988 +0.01784515388577697 +0.025266026703046143 +0.026007367647472468 +0.02125768679885038 +0.024477726676704125 +0.03076157336709609 +0.02915898450654542 +0.022895517705444894 +0.020912493846076304 +0.02026194590757173 +0.021337799392377867 +0.020178517042537834 +0.024030926621710625 +0.024336770468685053 +0.01952086338212743 +0.024255064383333646 +0.02466916949972246 +0.022165392717037765 +0.021719881876994807 +0.018351513738842317 +0.019449797012444498 +0.019712640241031736 +0.02386602127686421 +0.019902996412130475 +0.019295938120198104 +0.020524447516619634 +0.02019355391265716 +0.024123359970184572 +0.02290405994144754 +0.01967479671053673 +0.0200530331908005 +0.017301080242003223 +0.0212387879621503 +0.023657733542055973 +0.020569778335125678 +0.0221371703332162 +0.01889437052629881 +0.025005922982137788 +0.020931687549699204 +0.022649907966080466 +0.025385690961819495 +0.02529923078638084 +0.021134211204862433 +0.02010771962484701 +0.021736959293379415 +0.01941056195248508 +0.020266011062541042 +0.020812600437015685 +0.01982751584157018 +0.01931966322531075 +0.02128783376763081 +0.02436038011687864 +0.019956313253224844 +0.018443037495941908 +0.021425162711152707 +0.020617958847231856 +0.017407425831691935 +0.020719161925616715 +0.0207658407916024 +0.026738372986797803 +0.02064003303447708 +0.019257178242045942 +0.019480058918356715 +0.023710278010089823 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_psi_t_log__.tsv b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_psi_t_log__.tsv index ac7fdfe96d0..692a2975b32 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_psi_t_log__.tsv +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/gcnv-numerical-accuracy/shard_0-model/std_psi_t_log__.tsv @@ -1,173 +1,173 @@ @CO shape:(170,) @CO dtype:float64 VALUE_0 -0.7720230850327123 -0.697166728658097 -0.7847974243061422 -0.8253380007127161 -0.9334279288237071 -1.0321250671017763 -0.9791284394392797 -0.9252520231672539 -0.38169143443616627 -0.6705357014121687 -0.6266127063407134 -0.7011411300256046 -0.6851215322141866 -0.7080319594541422 -0.9025932014928516 -0.6658485136950354 -0.9440406064757607 -0.6093630424050356 -0.5199411334291777 -0.40050982723368156 -0.7397023671241776 -0.8886600767629201 -0.8147210812638076 -1.0012269059657317 -0.6606805111763264 -0.8472429088443612 -0.4824757420833945 -0.8875211037694619 -0.8354556694073421 -0.6846595325405288 -0.956304741492602 -0.7261329168531295 -0.6615725194542119 -0.6648004015368172 -0.9558761205028897 -0.958053011486038 -0.6940558430889912 -0.8998640407210685 -0.8274684182281102 -0.6833049745008192 -0.8474474481720853 -0.8388341196909475 -0.9834458151041235 -0.4785546801974222 -0.6189155840223274 -0.583721620874378 -0.7127137583097685 -1.0307600923576827 -0.8485461747853983 -0.6234696119182562 -0.849863231172163 -0.8476143490096246 -0.4336836652072322 -0.8686435113874182 -0.8208419198485154 -0.9503885062643795 -0.5897742842800805 -0.9835250694818463 -0.8141820610271097 -0.9119466947127494 -0.7094084822363811 -0.6527989754846648 -0.790260400311367 -0.902733306310399 -0.7882408911701726 -0.6457724553634006 -0.5730934529788316 -0.8121337611436288 -0.7764356214083572 -0.6038769247654081 -0.8063460860474015 -0.9670164579450581 -0.7071958273444173 -0.7838158995678174 -0.9181482900871596 -0.9814288312425101 -0.8222183357130339 -0.425355248239185 -0.9517027293545204 -0.6877193697101549 -0.5629157938009981 -0.5929235316201721 -0.43947440079424877 -0.5714137428062142 -0.8869521045103709 -0.582072635897106 -0.8950427339458307 -0.7551249870207213 -0.44915416340639264 -0.818667133067161 -0.5104308120784237 -0.6909065789833304 -0.7348587818159819 -0.9016467054455849 -0.8636122684585693 -0.6186029986835707 -0.8467294928298005 -0.7614957536668747 -0.4246426349223689 -1.0283926895495972 -0.6247225814165434 -1.0473678797802486 -0.8122333487825576 -0.7448824545529101 -0.4536038779565419 -0.742186385579328 -0.8920930819261127 -0.5348489164832992 -0.5665888803295172 -0.6832529785348227 -0.5575942452373596 -0.5064984292146368 -0.4447576002110088 -0.8114776686463534 -0.8196638136327126 -0.9619918399832583 -0.9058508895304722 -0.7589520411846568 -0.6425755326503156 -0.5822844997245168 -0.7631314391472915 -0.5963342528796944 -0.559417132800409 -0.8339136453529742 -0.5772581521560621 -0.744824755830368 -0.8603055974639975 -0.7898433537752614 -0.7719952467958902 -0.8600856620478174 -1.0347797295956267 -0.6638935650483897 -0.9778277511058738 -0.6505180655409761 -0.7879951063428713 -0.8747990302577259 -0.8053278120658792 -0.9922657254192403 -0.6906446433493612 -0.6592298387887859 -0.82253058963178 -0.8616239475175913 -0.8828858694109936 -0.5293729363781957 -1.0197921524962488 -0.7187214982898041 -0.6848768581909672 -0.6224433347782029 -0.7236212572505689 -0.832432509799131 -0.6603548525206356 -1.0313030971642623 -0.927406770483858 -0.781649457994709 -0.8035176611168794 -1.01926147875353 -0.7461896843081335 -0.6734432257078913 -1.0057686547585254 -0.8608624040824749 -1.007697089128568 -0.7957212969045607 -0.9140246998066139 -0.6915062958294734 -0.8371444855950696 -0.4346558083820003 -0.7073987197833758 -0.8464428597411937 -0.7623091433533724 -0.6319392713932338 +0.8438615244012413 +0.7210627195930697 +0.8139973975760546 +0.8203255468703624 +1.0200907926993408 +0.9998663890703645 +0.9474924248116621 +0.9564106387346668 +0.3670279439968553 +0.6908273309980235 +0.6042152855699009 +0.717324307606925 +0.6952154683194607 +0.7346163513330658 +0.9061736600944535 +0.6144125530976344 +0.9690253230650332 +0.5831817119266935 +0.5084401483513474 +0.41273954521240463 +0.6824277160244443 +0.8726656330436757 +0.8260439562110768 +0.9933327666455776 +0.6747321190697662 +0.8344421936746336 +0.4702989245319953 +0.8140043458745208 +0.8354281708130183 +0.6511204783210063 +0.9464179211723242 +0.7357222980718476 +0.6320543500360284 +0.6782876709307338 +0.9145714506452918 +0.928440147652216 +0.7119252733519361 +0.9223415280030453 +0.7784747346558746 +0.7109842327549235 +0.8223995585935439 +0.8963350614292227 +1.0578260539306088 +0.46537292724894186 +0.609124901308216 +0.5764108941228375 +0.7172256977504518 +1.009914052043772 +0.890869046271923 +0.6386737791569266 +0.842289758731309 +0.8366380509381333 +0.4645366174337857 +0.8207422604490546 +0.8401762964835323 +0.9644405465616182 +0.5836360441565753 +0.9853939010325006 +0.825353912612218 +0.8856999681366463 +0.7259283250885082 +0.6418354667750721 +0.7775976570713735 +0.9628778596808323 +0.7891741602460719 +0.621433327923997 +0.5918185289532881 +0.7941504729007147 +0.758672440967949 +0.5715642136101291 +0.8251792270546039 +0.9468012199973836 +0.7844977201936705 +0.7823948117407835 +0.9527325165067436 +0.9841660884606876 +0.8317515311801054 +0.4206507644645686 +0.9987144575122113 +0.7343498445608518 +0.6032902706774005 +0.5712675233824469 +0.4478045741960054 +0.6080307741529526 +0.9000667140739997 +0.530326315370262 +0.9270104513980757 +0.7573239771121031 +0.4468705917976592 +0.7807534949317702 +0.49298883216606204 +0.6712748664603709 +0.7370949789106859 +0.9221947796810879 +0.880806515655763 +0.5674484135504096 +0.8769451886193662 +0.7706188058014407 +0.4148752660567253 +1.0169174712317355 +0.6151556781154293 +1.0425253277724393 +0.7891862497203892 +0.7205780274271373 +0.4930190146149072 +0.7776714727322832 +0.8882978102415726 +0.5676957884753069 +0.5544172392736197 +0.7191785772839061 +0.5334285377018029 +0.4561138194491935 +0.4239814304018578 +0.7555208337122366 +0.8410520867259579 +0.9661359884230885 +0.8647529797244572 +0.7455103839054329 +0.6423226894653906 +0.57362974721395 +0.7454841320773917 +0.6092025583287111 +0.5617608464884061 +0.8737186000296381 +0.5757693654505931 +0.7606456859048834 +0.8976207190100605 +0.7593198474865356 +0.7863105839490174 +0.8514801918670898 +0.9630176307407696 +0.6753322373777825 +0.9454703621707825 +0.5957850148222376 +0.7907986674624145 +0.904114625104561 +0.8045957388909524 +0.9992102235902048 +0.7140643047280553 +0.6426364466440851 +0.8369925467845495 +0.8325451980376755 +0.9562458797000845 +0.592186954920778 +0.9517535590088464 +0.6625910791419144 +0.7242288643642601 +0.6491754406048182 +0.7638019639947387 +0.8835806191072954 +0.7068682452964151 +1.0284289118820298 +0.9242477626807513 +0.7852247589597435 +0.830750024527792 +0.9785516483940011 +0.7504229320802941 +0.7370301386065057 +0.9461653314240317 +0.899102715902615 +1.0350820971886814 +0.7822317850569502 +0.988089693969646 +0.7399733801283573 +0.916988910182282 +0.46048111088345756 +0.7030050583433024 +0.847019939552894 +0.7702774755162272 +0.5842855862891158