From 128d947aca7f0bc25af576e340d9b82d245cf24d Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Mon, 20 Jun 2022 14:49:20 -0400 Subject: [PATCH 01/36] Java 17/Spark 3.3.0. --- .../upload-gatk-test-results/action.yml | 6 +- .github/workflows/gatk-tests.yml | 53 +- Dockerfile | 44 +- README.md | 10 +- build.gradle | 696 ++++++++++------- gatk | 116 ++- gradle/wrapper/gradle-wrapper.jar | Bin 59536 -> 59821 bytes scripts/docker/dockertest.gradle | 180 ++++- .../run_vcf_site_level_filtering_wdl.sh | 4 +- .../GATKAnnotationPluginDescriptor.java | 66 +- .../tools/HaplotypeCallerSpark.java | 22 +- .../tools/dragstr/CalibrateDragstrModel.java | 1 + .../HaplotypeCallerEngine.java | 3 +- .../RampedHaplotypeCallerEngine.java | 3 +- .../utils/SerializableConsumer.java | 6 + .../utils/SerializablePredicate.java | 6 + .../utils/SerializableSupplier.java | 6 + .../CachingIndexedFastaSequenceFile.java | 8 +- .../utils/help/GATKDocWorkUnit.java | 82 +- .../utils/help/GATKGSONWorkUnit.java | 39 +- .../help/GATKHelpDocWorkUnitHandler.java | 122 +-- .../hellbender/utils/help/GATKHelpDoclet.java | 212 +++--- .../hellbender/utils/help/GATKWDLDoclet.java | 444 +++++------ .../utils/help/GATKWDLWorkUnitHandler.java | 712 +++++++++--------- .../utils/mcmc/PosteriorSummary.java | 51 -- .../utils/mcmc/PosteriorSummaryUtils.java | 148 ---- .../broadinstitute/hellbender/MainTest.java | 94 +-- ...ATKAnnotationPluginDescriptorUnitTest.java | 3 +- .../GATKReadFilterPluginDescriptorTest.java | 3 +- .../AssemblyRegionIteratorUnitTest.java | 2 +- .../datasources/ReadsSparkSinkUnitTest.java | 6 + .../datasources/ReadsSparkSourceUnitTest.java | 11 + .../VariantsSparkSinkUnitTest.java | 6 + .../spark/PileupSparkIntegrationTest.java | 9 +- .../PrintReadsSparkIntegrationTest.java | 6 + ...iantReInterpreterSparkIntegrationTest.java | 6 + ...ntigAlignmentsSAMSparkIntegrationTest.java | 6 + ...reakpointEvidenceSparkIntegrationTest.java | 6 + ...DiscoveryPipelineSparkIntegrationTest.java | 6 + .../walkers/sv/SVClusterIntegrationTest.java | 12 +- .../utils/bigquery/BigQueryUtilsUnitTest.java | 6 +- .../utils/gcs/BucketUtilsUnitTest.java | 6 + ...ocumentationGenerationIntegrationTest.java | 128 ++-- .../help/TabCompletionIntegrationTest.java | 188 ++--- .../hellbender/utils/help/TestWDLTool.java | 652 ++++++++-------- .../help/WDLGenerationIntegrationTest.java | 284 +++---- .../hellbender/utils/io/IOUtilsUnitTest.java | 10 + .../mcmc/PosteriorSummaryUtilsUnitTest.java | 103 --- .../utils/spark/SparkUtilsUnitTest.java | 6 + ...-sample-ac-nac-tumor-1.modelBegin.af.param | 6 +- ...tiple-sample-ac-nac-tumor-1.modelBegin.seg | 382 +++++----- ...iple-sample-ac-tumor-1.modelBegin.af.param | 6 +- .../multiple-sample-ac-tumor-1.modelBegin.seg | 576 +++++++------- ...mple-cr-ac-nac-tumor-1.modelBegin.af.param | 6 +- ...le-sample-cr-ac-nac-tumor-1.modelBegin.seg | 156 ++-- ...e-sample-cr-ac-tumor-1.modelBegin.af.param | 6 +- ...ltiple-sample-cr-ac-tumor-1.modelBegin.seg | 222 +++--- .../single-sample-ac-nac.af.igv.seg | 18 +- .../single-sample-ac-nac.cr.igv.seg | 8 +- .../single-sample-ac-nac.cr.seg | 8 +- .../single-sample-ac-nac.modelBegin.af.param | 6 +- .../single-sample-ac-nac.modelBegin.seg | 92 +-- .../single-sample-ac-nac.modelFinal.af.param | 6 +- .../single-sample-ac-nac.modelFinal.seg | 18 +- .../single-sample-ac.af.igv.seg | 6 +- .../single-sample-ac.cr.igv.seg | 4 +- .../single-sample-ac.cr.seg | 4 +- .../single-sample-ac.modelBegin.af.param | 6 +- .../single-sample-ac.modelBegin.seg | 136 ++-- .../single-sample-ac.modelFinal.af.param | 6 +- .../single-sample-ac.modelFinal.seg | 6 +- .../single-sample-cr-ac-nac.modelBegin.seg | 2 +- .../testutils/IntegrationTestSpec.java | 2 +- .../testutils/VariantContextTestUtils.java | 1 + 74 files changed, 3274 insertions(+), 3014 deletions(-) create mode 100644 src/main/java/org/broadinstitute/hellbender/utils/SerializableConsumer.java create mode 100644 src/main/java/org/broadinstitute/hellbender/utils/SerializablePredicate.java create mode 100644 src/main/java/org/broadinstitute/hellbender/utils/SerializableSupplier.java delete mode 100644 src/main/java/org/broadinstitute/hellbender/utils/mcmc/PosteriorSummary.java delete mode 100644 src/main/java/org/broadinstitute/hellbender/utils/mcmc/PosteriorSummaryUtils.java delete mode 100644 src/test/java/org/broadinstitute/hellbender/utils/mcmc/PosteriorSummaryUtilsUnitTest.java diff --git a/.github/actions/upload-gatk-test-results/action.yml b/.github/actions/upload-gatk-test-results/action.yml index efddf20019c..79c7e5b4417 100644 --- a/.github/actions/upload-gatk-test-results/action.yml +++ b/.github/actions/upload-gatk-test-results/action.yml @@ -11,10 +11,10 @@ inputs: description: 'The job-unique identifier to use for uploading the results of this run into a google bucket' required: true is-docker: - description: 'Whether to label the uplaod artifact as coming from a docker test' + description: 'Whether to label the upload artifact as coming from a docker test' required: false identifier: - description: 'Identifier to use for finding the unique name for jobs in order to determine html logs location (eg. "Java 8 build and test integration")' + description: 'Identifier to use for finding the unique name for jobs in order to determine html logs location (eg. "Java 17 build and test integration")' required: true ## Secrets and token inputs repo-token: @@ -23,7 +23,7 @@ inputs: bot-comment-key: description: 'Key corresponding to the user account to be used for making comments on github about test failures' required: false -## option to skip all but the artifact uplaod +## option to skip all but the artifact upload only-artifact: description: 'if "true" this will skip any uploading steps that require permissions and only upload the artifact file' required: false diff --git a/.github/workflows/gatk-tests.yml b/.github/workflows/gatk-tests.yml index d6db7c385ac..20471b29890 100644 --- a/.github/workflows/gatk-tests.yml +++ b/.github/workflows/gatk-tests.yml @@ -7,7 +7,7 @@ on: workflow_dispatch: env: - CROMWELL_VERSION: 51 + CROMWELL_VERSION: 84 TERM: dumb GRADLE_OPTS: "-Xmx2048m -Dorg.gradle.daemon=false" HELLBENDER_TEST_INPUTS: gs://hellbender/test/resources/ @@ -73,19 +73,10 @@ jobs: needs: check-secrets strategy: matrix: - java: [ 8, 11.0.11+9 ] + java: [ 17 ] experimental: [ false ] - scalaVersion: [ 2.11, 2.12 ] + scalaVersion: [ 2.12 ] testType: [ cloud, integration, unit ] - exclude: - - java: 11.0.11+9 - scalaVersion: 2.11 - - java: 8 - scalaVersion: 2.12 - - java: 8 - testType: integration - - java: 8 - testType: unit fail-fast: false continue-on-error: ${{ matrix.experimental }} env: @@ -100,7 +91,7 @@ jobs: uses: actions/setup-java@v2 with: java-version: ${{ matrix.Java }} - distribution: 'adopt' + distribution: 'temurin' cache: gradle - name: 'Compile with Gradle' @@ -120,6 +111,10 @@ jobs: if: needs.check-secrets.outputs.google-credentials == 'true' run: echo "HELLBENDER_JSON_SERVICE_ACCOUNT_KEY=${{ steps.auth.outputs.credentials_file_path }}" >> $GITHUB_ENV + # See https://cloud.google.com/compute/docs/troubleshooting/known-issues#ubuntu-systems + - name: "get the updated signature key for google cloud" + run: curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - + - name: 'Set up Cloud SDK' if: needs.check-secrets.outputs.google-credentials == 'true' uses: google-github-actions/setup-gcloud@v0 @@ -134,7 +129,7 @@ jobs: if: ${{ needs.check-secrets.outputs.google-credentials == 'true' || matrix.testType != 'cloud'}} id: jacoco-tests run: | - ./gradlew -Dscala.version=${{ env.SCALA_VERSION }} jacocoTestReport + ./gradlew --daemon -Dscala.version=${{ env.SCALA_VERSION }} jacocoTestReport - uses: ./.github/actions/upload-gatk-test-results if: always() @@ -154,9 +149,9 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [ 8 ] + java: [ 17 ] experimental: [ false ] - scalaVersion: [ 2.11 ] + scalaVersion: [ 2.12 ] testType: [ integration, unit, variantcalling, conda ] fail-fast: false continue-on-error: ${{ matrix.experimental }} @@ -174,7 +169,7 @@ jobs: uses: actions/setup-java@v2 with: java-version: ${{ matrix.Java }} - distribution: 'adopt' + distribution: 'temurin' cache: gradle #Google Cloud stuff @@ -190,6 +185,10 @@ jobs: if: needs.check-secrets.outputs.google-credentials == 'true' run: echo "HELLBENDER_JSON_SERVICE_ACCOUNT_KEY=${{ steps.auth.outputs.credentials_file_path }}" >> $GITHUB_ENV + # See https://cloud.google.com/compute/docs/troubleshooting/known-issues#ubuntu-systems + - name: "get the updated signature key for google cloud" + run: curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - + - name: 'Set up Cloud SDK' if: needs.check-secrets.outputs.google-credentials == 'true' uses: google-github-actions/setup-gcloud@v0 @@ -259,6 +258,12 @@ jobs: - uses: actions/checkout@v2 with: fetch: 0 + - name: Set up java 17 + uses: actions/setup-java@v2 + with: + java-version: '17' + distribution: 'temurin' + cache: gradle - uses: ./.github/actions/install-cromwell with: CROMWELL_VERSION: ${{ env.CROMWELL_VERSION }} @@ -273,11 +278,11 @@ jobs: - uses: actions/checkout@v2 with: fetch: 0 - - name: Set up java 8 + - name: Set up java 17 uses: actions/setup-java@v2 with: - java-version: '8' - distribution: 'adopt' + java-version: '17' + distribution: 'temurin' cache: gradle - uses: ./.github/actions/install-cromwell with: @@ -300,11 +305,11 @@ jobs: fetch-depth: 0 - name: pull lfs files run: git lfs pull - - name: Set up java 8 + - name: Set up java 17 uses: actions/setup-java@v2 with: - java-version: '8' - distribution: 'adopt' + java-version: '17' + distribution: 'temurin' cache: gradle - uses: ./.github/actions/install-cromwell with: @@ -335,6 +340,8 @@ jobs: run: | echo "Running CNV somatic workflows"; bash scripts/cnv_cromwell_tests/somatic/run_cnv_somatic_workflows.sh; + echo "Gather CNV somatic cromwell workflows logs"; + bash -c "find /home/runner/work/gatk/gatk/scripts/cnv_cromwell_tests/somatic/cromwell-executions -exec cat {} \;"; - name: "M2_WDL_TEST" if: ${{ matrix.wdlTest == 'RUN_M2_WDL' }} diff --git a/Dockerfile b/Dockerfile index 22eda099cf0..ce80c79ff3e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,11 +8,27 @@ ADD . /gatk WORKDIR /gatk # Get an updated gcloud signing key, in case the one in the base image has expired -RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - +RUN rm /etc/apt/sources.list.d/google-cloud-sdk.list +RUN apt update +RUN apt-key list +RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - RUN add-apt-repository universe && apt update RUN apt-get --assume-yes install git-lfs RUN git lfs install --force +##Get Java 17 temurin JDK +#RUN apt update && apt upgrade +RUN apt install wget +RUN wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.1%2B12/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz +RUN tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.*.tar.gz +RUN mv jdk-17.0.1+12 /opt/ +# +ENV JAVA_HOME /opt/jdk-17.0.1+12 +ENV PATH $JAVA_HOME/bin:$PATH +RUN echo $JAVA_HOME +RUN update-alternatives --install /usr/bin/java java /opt/jdk-17.0.1+12/bin/java 1 +RUN java -version + #Download only resources required for the build, not for testing RUN git lfs pull --include src/main/resources/large @@ -23,6 +39,23 @@ RUN unzip -o -j $( find /gatk/unzippedJar -name "gatkPython*.zip" ) -d /gatk/unz # Using OpenJDK 8 FROM broadinstitute/gatk:gatkbase-2.3.0 +RUN rm /etc/apt/sources.list.d/google-cloud-sdk.list +RUN apt update +RUN apt-key list + +#Get Java 17 temurin JDK +#RUN apt update && apt upgrade +RUN apt install wget +RUN wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.1%2B12/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz +RUN tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.*.tar.gz +RUN mv jdk-17.0.1+12 /opt/ + +ENV JAVA_HOME /opt/jdk-17.0.1+12 +ENV PATH $JAVA_HOME/bin:$PATH +RUN echo $JAVA_HOME +RUN update-alternatives --install /usr/bin/java java /opt/jdk-17.0.1+12/bin/java 1 +RUN java -version + WORKDIR /gatk # Location of the unzipped gatk bundle files @@ -43,6 +76,9 @@ RUN mkdir .gradle WORKDIR /gatk +# use UTF-8 encoding to get around (??) scala class name shapeless/$tilde$qmark$greater$?.class +ENV LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8" + # Create a simple unit test runner ENV CI true # "export GATK_DOCKER_CONTAINER=true" is used to allow tests to determine when the're running on the docker @@ -56,11 +92,11 @@ RUN echo "source activate gatk" > /root/run_unit_tests.sh && \ echo "mkdir /gatk/srcdir" >> /root/run_unit_tests.sh && \ echo "cp -rp /gatkCloneMountPoint/src/main/java/* /gatk/srcdir" >> /root/run_unit_tests.sh && \ echo "export SOURCE_DIR=/gatk/srcdir" >> /root/run_unit_tests.sh && \ - echo "export GRADLE_OPTS=\"-Xmx1024m -Dorg.gradle.daemon=false\"" /root/run_unit_tests.sh && \ - echo "export CP_DIR=/gatk/testClasses" /root/run_unit_tests.sh && \ + echo "export GRADLE_OPTS=\"-Xmx1024m -Dorg.gradle.daemon=false --add-opens java.prefs/java.util.prefs=ALL-UNNAMED\"" >> /root/run_unit_tests.sh && \ + echo "export CP_DIR=/gatk/testClasses" >> /root/run_unit_tests.sh && \ echo "ln -s /gatkCloneMountPoint/src/ /gatkCloneMountPoint/scripts/docker/src" >> /root/run_unit_tests.sh && \ echo "ln -s /gatkCloneMountPoint/build/ /gatkCloneMountPoint/scripts/docker/build" >> /root/run_unit_tests.sh && \ - echo "cd /gatk/ && /gatkCloneMountPoint/gradlew -b /gatkCloneMountPoint/dockertest.gradle testOnPackagedReleaseJar jacocoTestReportOnPackagedReleaseJar -a -p /gatkCloneMountPoint" >> /root/run_unit_tests.sh + echo "cd /gatk/ && /gatkCloneMountPoint/gradlew -Dfile.encoding=UTF-8 -b /gatkCloneMountPoint/dockertest.gradle testOnPackagedReleaseJar jacocoTestReportOnPackagedReleaseJar -a -p /gatkCloneMountPoint" >> /root/run_unit_tests.sh WORKDIR /root RUN cp -r /root/run_unit_tests.sh /gatk diff --git a/README.md b/README.md index 5b6718695b3..10a80089ec7 100644 --- a/README.md +++ b/README.md @@ -51,9 +51,9 @@ releases of the toolkit. ## Requirements * To run GATK: - * Java 8 is needed to run or build GATK. + * Java 17 is needed to run or build GATK. We recommend one of the following: - * Download the Eclipse Foundation's distribution of OpenJDK 8 from [adoptium.net](https://adoptium.net/). Navigate to the [release archive](https://adoptium.net/temurin/archive/?version=8) to find downloads for Java 8. + * Download the Eclipse Foundation's distribution of OpenJDK 17 from [adoptium.net](https://adoptium.net/). Navigate to the [release archive](https://adoptium.net/temurin/archive/?version=8) to find downloads for Java 8. * On Mac OS, you can install the [Homebrew package manager](https://brew.sh/) and run `brew tap homebrew/cask-versions` followed by `brew install --cask temurin8` to install the Eclipse Foundation's OpenJDK 8. * Or you can download the older [OracleJDK 8](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) which requires an Oracle account to download and comes with restrictive [license conditions](https://www.oracle.com/downloads/licenses/javase-license1.html). @@ -62,7 +62,7 @@ releases of the toolkit. See [Python Dependencies](#python) for more information. * R 3.2.5 (needed for producing plots in certain tools) * To build GATK: - * A Java 8 JDK + * A Java 17 JDK * Git 2.5 or greater * [git-lfs](https://git-lfs.github.com/) 1.1.0 or greater. Required to download the large files used to build GATK, and test files required to run the test suite. Run `git lfs install` after downloading, followed by `git lfs pull` from @@ -455,7 +455,7 @@ We use [git-lfs](https://git-lfs.github.com/) to version and distribute test dat #### Creating a GATK project in the IntelliJ IDE (last tested with version 2016.2.4): -* Ensure that you have `gradle` and the Java 8 JDK installed +* Ensure that you have `gradle` and the Java 17 JDK installed * You may need to install the TestNG and Gradle plugins (in preferences) @@ -477,7 +477,7 @@ We use [git-lfs](https://git-lfs.github.com/) to version and distribute test dat * After downloading project dependencies, IntelliJ should open a new window with your GATK project -* Make sure that the Java version is set correctly by going to File -> "Project Structure" -> "Project". Check that the "Project SDK" is set to your Java 1.8 JDK, and "Project language level" to 8 (you may need to add your Java 8 JDK under "Platform Settings" -> SDKs if it isn't there already). Then click "Apply"/"Ok". +* Make sure that the Java version is set correctly by going to File -> "Project Structure" -> "Project". Check that the "Project SDK" is set to your Java 1.17 JDK, and "Project language level" to 17 (you may need to add your Java 17 JDK under "Platform Settings" -> SDKs if it isn't there already). Then click "Apply"/"Ok". #### Setting up debugging in IntelliJ diff --git a/build.gradle b/build.gradle index 07fb4420c9d..f04efb1015d 100644 --- a/build.gradle +++ b/build.gradle @@ -63,8 +63,8 @@ repositories { final htsjdkVersion = System.getProperty('htsjdk.version','3.0.1') final picardVersion = System.getProperty('picard.version','2.27.5') final barclayVersion = System.getProperty('barclay.version','4.1.0') -final sparkVersion = System.getProperty('spark.version', '2.4.5') -final scalaVersion = System.getProperty('scala.version', '2.11') +final sparkVersion = System.getProperty('spark.version', '3.3.0') +final scalaVersion = System.getProperty('scala.version', '2.12') final hadoopVersion = System.getProperty('hadoop.version', '3.3.1') final disqVersion = System.getProperty('disq.version','0.3.6') final genomicsdbVersion = System.getProperty('genomicsdb.version','1.4.4') @@ -138,19 +138,13 @@ def looksLikeWereInAGitRepository(){ // Ensure that we have a clone of the git repository, and resolve any required git-lfs // resource files that are needed to run the build but are still lfs stub files. def ensureBuildPrerequisites(largeResourcesFolder, buildPrerequisitesMessage, skipGitCheck) { - if (!JavaVersion.current().isJava8Compatible()) { - throw new GradleException( - "Java 8 or later is required to build GATK, but ${JavaVersion.current()} was found. " - + "$buildPrerequisitesMessage") + if (!JavaVersion.current().equals(JavaVersion.VERSION_17)) { + println("Warning: using Java ${JavaVersion.current()} but only Java 17 has been tested.") } - // Make sure we can get a ToolProvider class loader (for Java 8). If not we may have just a JRE. - if (JavaVersion.current().isJava8() && ToolProvider.getSystemToolClassLoader() == null) { + if (!JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17)) { throw new GradleException( - "The ClassLoader obtained from the Java ToolProvider is null. " - + "A full Java 8 or 11 JDK must be installed, check that you are not using a JRE. $buildPrerequisitesMessage") - } - if (!JavaVersion.current().isJava8() && !JavaVersion.current().isJava11()) { - println("Warning: using Java ${JavaVersion.current()} but only Java 8 and Java 11 have been tested.") + "A Java 17 compatible (Java 17 or later) version is required to build GATK, but ${JavaVersion.current()} was found. " + + "$buildPrerequisitesMessage") } if (!skipGitCheck && !looksLikeWereInAGitRepository() ) { throw new GradleException("This doesn't appear to be a git folder. " + @@ -182,11 +176,18 @@ configurations.all { // force testng dependency so we don't pick up a different version via GenomicsDB force 'org.testng:testng:' + testNGVersion force 'org.broadinstitute:barclay:' + barclayVersion - force 'com.twitter:chill_2.11:0.8.1' + force 'com.twitter:chill_2.12:0.10.0' + force 'org.apache.commons:commons-math3:3.5' // make sure we don't pick up an incorrect version of the GATK variant of the google-nio library // via Picard, etc. force googleCloudNioDependency + + force 'com.esotericsoftware:kryo:4.0.0' + + // hadoop uses an old jetty that doesn't like the new java version numbering scheme but 11.0.1 is + //missing methods used by org.apache.hadoop.http.HttpServer2 + //force 'org.eclipse.jetty:jetty-servlet:9.4.40.v20210413' } all*.exclude group: 'org.slf4j', module: 'slf4j-jdk14' //exclude this to prevent slf4j complaining about to many slf4j bindings all*.exclude group: 'com.google.guava', module: 'guava-jdk5' @@ -231,7 +232,7 @@ configurations { exclude module: 'javax.servlet' exclude module: 'servlet-api' exclude group: 'com.esotericsoftware.kryo' - exclude module: 'spark-mllib_2.11' + exclude module: 'spark-mllib_2.12' exclude group: 'org.scala-lang' exclude module: 'kryo' } @@ -336,7 +337,7 @@ dependencies { implementation('org.apache.hadoop:hadoop-client:' + hadoopVersion) // should be a 'provided' dependency implementation('com.github.jsr203hadoop:jsr203hadoop:1.0.3') - implementation('de.javakaffee:kryo-serializers:0.41') { + implementation('de.javakaffee:kryo-serializers:0.45') { exclude module: 'kryo' // use Spark's version } @@ -351,15 +352,15 @@ dependencies { implementation('com.github.fommil.netlib:netlib-native_system-osx-x86_64:1.1:natives') // Dependency change for including MLLib - implementation('com.esotericsoftware:kryo:3.0.3'){ - exclude group: 'com.esotericsoftware', module: 'reflectasm' + implementation('com.esotericsoftware:kryo:5.3.0'){ + //exclude group: 'com.esotericsoftware', module: 'reflectasm' exclude group: 'org.ow2.asm', module: 'asm' } - // Dependency change for including MLLib - implementation('com.esotericsoftware:reflectasm:1.10.0:shaded') { - transitive = false - } +// // Dependency change for including MLLib +// implementation('com.esotericsoftware:reflectasm:1.10.0:shaded') { +// transitive = false +// } implementation('com.intel.gkl:gkl:0.8.8') { exclude module: 'htsjdk' @@ -387,6 +388,125 @@ dependencies { testImplementation "com.google.jimfs:jimfs:1.1" } +run { + // taken from the union of everything encountered by tests, plus everything defined here: + // https://github.com/apache/spark/blob/v3.3.0/launcher/src/main/java/org/apache/spark/launcher/JavaModuleOptions.java + jvmArgs = [ + '--add-opens', 'java.base/java.lang=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.invoke=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED', + '--add-opens', 'java.base/java.io=ALL-UNNAMED', + '--add-opens', 'java.base/java.net=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio=ALL-UNNAMED', + '--add-opens', 'java.base/java.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent.atomic=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.ch=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.cs=ALL-UNNAMED', + '--add-opens', 'java.base/sun.security.action=ALL-UNNAMED', + '--add-opens', 'java.base/sun.util.calendar=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.fs=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.channels.spi=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.ref=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.ref=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.zip=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.jar=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.file.attribute=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED', + '--add-opens', 'java.base/sun.net.www.protocol.jar=ALL-UNNAMED', + '--add-opens', 'java.base/sun.invoke.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent.locks=ALL-UNNAMED', + '--add-opens', 'java.base/java.security=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.annotation=ALL-UNNAMED', + '--add-opens', 'java.base/java.text=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED', + '--add-opens', 'java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED', + '--add-opens', 'java.management/javax.management=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.regex=ALL-UNNAMED', + '--add-opens', 'java.base/sun.util.locale=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.math=ALL-UNNAMED', + '--add-opens', 'java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.time=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.factory=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.channels=ALL-UNNAMED', + '--add-opens', 'java.base/sun.security.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.time.zone=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.scope=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.tree=ALL-UNNAMED', + '--add-opens', 'java.management/com.sun.jmx.interceptor=ALL-UNNAMED', + '--add-opens', 'java.management/javax.management.openmbean=ALL-UNNAMED', + '--add-opens', 'java.management/sun.management=ALL-UNNAMED', + '--add-opens', 'jdk.management/com.sun.management.internal=ALL-UNNAMED', + '--add-opens', 'jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED', + '--add-opens', 'jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.module=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.module=ALL-UNNAMED', + '--add-opens', 'java.security.jgss/sun.security.krb5=ALL-UNNAMED', + '--add-opens', 'java.prefs/java.util.prefs=ALL-UNNAMED', // jacoco + + '-Dio.netty.tryReflectionSetAccessible=true' + ] + } +test { + jvmArgs = [ + '--add-opens', 'java.base/java.lang=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.invoke=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED', + '--add-opens', 'java.base/java.io=ALL-UNNAMED', + '--add-opens', 'java.base/java.net=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio=ALL-UNNAMED', + '--add-opens', 'java.base/java.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent.atomic=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.ch=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.cs=ALL-UNNAMED', + '--add-opens', 'java.base/sun.security.action=ALL-UNNAMED', + '--add-opens', 'java.base/sun.util.calendar=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.fs=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.channels.spi=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.ref=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.ref=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.zip=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.jar=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.file.attribute=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED', + '--add-opens', 'java.base/sun.net.www.protocol.jar=ALL-UNNAMED', + '--add-opens', 'java.base/sun.invoke.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent.locks=ALL-UNNAMED', + '--add-opens', 'java.base/java.security=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.annotation=ALL-UNNAMED', + '--add-opens', 'java.base/java.text=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED', + '--add-opens', 'java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED', + '--add-opens', 'java.management/javax.management=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.regex=ALL-UNNAMED', + '--add-opens', 'java.base/sun.util.locale=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.math=ALL-UNNAMED', + '--add-opens', 'java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.time=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.factory=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.channels=ALL-UNNAMED', + '--add-opens', 'java.base/sun.security.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.time.zone=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.scope=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.tree=ALL-UNNAMED', + '--add-opens', 'java.management/com.sun.jmx.interceptor=ALL-UNNAMED', + '--add-opens', 'java.management/javax.management.openmbean=ALL-UNNAMED', + '--add-opens', 'java.management/sun.management=ALL-UNNAMED', + '--add-opens', 'jdk.management/com.sun.management.internal=ALL-UNNAMED', + '--add-opens', 'jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED', + '--add-opens', 'jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.module=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.module=ALL-UNNAMED', + '--add-opens', 'java.security.jgss/sun.security.krb5=ALL-UNNAMED', + '--add-opens', 'java.prefs/java.util.prefs=ALL-UNNAMED', // jacoco + + '-Dio.netty.tryReflectionSetAccessible=true' + ] +} + //add gatk launcher script to the jar as a resource processResources { from("gatk") @@ -399,8 +519,8 @@ processTestResources { include "org/broadinstitute/hellbender/utils/io/*" } -sourceCompatibility = 1.8 -targetCompatibility = 1.8 +sourceCompatibility = 1.17 +targetCompatibility = 1.17 def createSymlinks(archivePath, symlinkLocation) { exec { @@ -496,6 +616,7 @@ task shadowTestClassJar(type: ShadowJar){ // A minimal jar that only contains the extra dependencies needed for running the tests task shadowTestJar(type: ShadowJar){ + dependsOn 'compileTestUtilsJava', 'processTestUtilsResources' group = "Shadow" description = " A minimal jar that only contains the extra dependencies needed for running the tests that arent packaged in the main shadow jar" from { @@ -507,12 +628,13 @@ task shadowTestJar(type: ShadowJar){ } task collectBundleIntoDir(type: Copy) { - dependsOn shadowJar, sparkJar, 'condaEnvironmentDefinition', 'gatkTabComplete', 'gatkDoc' + //dependsOn shadowJar, sparkJar, 'condaEnvironmentDefinition', 'gatkTabComplete', 'gatkDoc' + dependsOn shadowJar, sparkJar, 'condaEnvironmentDefinition' doFirst { assert file("gatk").exists() assert file("README.md").exists() - assert file("$docBuildDir/tabCompletion/gatk-completion.sh").exists() + //assert file("$docBuildDir/tabCompletion/gatk-completion.sh").exists() assert file("src/main/resources/org/broadinstitute/hellbender/utils/config/GATKConfig.properties").exists() } @@ -520,8 +642,8 @@ task collectBundleIntoDir(type: Copy) { from(sparkJar.archivePath) from("gatk") from("README.md") - from("$docBuildDir/tabCompletion/gatk-completion.sh") - from("$docBuildDir/gatkDoc", { into("gatkdoc") }) + //from("$docBuildDir/tabCompletion/gatk-completion.sh") + //from("$docBuildDir/gatkDoc", { into("gatkdoc") }) from("src/main/resources/org/broadinstitute/hellbender/utils/config/GATKConfig.properties") { rename 'GATKConfig.properties', 'GATKConfig.EXAMPLE.properties' @@ -628,36 +750,36 @@ task testUtilsJar(type: Jar){ from sourceSets.testUtils.output } -tasks.withType(Javadoc) { - // do this for all javadoc tasks, including gatkDoc - options.addStringOption('Xdoclint:none') - options.addStringOption('encoding', 'UTF-8') -} - -javadoc { - // This is a hack to disable the java 8 default javadoc lint until we fix the html formatting - // We only want to do this for the javadoc task, not gatkDoc - options.addStringOption('Xdoclint:none', '-quiet') - source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) - include '**/*.java' -} - - -task testUtilsJavadoc(type: Javadoc) { - // This is a hack to disable the java 8 default javadoc lint until we fix the html formatting - // We only want to do this for the javadoc task, not gatkDoc - options.addStringOption('Xdoclint:none', '-quiet') - source = sourceSets.testUtils.allJava - classpath = sourceSets.testUtils.runtimeClasspath - destinationDir = file("$docBuildDir/testUtilsJavadoc") - include '**/*.java' -} - -task testUtilsJavadocJar(type: Jar, dependsOn: testUtilsJavadoc){ - archiveBaseName = "$project.name-test-utils" - archiveClassifier = 'javadoc' - from "$docBuildDir/testUtilsJavadoc" -} +//tasks.withType(Javadoc) { +// // do this for all javadoc tasks, including gatkDoc +// options.addStringOption('Xdoclint:none') +// options.addStringOption('encoding', 'UTF-8') +//} +// +//javadoc { +// // This is a hack to disable the java 8 default javadoc lint until we fix the html formatting +// // We only want to do this for the javadoc task, not gatkDoc +// options.addStringOption('Xdoclint:none', '-quiet') +// source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) +// include '**/*.java' +//} +// +// +//task testUtilsJavadoc(type: Javadoc) { +// // This is a hack to disable the java 8 default javadoc lint until we fix the html formatting +// // We only want to do this for the javadoc task, not gatkDoc +// options.addStringOption('Xdoclint:none', '-quiet') +// source = sourceSets.testUtils.allJava +// classpath = sourceSets.testUtils.runtimeClasspath +// destinationDir = file("$docBuildDir/testUtilsJavadoc") +// include '**/*.java' +//} +// +//task testUtilsJavadocJar(type: Jar, dependsOn: testUtilsJavadoc){ +// archiveBaseName = "$project.name-test-utils" +// archiveClassifier = 'javadoc' +// from "$docBuildDir/testUtilsJavadoc" +//} task testUtilsSourcesJar(type: Jar){ archiveBaseName = "$project.name-test-utils" @@ -666,244 +788,244 @@ task testUtilsSourcesJar(type: Jar){ } // Generate GATK Online Doc -task gatkDoc(type: Javadoc, dependsOn: classes) { - final File gatkDocDir = new File("$docBuildDir/gatkdoc") - doFirst { - // make sure the output folder exists or we can create it - if (!gatkDocDir.exists() && !gatkDocDir.mkdirs()) { - throw new GradleException(String.format("Failure creating folder (%s) for GATK doc output in task (%s)", - gatkDocDir.getAbsolutePath(), - it.name)); - } - copy { - from('src/main/resources/org/broadinstitute/hellbender/utils/helpTemplates') - include 'gatkDoc.css' - into gatkDocDir - } - } - // Include the Picard source jar, which contains various .R, .sh, .css, .html, .xml and .MF files and - // other resources, but we only want the files that javadoc can handle, so just take the .java files. - source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) - include '**/*.java' - - // The gatkDoc process instantiates any documented feature classes, so to run it we need the entire - // runtime classpath, as well as jdk javadoc files such as tools.jar, where com.sun.javadoc lives. - classpath = sourceSets.main.runtimeClasspath + javadocJDKFiles - options.docletpath = classpath.asType(List) - options.doclet = "org.broadinstitute.hellbender.utils.help.GATKHelpDoclet" - - //gradle 6.x+ defaults to setting this true which breaks the barclay doclet - options.noTimestamp(false) - - outputs.dir(gatkDocDir) - options.destinationDirectory(gatkDocDir) - - options.addStringOption("settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/helpTemplates"); - if (project.hasProperty('phpDoc')) { - // use -PphpDoc to generate .php file extensions, otherwise rely on default of .html - final String phpExtension = "php" - options.addStringOption("output-file-extension", phpExtension) - options.addStringOption("index-file-extension", phpExtension) - } - options.addStringOption("absolute-version", getVersion()) - options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) -} - -// Generate GATK Bash Tab Completion File -task gatkTabComplete(type: Javadoc, dependsOn: classes) { - final File tabCompletionDir = new File("$docBuildDir/tabCompletion") - doFirst { - // make sure the output folder exists or we can create it - if (!tabCompletionDir.exists() && !tabCompletionDir.mkdirs()) { - throw new GradleException(String.format("Failure creating folder (%s) for GATK tab completion output in task (%s)", - tabCompletionDir.getAbsolutePath(), - it.name)); - } - } - // Include the Picard source jar, which contains various .R, .sh, .css, .html, .xml and .MF files and - // other resources, but we only want the files that javadoc can handle, so just take the .java files. - source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) - include '**/*.java' - - // The gatkDoc process instantiates any documented feature classes, so to run it we need the entire - // runtime classpath, as well as jdk javadoc files such as tools.jar, where com.sun.javadoc lives, and Picard. - classpath = sourceSets.main.runtimeClasspath + javadocJDKFiles - - options.docletpath = classpath.asType(List) - options.doclet = "org.broadinstitute.barclay.help.BashTabCompletionDoclet" - - //gradle 6.x+ defaults to setting this true which breaks the barclay doclet - options.noTimestamp(false) - - outputs.dir(tabCompletionDir) - options.destinationDirectory(tabCompletionDir) - - // This is a hack to work around a gross Gradle bug: - options.addStringOption('use-default-templates', '-use-default-templates') - - options.addStringOption("output-file-extension", "sh") - options.addStringOption("index-file-extension", "sh") - options.addStringOption("absolute-version", getVersion()) - options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) - - options.addStringOption("caller-script-name", "gatk") - - options.addStringOption("caller-pre-legal-args", "--help --list --dry-run --java-options") - options.addStringOption("caller-pre-arg-val-types", "null null null String") - options.addStringOption("caller-pre-mutex-args", "--help;list,dry-run,java-options --list;help,dry-run,java-options") - options.addStringOption("caller-pre-alias-args", "--help;-h") - options.addStringOption("caller-pre-arg-min-occurs", "0 0 0 0") - options.addStringOption("caller-pre-arg-max-occurs", "1 1 1 1") - - options.addStringOption("caller-post-legal-args", "--spark-runner --spark-master --cluster --dry-run --java-options --conf --driver-memory --driver-cores --executor-memory --executor-cores --num-executors") - options.addStringOption("caller-post-arg-val-types", "String String String null String file int int int int int") - options.addStringOption("caller-post-mutex-args", "") - options.addStringOption("caller-post-alias-args", "") - options.addStringOption("caller-post-arg-min-occurs", "0 0 0 0 0 0 0 0 0 0") - options.addStringOption("caller-post-arg-max-occurs", "1 1 1 1 1 1 1 1 1 1") -} - -def getWDLInputJSONTestFileNameFromWDLName(File wdlName) { - String fileWithoutExt = wdlName.name.take(wdlName.name.lastIndexOf('.')) - return new File (wdlName.getParentFile(), fileWithoutExt + "Inputs.json").getAbsolutePath() -} +//task gatkDoc(type: Javadoc, dependsOn: classes) { +// final File gatkDocDir = new File("$docBuildDir/gatkdoc") +// doFirst { +// // make sure the output folder exists or we can create it +// if (!gatkDocDir.exists() && !gatkDocDir.mkdirs()) { +// throw new GradleException(String.format("Failure creating folder (%s) for GATK doc output in task (%s)", +// gatkDocDir.getAbsolutePath(), +// it.name)); +// } +// copy { +// from('src/main/resources/org/broadinstitute/hellbender/utils/helpTemplates') +// include 'gatkDoc.css' +// into gatkDocDir +// } +// } +// // Include the Picard source jar, which contains various .R, .sh, .css, .html, .xml and .MF files and +// // other resources, but we only want the files that javadoc can handle, so just take the .java files. +// source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) +// include '**/*.java' +// +// // The gatkDoc process instantiates any documented feature classes, so to run it we need the entire +// // runtime classpath, as well as jdk javadoc files such as tools.jar, where com.sun.javadoc lives. +// classpath = sourceSets.main.runtimeClasspath + javadocJDKFiles +// options.docletpath = classpath.asType(List) +// options.doclet = "org.broadinstitute.hellbender.utils.help.GATKHelpDoclet" +// +// //gradle 6.x+ defaults to setting this true which breaks the barclay doclet +// options.noTimestamp(false) +// +// outputs.dir(gatkDocDir) +// options.destinationDirectory(gatkDocDir) +// +// options.addStringOption("settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/helpTemplates"); +// if (project.hasProperty('phpDoc')) { +// // use -PphpDoc to generate .php file extensions, otherwise rely on default of .html +// final String phpExtension = "php" +// options.addStringOption("output-file-extension", phpExtension) +// options.addStringOption("index-file-extension", phpExtension) +// } +// options.addStringOption("absolute-version", getVersion()) +// options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) +//} +// +//// Generate GATK Bash Tab Completion File +//task gatkTabComplete(type: Javadoc, dependsOn: classes) { +// final File tabCompletionDir = new File("$docBuildDir/tabCompletion") +// doFirst { +// // make sure the output folder exists or we can create it +// if (!tabCompletionDir.exists() && !tabCompletionDir.mkdirs()) { +// throw new GradleException(String.format("Failure creating folder (%s) for GATK tab completion output in task (%s)", +// tabCompletionDir.getAbsolutePath(), +// it.name)); +// } +// } +// // Include the Picard source jar, which contains various .R, .sh, .css, .html, .xml and .MF files and +// // other resources, but we only want the files that javadoc can handle, so just take the .java files. +// source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) +// include '**/*.java' +// +// // The gatkDoc process instantiates any documented feature classes, so to run it we need the entire +// // runtime classpath, as well as jdk javadoc files such as tools.jar, where com.sun.javadoc lives, and Picard. +// classpath = sourceSets.main.runtimeClasspath + javadocJDKFiles +// +// options.docletpath = classpath.asType(List) +// options.doclet = "org.broadinstitute.barclay.help.BashTabCompletionDoclet" +// +// //gradle 6.x+ defaults to setting this true which breaks the barclay doclet +// options.noTimestamp(false) +// +// outputs.dir(tabCompletionDir) +// options.destinationDirectory(tabCompletionDir) +// +// // This is a hack to work around a gross Gradle bug: +// options.addStringOption('use-default-templates', '-use-default-templates') +// +// options.addStringOption("output-file-extension", "sh") +// options.addStringOption("index-file-extension", "sh") +// options.addStringOption("absolute-version", getVersion()) +// options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) +// +// options.addStringOption("caller-script-name", "gatk") +// +// options.addStringOption("caller-pre-legal-args", "--help --list --dry-run --java-options") +// options.addStringOption("caller-pre-arg-val-types", "null null null String") +// options.addStringOption("caller-pre-mutex-args", "--help;list,dry-run,java-options --list;help,dry-run,java-options") +// options.addStringOption("caller-pre-alias-args", "--help;-h") +// options.addStringOption("caller-pre-arg-min-occurs", "0 0 0 0") +// options.addStringOption("caller-pre-arg-max-occurs", "1 1 1 1") +// +// options.addStringOption("caller-post-legal-args", "--spark-runner --spark-master --cluster --dry-run --java-options --conf --driver-memory --driver-cores --executor-memory --executor-cores --num-executors") +// options.addStringOption("caller-post-arg-val-types", "String String String null String file int int int int int") +// options.addStringOption("caller-post-mutex-args", "") +// options.addStringOption("caller-post-alias-args", "") +// options.addStringOption("caller-post-arg-min-occurs", "0 0 0 0 0 0 0 0 0 0") +// options.addStringOption("caller-post-arg-max-occurs", "1 1 1 1 1 1 1 1 1 1") +//} +// +//def getWDLInputJSONTestFileNameFromWDLName(File wdlName) { +// String fileWithoutExt = wdlName.name.take(wdlName.name.lastIndexOf('.')) +// return new File (wdlName.getParentFile(), fileWithoutExt + "Inputs.json").getAbsolutePath() +//} // Generate GATK Tool WDL -task gatkWDLGen(type: Javadoc, dependsOn: classes) { - final File gatkWDLDir = new File("$docBuildDir/wdlGen") - outputs.dir(gatkWDLDir) - doFirst { - // make sure the output folder exists or we can create it - if (!gatkWDLDir.exists() && !gatkWDLDir.mkdirs()) { - throw new GradleException(String.format("Failure creating folder (%s) for GATK WDL output in task (%s)", - gatkWDLDir.getAbsolutePath(), - it.name)); - } - copy { - from('src/main/resources/org/broadinstitute/hellbender/utils/wdlTemplates/common.html') - into gatkWDLDir - } - } - source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) - include '**/*.java' - - // The gatkWDLGen process instantiates any documented feature classes, so to run it we need the entire - // runtime classpath, as well as jdk javadoc files such as tools.jar, where com.sun.javadoc lives. - classpath = sourceSets.main.runtimeClasspath + javadocJDKFiles - options.docletpath = classpath.asType(List) - options.doclet = "org.broadinstitute.hellbender.utils.help.GATKWDLDoclet" - - //gradle 6.x+ defaults to setting this true which breaks the barclay doclet - options.noTimestamp(false) - - outputs.dir(gatkWDLDir) - options.destinationDirectory(gatkWDLDir) - - options.addStringOption("settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/wdlTemplates"); - options.addStringOption("output-file-extension", "wdl") - options.addStringOption("index-file-extension", "html") - - options.addStringOption("absolute-version", getVersion()) - options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) - - // the wdl doclet will populate the test JSON input files with the name of a dummy - // file in this location, in order to satisfy cromwell's attempts to localize inputs and outputs - options.addStringOption("build-dir", System.getenv("TRAVIS_BUILD_DIR") ?: new File(".").getAbsolutePath()) -} - -def execWDLValidation = { validateWDL -> - println "Executing: $validateWDL" - try { - def retCode = validateWDL.execute().waitFor() - if (retCode.intValue() != 0) { - throw new GradleException("Execution of \"$validateWDL\" failed with exit code: $retCode.") - } - return retCode - } catch (IOException e) { - throw new GradleException("An IOException occurred while attempting to execute the command $validateWDL.") - } -} - -task gatkValidateScriptsWdl() { - doFirst { - // running this task requires a local cromwell installation, with environment variables CROMWELL_JAR, - // WOMTOOL_JAR set to the jar locations - if (System.getenv('CROMWELL_JAR') == null || System.getenv('WOMTOOL_JAR') == null) { - throw new GradleException("Running this task requires the CROMWELL_JAR and WOMTOOL_JAR environment variables to be set") - } - } - - doLast { - // Run the womtool validator on all WDL files in the 'scripts' directory - final File wdlFolder = new File("scripts") - def wdlFiles = fileTree(dir: wdlFolder).filter { - f -> f.getAbsolutePath().endsWith(".wdl") - } - final womtoolLocation = System.getenv('WOMTOOL_JAR') - wdlFiles.any() { wdlFile -> - final validateWDLCommand = "java -jar $womtoolLocation validate $wdlFile" - execWDLValidation(validateWDLCommand) - } - } -} - -task gatkValidateGeneratedWdl(dependsOn: [gatkWDLGen, shadowJar]) { - doFirst { - // running this task requires a local cromwell installation, with environment variables CROMWELL_JAR, - // WOMTOOL_JAR set to the jar locations - if (System.getenv('CROMWELL_JAR') == null || System.getenv('WOMTOOL_JAR') == null) { - throw new GradleException("Running this task requires the CROMWELL_JAR and WOMTOOL_JAR environment variables to be set") - } - } - - doLast { - // first, run the womtool validator on WDL files in the 'docs/wdlGen' directory - final File wdlGenFolder = new File("$docBuildDir/wdlGen") - def wdlFiles = fileTree(dir: wdlGenFolder).filter { - f -> !f.getAbsolutePath().endsWith(".html") && !f.getAbsolutePath().endsWith(".json") - } - final womtoolLocation = System.getenv('WOMTOOL_JAR') - wdlFiles.any() { wdlFile -> - final validateWDLCommand = "java -jar $womtoolLocation validate $wdlFile" - execWDLValidation(validateWDLCommand) - } - - // now execute the *AllArgs test wdls using cromwell - wdlFiles = fileTree(dir: wdlGenFolder).filter { - f -> f.getAbsolutePath().endsWith("AllArgsTest.wdl") - } - - // the test JSON input file is populated by the WDL gen process with the name of this dummy file - // to satisfy cromwell's attempt to de/localize input/output files - def buildDir = System.getenv("TRAVIS_BUILD_DIR") ?: new File(".").getAbsolutePath() - final dummyWDLTestFileName = "$buildDir/dummyWDLTestFile" - final File dummyWDLTestFile = file(dummyWDLTestFileName) - final cromwellLocation = System.getenv('CROMWELL_JAR') - try { - wdlFiles.any() { wdlFile -> - final testInputJSON = getWDLInputJSONTestFileNameFromWDLName(wdlFile) - final runWDLCommand = "java -jar $cromwellLocation run --inputs $testInputJSON $wdlFile" - execWDLValidation("touch $dummyWDLTestFileName") - execWDLValidation(runWDLCommand) - } - } finally { - // delete the dummy test file and the 'cromwell-executions' directory left behind by cromwell - dummyWDLTestFile.delete() - file("$buildDir/cromwell-executions").deleteDir() - file("$buildDir/cromwell-workflow-logs").deleteDir() - } - } -} +//task gatkWDLGen(type: Javadoc, dependsOn: classes) { +// final File gatkWDLDir = new File("$docBuildDir/wdlGen") +// outputs.dir(gatkWDLDir) +// doFirst { +// // make sure the output folder exists or we can create it +// if (!gatkWDLDir.exists() && !gatkWDLDir.mkdirs()) { +// throw new GradleException(String.format("Failure creating folder (%s) for GATK WDL output in task (%s)", +// gatkWDLDir.getAbsolutePath(), +// it.name)); +// } +// copy { +// from('src/main/resources/org/broadinstitute/hellbender/utils/wdlTemplates/common.html') +// into gatkWDLDir +// } +// } +// source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) +// include '**/*.java' +// +// // The gatkWDLGen process instantiates any documented feature classes, so to run it we need the entire +// // runtime classpath, as well as jdk javadoc files such as tools.jar, where com.sun.javadoc lives. +// classpath = sourceSets.main.runtimeClasspath + javadocJDKFiles +// options.docletpath = classpath.asType(List) +// options.doclet = "org.broadinstitute.hellbender.utils.help.GATKWDLDoclet" +// +// //gradle 6.x+ defaults to setting this true which breaks the barclay doclet +// options.noTimestamp(false) +// +// outputs.dir(gatkWDLDir) +// options.destinationDirectory(gatkWDLDir) +// +// options.addStringOption("settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/wdlTemplates"); +// options.addStringOption("output-file-extension", "wdl") +// options.addStringOption("index-file-extension", "html") +// +// options.addStringOption("absolute-version", getVersion()) +// options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) +// +// // the wdl doclet will populate the test JSON input files with the name of a dummy +// // file in this location, in order to satisfy cromwell's attempts to localize inputs and outputs +// options.addStringOption("build-dir", System.getenv("TRAVIS_BUILD_DIR") ?: new File(".").getAbsolutePath()) +//} +// +//def execWDLValidation = { validateWDL -> +// println "Executing: $validateWDL" +// try { +// def retCode = validateWDL.execute().waitFor() +// if (retCode.intValue() != 0) { +// throw new GradleException("Execution of \"$validateWDL\" failed with exit code: $retCode.") +// } +// return retCode +// } catch (IOException e) { +// throw new GradleException("An IOException occurred while attempting to execute the command $validateWDL.") +// } +//} +// +//task gatkValidateScriptsWdl() { +// doFirst { +// // running this task requires a local cromwell installation, with environment variables CROMWELL_JAR, +// // WOMTOOL_JAR set to the jar locations +// if (System.getenv('CROMWELL_JAR') == null || System.getenv('WOMTOOL_JAR') == null) { +// throw new GradleException("Running this task requires the CROMWELL_JAR and WOMTOOL_JAR environment variables to be set") +// } +// } +// +// doLast { +// // Run the womtool validator on all WDL files in the 'scripts' directory +// final File wdlFolder = new File("scripts") +// def wdlFiles = fileTree(dir: wdlFolder).filter { +// f -> f.getAbsolutePath().endsWith(".wdl") +// } +// final womtoolLocation = System.getenv('WOMTOOL_JAR') +// wdlFiles.any() { wdlFile -> +// final validateWDLCommand = "java -jar $womtoolLocation validate $wdlFile" +// execWDLValidation(validateWDLCommand) +// } +// } +//} +// +//task gatkValidateGeneratedWdl(dependsOn: [gatkWDLGen, shadowJar]) { +// doFirst { +// // running this task requires a local cromwell installation, with environment variables CROMWELL_JAR, +// // WOMTOOL_JAR set to the jar locations +// if (System.getenv('CROMWELL_JAR') == null || System.getenv('WOMTOOL_JAR') == null) { +// throw new GradleException("Running this task requires the CROMWELL_JAR and WOMTOOL_JAR environment variables to be set") +// } +// } +// +// doLast { +// // first, run the womtool validator on WDL files in the 'docs/wdlGen' directory +// final File wdlGenFolder = new File("$docBuildDir/wdlGen") +// def wdlFiles = fileTree(dir: wdlGenFolder).filter { +// f -> !f.getAbsolutePath().endsWith(".html") && !f.getAbsolutePath().endsWith(".json") +// } +// final womtoolLocation = System.getenv('WOMTOOL_JAR') +// wdlFiles.any() { wdlFile -> +// final validateWDLCommand = "java -jar $womtoolLocation validate $wdlFile" +// execWDLValidation(validateWDLCommand) +// } +// +// // now execute the *AllArgs test wdls using cromwell +// wdlFiles = fileTree(dir: wdlGenFolder).filter { +// f -> f.getAbsolutePath().endsWith("AllArgsTest.wdl") +// } +// +// // the test JSON input file is populated by the WDL gen process with the name of this dummy file +// // to satisfy cromwell's attempt to de/localize input/output files +// def buildDir = System.getenv("TRAVIS_BUILD_DIR") ?: new File(".").getAbsolutePath() +// final dummyWDLTestFileName = "$buildDir/dummyWDLTestFile" +// final File dummyWDLTestFile = file(dummyWDLTestFileName) +// final cromwellLocation = System.getenv('CROMWELL_JAR') +// try { +// wdlFiles.any() { wdlFile -> +// final testInputJSON = getWDLInputJSONTestFileNameFromWDLName(wdlFile) +// final runWDLCommand = "java -jar $cromwellLocation run --inputs $testInputJSON $wdlFile" +// execWDLValidation("touch $dummyWDLTestFileName") +// execWDLValidation(runWDLCommand) +// } +// } finally { +// // delete the dummy test file and the 'cromwell-executions' directory left behind by cromwell +// dummyWDLTestFile.delete() +// file("$buildDir/cromwell-executions").deleteDir() +// file("$buildDir/cromwell-workflow-logs").deleteDir() +// } +// } +//} /** *This specifies what artifacts will be built and uploaded when performing a maven upload. */ artifacts { - archives javadocJar + //archives javadocJar archives sourcesJar archives testUtilsJar - archives testUtilsJavadocJar + //archives testUtilsJavadocJar archives testUtilsSourcesJar } @@ -972,7 +1094,7 @@ publishing { artifact testUtilsJar artifact testUtilsSourcesJar - artifact testUtilsJavadocJar + //artifact testUtilsJavadocJar } } diff --git a/gatk b/gatk index 45559912047..6d515be8acb 100755 --- a/gatk +++ b/gatk @@ -37,12 +37,120 @@ EXTRA_JAVA_OPTIONS_SPARK= "-DGATK_STACKTRACE_ON_USER_EXCEPTION=true " \ "-Dsamjdk.use_async_io_read_samtools=false " \ "-Dsamjdk.use_async_io_write_samtools=false " \ "-Dsamjdk.use_async_io_write_tribble=false " \ - "-Dsamjdk.compression_level=2 " - -PACKAGED_LOCAL_JAR_OPTIONS= ["-Dsamjdk.use_async_io_read_samtools=false", + "-Dsamjdk.compression_level=2 " \ + "--add-opens", "java.base/java.lang=ALL-UNNAMED " \ + "--add-opens", "java.base/java.lang.invoke=ALL-UNNAMED " \ + "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED " \ + "--add-opens", "java.base/java.io=ALL-UNNAMED " \ + "--add-opens", "java.base/java.net=ALL-UNNAMED " \ + "--add-opens", "java.base/java.nio=ALL-UNNAMED " \ + "--add-opens", "java.base/java.util=ALL-UNNAMED " \ + "--add-opens", "java.base/java.util.concurrent=ALL-UNNAMED " \ + "--add-opens", "java.base/java.util.concurrent.atomic=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.nio.cs=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.security.action=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.util.calendar=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.nio.fs=ALL-UNNAMED " \ + "--add-opens", "java.base/java.nio.channels.spi=ALL-UNNAMED " \ + "--add-opens", "java.base/jdk.internal.ref=ALL-UNNAMED " \ + "--add-opens", "java.base/java.lang.ref=ALL-UNNAMED " \ + "--add-opens", "java.base/java.util.zip=ALL-UNNAMED " \ + "--add-opens", "java.base/java.util.jar=ALL-UNNAMED " \ + "--add-opens", "java.base/java.nio.file.attribute=ALL-UNNAMED " \ + "--add-opens", "java.base/jdk.internal.loader=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.net.www.protocol.jar=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.invoke.util=ALL-UNNAMED " \ + "--add-opens", "java.base/java.util.concurrent.locks=ALL-UNNAMED " \ + "--add-opens", "java.base/java.security=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.reflect.annotation=ALL-UNNAMED " \ + "--add-opens", "java.base/java.text=ALL-UNNAMED " \ + "--add-opens", "java.base/java.nio.charset=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED " \ + "--add-opens", "java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED " \ + "--add-opens", "java.management/javax.management=ALL-UNNAMED " \ + "--add-opens", "java.base/java.util.regex=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.util.locale=ALL-UNNAMED " \ + "--add-opens", "java.base/jdk.internal.math=ALL-UNNAMED " \ + "--add-opens", "java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED " \ + "--add-opens", "java.base/java.time=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.reflect.generics.factory=ALL-UNNAMED' " \ + "--add-opens", "java.base/java.nio.channels=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.security.util=ALL-UNNAMED " \ + "--add-opens", "java.base/java.time.zone=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.reflect.generics.scope=ALL-UNNAMED " \ + "--add-opens", "java.base/sun.reflect.generics.tree=ALL-UNNAMED " \ + "--add-opens", "java.management/com.sun.jmx.interceptor=ALL-UNNAMED " \ + "--add-opens", "java.management/javax.management.openmbean=ALL-UNNAMED " \ + "--add-opens", "java.management/sun.management=ALL-UNNAMED " \ + "--add-opens", "jdk.management/com.sun.management.internal=ALL-UNNAMED " \ + "--add-opens", "jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED " \ + "--add-opens", "jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED " \ + "--add-opens", "java.base/jdk.internal.module=ALL-UNNAMED " \ + "--add-opens", "java.base/java.lang.module=ALL-UNNAMED " \ + "--add-opens", "java.security.jgss/sun.security.krb5=ALL-UNNAMED " \ + "--add-opens", "java.prefs/java.util.prefs=ALL-UNNAMED " \ + "-Dio.netty.tryReflectionSetAccessible=true" + +PACKAGED_LOCAL_JAR_OPTIONS= [ + "-Dsamjdk.use_async_io_read_samtools=false", "-Dsamjdk.use_async_io_write_samtools=true", "-Dsamjdk.use_async_io_write_tribble=false", - "-Dsamjdk.compression_level=2"] + "-Dsamjdk.compression_level=2", + "--add-opens", "java.base/java.lang=ALL-UNNAMED", + "--add-opens", "java.base/java.lang.invoke=ALL-UNNAMED", + "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", + "--add-opens", "java.base/java.io=ALL-UNNAMED", + "--add-opens", "java.base/java.net=ALL-UNNAMED", + "--add-opens", "java.base/java.nio=ALL-UNNAMED", + "--add-opens", "java.base/java.util=ALL-UNNAMED", + "--add-opens", "java.base/java.util.concurrent=ALL-UNNAMED", + "--add-opens", "java.base/java.util.concurrent.atomic=ALL-UNNAMED ", + "--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", + "--add-opens", "java.base/sun.nio.cs=ALL-UNNAMED", + "--add-opens", "java.base/sun.security.action=ALL-UNNAMED", + "--add-opens", "java.base/sun.util.calendar=ALL-UNNAMED", + "--add-opens", "java.base/sun.nio.fs=ALL-UNNAMED", + "--add-opens", "java.base/java.nio.channels.spi=ALL-UNNAMED", + "--add-opens", "java.base/jdk.internal.ref=ALL-UNNAMED", + "--add-opens", "java.base/java.lang.ref=ALL-UNNAMED", + "--add-opens", "java.base/java.util.zip=ALL-UNNAMED", + "--add-opens", "java.base/java.util.jar=ALL-UNNAMED", + "--add-opens", "java.base/java.nio.file.attribute=ALL-UNNAMED", + "--add-opens", "java.base/jdk.internal.loader=ALL-UNNAMED", + "--add-opens", "java.base/sun.net.www.protocol.jar=ALL-UNNAMED", + "--add-opens", "java.base/sun.invoke.util=ALL-UNNAMED", + "--add-opens", "java.base/java.util.concurrent.locks=ALL-UNNAMED", + "--add-opens", "java.base/java.security=ALL-UNNAMED", + "--add-opens", "java.base/sun.reflect.annotation=ALL-UNNAMED", + "--add-opens", "java.base/java.text=ALL-UNNAMED", + "--add-opens", "java.base/java.nio.charset=ALL-UNNAMED", + "--add-opens", "java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED", + "--add-opens", "java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED", + "--add-opens", "java.management/javax.management=ALL-UNNAMED", + "--add-opens", "java.base/java.util.regex=ALL-UNNAMED", + "--add-opens", "java.base/sun.util.locale=ALL-UNNAMED", + "--add-opens", "java.base/jdk.internal.math=ALL-UNNAMED", + "--add-opens", "java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED", + "--add-opens", "java.base/java.time=ALL-UNNAMED", + "--add-opens", "java.base/sun.reflect.generics.factory=ALL-UNNAMED", + "--add-opens", "java.base/java.nio.channels=ALL-UNNAMED", + "--add-opens", "java.base/sun.security.util=ALL-UNNAMED", + "--add-opens", "java.base/java.time.zone=ALL-UNNAMED", + "--add-opens", "java.base/sun.reflect.generics.scope=ALL-UNNAMED", + "--add-opens", "java.base/sun.reflect.generics.tree=ALL-UNNAMED", + "--add-opens", "java.management/com.sun.jmx.interceptor=ALL-UNNAMED", + "--add-opens", "java.management/javax.management.openmbean=ALL-UNNAMED", + "--add-opens", "java.management/sun.management=ALL-UNNAMED", + "--add-opens", "jdk.management/com.sun.management.internal=ALL-UNNAMED", + "--add-opens", "jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED", + "--add-opens", "jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED", + "--add-opens", "java.base/jdk.internal.module=ALL-UNNAMED", + "--add-opens", "java.base/java.lang.module=ALL-UNNAMED", + "--add-opens", "java.security.jgss/sun.security.krb5=ALL-UNNAMED", + "--add-opens", "java.prefs/java.util.prefs=ALL-UNNAMED", + "-Dio.netty.tryReflectionSetAccessible=true" +] DEFAULT_SPARK_ARGS_PREFIX = '--conf' DEFAULT_SPARK_ARGS = { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180f2ae8848c63b8b4dea2cb829da983f2fa..41d9927a4d4fb3f96a785543079b8df6723c946b 100644 GIT binary patch delta 8958 zcmY+KWl$VIlZIh&f(Hri?gR<$?iyT!TL`X;1^2~W7YVSq1qtqM!JWlDxLm%}UESUM zndj}Uny%^UnjhVhFb!8V3s(a#fIy>`VW15{5nuy;_V&a5O#0S&!a4dSkUMz_VHu3S zGA@p9Q$T|Sj}tYGWdjH;Mpp8m&yu&YURcrt{K;R|kM~(*{v%QwrBJIUF+K1kX5ZmF zty3i{d`y0;DgE+de>vN@yYqFPe1Ud{!&G*Q?iUc^V=|H%4~2|N zW+DM)W!`b&V2mQ0Y4u_)uB=P@-2`v|Wm{>CxER1P^ z>c}ZPZ)xxdOCDu59{X^~2id7+6l6x)U}C4Em?H~F`uOxS1?}xMxTV|5@}PlN%Cg$( zwY6c}r60=z5ZA1L zTMe;84rLtYvcm?M(H~ZqU;6F7Evo{P7!LGcdwO|qf1w+)MsnvK5^c@Uzj<{ zUoej1>95tuSvDJ|5K6k%&UF*uE6kBn47QJw^yE&#G;u^Z9oYWrK(+oL97hBsUMc_^ z;-lmxebwlB`Er_kXp2$`&o+rPJAN<`WX3ws2K{q@qUp}XTfV{t%KrsZ5vM!Q#4{V& zq>iO$MCiLq#%wXj%`W$_%FRg_WR*quv65TdHhdpV&jlq<=K^K`&!Kl5mA6p4n~p3u zWE{20^hYpn1M}}VmSHBXl1*-)2MP=0_k)EPr#>EoZukiXFDz?Di1I>2@Z^P$pvaF+ zN+qUy63jek2m59;YG)`r^F3-O)0RDIXPhf)XOOdkmu`3SMMSW(g+`Ajt{=h1dt~ks ztrhhP|L4G%5x79N#kwAHh5N){@{fzE7n&%dnisCm65Za<8r_hKvfx4Bg*`%-*-Mvn zFvn~)VP@}1sAyD+B{{8l{EjD10Av&Mz9^Xff*t`lU=q=S#(|>ls520;n3<}X#pyh& z*{CJf7$*&~!9jMnw_D~ikUKJ2+UnXmN6qak{xx%W;BKuXt7@ky!LPI1qk?gDwG@@o zkY+BkIie>{{q==5)kXw(*t#I?__Kwi>`=+s?Gq6X+vtSsaAO&Tf+Bl$vKnzc&%BHM z=loWOQq~n}>l=EL(5&6((ESsQC3^@4jlO5Od{qN#sWV)vqXw}aA>*uvwZopNN(|-T zRTF%5Y_k1R$;(d-)n;hWex{;7b6KgdAVE@&0pd(*qDzBO#YZV%kh%pYt1`hnQ(Fa& zYiDrOTDqk5M7hzp9kI2h!PxNnuJ&xl*zF8sx6!67bA49R1bmUF5bpK&&{eI0U~cH}PM z3aW1$lRb|ItkG5~_eBNu$|I|vYIdAA9a!pVq<+UTx*M}fG`23zxXp&E=FfnY- zEzKj;Cu_s4v>leO7M2-mE(UzKHL4c$c`3dS*19OpLV^4NI*hWWnJQ9lvzP4c;c?do zqrcsKT*i~eIHl0D3r4N{)+RsB6XhrC^;sp2cf_Eq#6*CV;t8v=V!ISe>>9kPgh}NI z=1UZutslxcT$Ad;_P^;Oouoa(cs!Ctpvi>%aQ+Zp=1d|h{W9Wmf7JWxa(~<#tSZ?C%wu4_5F!fc!<@PIBeJ)Nr^$bB6!_Gic_7}c3J{QI~Gg5g5jTp9}V6KYgrgaX>pJt}7$!wOht&KO|+z{Iw@YL|@~D zMww}+lG}rm2^peNx>58ME||ZQxFQeVSX8iogHLq_vXb`>RnoEKaTWBF-$JD#Q4BMv zt2(2Qb*x-?ur1Y(NsW8AdtX0#rDB?O(Vs4_xA(u-o!-tBG03OI!pQD+2UytbL5>lG z*(F)KacHqMa4?dxa(Vcrw>IIAeB$3cx#;;5r2X;HE8|}eYdAgCw#tpXNy7C3w1q`9 zGxZ6;@1G%8shz9e+!K2MO*{_RjO}Jo6eL3{TSZ>nY7)Qs`Dhi5><@oh0r)gT7H-?3 zLDsd^@m%JvrS8sta5`QiZNs^*GT}Hiy^zjK2^Ni%`Z|ma)D2 zuyumbvw$M8$haCTI~6M%d4+P)uX%u{Sfg4Al+F7c6;O-*)DKI7E8izSOKB#FcV{M+ zEvY0FBkq!$J0EW$Cxl}3{JwV^ki-T?q6C30Y5e&p@8Rd?$ST-Ghn*-`tB{k54W<>F z5I)TFpUC!E9298=sk>m#FI4sUDy_!8?51FqqW!9LN1(zuDnB3$!pEUjL>N>RNgAG~-9Xm|1lqHseW(%v&6K(DZ3Pano(1-Qe?3%J&>0`~w^Q-p&@ zg@HjvhJk?*hpF7$9P|gkzz`zBz_5Z!C4_-%fCcAgiSilzFQef!@amHDrW!YZS@?7C zs2Y9~>yqO+rkih?kXztzvnB^6W=f52*iyuZPv$c42$WK7>PHb z6%MYIr5D32KPdwL1hJf{_#jn?`k(taW?mwmZVvrr=y~fNcV$`}v(8};o9AjOJumS4 z`889O91^pkF+|@$d9wVoZ3;^j;^sUs&Ubo_qD&MTL%O z&*SE0ujG~zm;?x)8TLC&ft))nyI zcg44@*Q{cYT+qGrA=In_X{NNCD+B0w#;@g)jvBU;_8od6U>;7HIo@F*=g8CQUo(u^ z3r4FJ7#<@)MXO&5+DgKE&^>^`r!loe7CWE*1k0*0wLFzSOV8jvlX~WOQ?$1v zk$Or}!;ix0g78^6W;+<=J>z@CBs!<<)HvF(Ls-&`matpesJ5kkjC)6nGB@b{ii6-Uoho$BT%iJgugTOeZ$5Xo4D7Pd< zC*LJh5V@2#5%aBZCgzlQi3@<_!VfiL07ywc)ZbwKPfcR|ElQoS(8x|a7#IR}7#Io= zwg4$8S{egr-NffD)Fg&X9bJSoM25pF&%hf>(T&9bI}=#dPQyNYz;ZZ7EZ=u1n701SWKkZ9n(-qU ztN`sdWL1uxQ1mKS@x11;O|@^AD9!NeoPx}?EKIr!2>1Qq4gjfGU)tr6?Z5l7JAS3j zZeq{vG{rb%DFE4%$szK}d2UzB{4>L?Tv+NAlE*&Nq6g+XauaSI+N2Y8PJLw+aNg1p zbxr|hI8wcMP&&+(Cu|%+Jq|r>+BHk@{AvfBXKiVldN)@}TBS0LdIpnANCVE26WL-} zV}HJ^?m&$Rkq;Zf*i-hoasnpJVyTH__dbGWrB_R55d*>pTyl6(?$EO@>RCmTX1Hzr zT2)rOng?D4FfZ_C49hjMV*UonG2DlG$^+k=Y%|?Dqae4}JOU=8=fgY4Uh!pa9eEqf zFX&WLPu!jArN*^(>|H>dj~g`ONZhaaD%h_HHrHkk%d~TR_RrX{&eM#P@3x=S^%_6h zh=A)A{id16$zEFq@-D7La;kTuE!oopx^9{uA3y<}9 z^bQ@U<&pJV6kq7LRF47&!UAvgkBx=)KS_X!NY28^gQr27P=gKh0+E>$aCx&^vj2uc}ycsfSEP zedhTgUwPx%?;+dESs!g1z}5q9EC+fol}tAH9#fhZQ?q1GjyIaR@}lGCSpM-014T~l zEwriqt~ftwz=@2tn$xP&-rJt?nn5sy8sJ5Roy;pavj@O+tm}d_qmAlvhG(&k>(arz z;e|SiTr+0<&6(-An0*4{7akwUk~Yf4M!!YKj^swp9WOa%al`%R>V7mi z+5+UodFAaPdi4(8_FO&O!Ymb#@yxkuVMrog(7gkj$G@FLA#ENMxG)4f<}S%Fn?Up$+C%{02AgMKa^ z4SFGWp6U>{Q6VRJV}yjxXT*e`1XaX}(dW1F&RNhpTzvCtzuu;LMhMfJ2LBEy?{^GHG!OF!! zDvs64TG)?MX&9NCE#H3(M0K>O>`ca0WT2YR>PTe&tn?~0FV!MRtdb@v?MAUG&Ef7v zW%7>H(;Mm)RJkt18GXv!&np z?RUxOrCfs;m{fBz5MVlq59idhov21di5>WXWD-594L-X5;|@kyWi@N+(jLuh=o+5l zGGTi~)nflP_G}Yg5Pi%pl88U4+^*ihDoMP&zA*^xJE_X*Ah!jODrijCqQ^{=&hD7& z^)qv3;cu?olaT3pc{)Kcy9jA2E8I)#Kn8qO>70SQ5P8YSCN=_+_&)qg)OYBg|-k^d3*@jRAeB?;yd-O1A0wJ z?K*RDm|wE<(PBz~+C%2CTtzCTUohxP2*1kE8Of~{KRAvMrO_}NN&@P7SUO{;zx0iK z@or9R8ydYOFZf(cHASCAatL%;62IL27~SmASr(7F&NMr+#gNw@z1VM z_ALFwo3)SoANEwRerBdRV`>y`t72#aF2ConmWQp(Xy|msN9$yxhZ1jAQ67lq{vbC5 zujj|MlGo`6Bfn0TfKgi(k=gq0`K~W+X(@GzYlPI4g0M;owH3yG14rhK>lG8lS{`!K z+Nc@glT-DGz?Ym?v#Hq|_mEdPAlHH5jZuh*6glq!+>Lk$S%ED2@+ea6CE@&1-9a?s znglt|fmIK}fg<9@XgHe4*q!aO<-;Xj$T?IzB-{&2`#eA6rdtCi80mpP&vw(Uytxu$#YzNI_cB>LS zmim>ys;ir;*Dzbr22ZDxO2s;671&J0U<9(n1yj)J zHFNz=ufPcQVEG+ePjB<5C;=H0{>Mi*xD>hQq8`Vi7TjJ$V04$`h3EZGL|}a07oQdR z?{cR(z+d>arn^AUug&voOzzi$ZqaS)blz-z3zr;10x;oP2)|Cyb^WtN2*wNn`YX!Y z+$Pji<7|!XyMCEw4so}xXLU)p)BA~2fl>y2Tt}o9*BPm?AXA8UE8a;>rOgyCwZBFa zyl42y`bc3}+hiZL_|L_LY29vVerM+BVE@YxK>TGm@dHi@Uw*7AIq?QA9?THL603J% zIBJ4y3n8OFzsOI;NH%DZ!MDwMl<#$)d9eVVeqVl(5ZX$PPbt*p_(_9VSXhaUPa9Qu z7)q4vqYKX7ieVSjOmVEbLj4VYtnDpe*0Y&+>0dS^bJ<8s*eHq3tjRAw^+Mu4W^-E= z4;&namG4G;3pVDyPkUw#0kWEO1;HI6M51(1<0|*pa(I!sj}F^)avrE`ShVMKBz}nE zzKgOPMSEp6M>hJzyTHHcjV%W*;Tdb}1xJjCP#=iQuBk_Eho6yCRVp&e!}4IBJ&?ksVc&u#g3+G$oNlJ?mWfADjeBS-Ph3`DKk-~Z70XugH8sq2eba@4 zIC1H_J$`9b$K`J)sGX3d!&>OmC@@rx1TL~NinQOYy72Q_+^&Mg>Ku(fTgaXdr$p_V z#gav1o{k~c>#)u3r@~6v^o)Lf=C{rAlL@!s457pq)pO;Cojx7U{urO4cvXP|E>+dV zmr2?!-5)tk-&*ap^D^2x7NG6nOop2zNFQ9v8-EZ{WCz-h36C)<^|f{V#R_WE^@(T0+d-at5hXX{U?zak*ac-XnyINo+yBD~~3O1I=a z99|CI>502&s-Qi5bv>^2#cQ%ut<4d7KgQ^kE|=%6#VlGiY8$rdJUH{sra;P~cyb_i zeX(kS%w0C?mjhJl9TZp8RS;N~y3(EXEz13oPhOSE4WaTljGkVXWd~|#)vsG6_76I)Kb z8ro?;{j^lxNsaxE-cfP;g(e;mhh3)&ba}li?woV2#7ByioiD>s%L_D;?#;C#z;a(N z-_WY<=SH42m9bFQ>Nb z@4K$@4l8pD7AKxCR>t0%`Qoy9=hA?<<^Vcj8;-E+oBe3ReW1`el8np8E$k{LgFQ}2 z2t8a`wOXFdJ9!5$&mEfD1CnJ)TB+RJih88-Zos9@HZ# zL#{qfbF0ARTXkR@G{lwlOH~nnL)1jcyu!qv2`57S&%oKz0}r{~l9U_UHaJ5!8#nrs z?2FrL`mxnzu&{bweD&62)ilz*?pYIvt`T!XFVVA78})p1YEy7 z8fK#s?b~Yo$n7&_a?EBdXH-_W)Z44?!;DFx6pZ?~RArtBI*Qm4~6nX6Z_T*i$bQPE;Qz?DAPstpGSqr-AJ zo%m9cA`oDDm?&dTaoh_>@F>a?!y4qt_;NGN9Z<%SS;fX-cSu|>+Pba22`CRb#|HZa z;{)yHE>M-pc1C0mrnT~80!u&dvVTYFV8xTQ#g;6{c<9d!FDqU%TK5T6h*w*p980D~ zUyCb`y3{-?(mJFP)0*-Nt;mI$-gc4VQumh|rs&j_^R{sgTPF`1Xja2YWstsKFuQ(d zmZMxV$p$|qQUXchu&8%J(9|)B?`~rIx&)LqDS>ob5%gTeTP#Sbny#y*rnJ&?(l=!( zoV~}LJ1DPLnF8oyM(2ScrQ0{Q4m4-BWnS4wilgCW-~~;}pw=&<+HggRD_3c@3RQIr z9+-%!%}u_{`YS=&>h%kPO3ce}>y!d-zqiniNR-b5r97u;+K6HA2tS>Z#cV{+eFI`* zd8RMGAUtX1KWfPV;q<-5JAykS+2sY$2~UX+4461a(%{P#{rwFPu0xpIuYlbgD{C7C z=U{FUarVTYX6ZUq3wE@G^QT4H2Re;n$Fz9cJ>hABl)9T8pozqbA1)H-%1=WKm^QMu zjnUZ&Pu>q+X&6Co*y#@pxc-4waKMInEPGmE_>3@Ym3S*dedSradmc5mlJn`i0vMW6 zhBnGQD^Z;&S0lnS0curqDO@({J7kTtRE+Ra?nl^HP9<)W&C>~`!258f$XDbyQOQXG zP8hhySnarOpgu8xv8@WlXnm(Uk~)_3$Sg0vTbU3 z{W!5B(L3{Yy3K5PN<@jEarAtja`}@KYva&zFRF*s+_%jIXh$T(S=an8?=Ry3H*NRqWgsM`&!#|@kf1>=4q%bFw7^Rhz!z5I zyI^zU8_R1WN9`88Z=n>pIZQ`Ixr~_9G%Q}@A7rd#*%y7G zXl^Id=^ZL?Rx}}gWXCqzj9C6;x(~mAH|$JteXa1MH<6UQig@!Hf~t}B%tP0I|H&;y zO6N0}svOa1a^PyP9N5?4W6VF%=Bj{qHUgc8@siw4bafT=UPFSoQqKgyUX>sXTBZ=x zOh^Ad!{kOM9v{%5y}`-8u*T&C7Vq6mD%GR}UeU(*epO&qgC-CkD;%=l)ZuinSzHM` z{@`j&_vC6dDe{Yb9k@1zeV_K6!l(@=6ucoI=R^cH=6{i71%4W3$J-?<8Qn#$-DMtA z6Qqi)t?4ifrt%3jSA#6ji#{f(($KBL-iQh-xrC||3U3lq`9>r)>X%oLvtimuHW-)} zy}>9~|M>w4eES`g7;iBM%Se5-OP%1U6gNWp3AZqT8C6OlFFfQ$|7LL;tBV)(qlp4K zruar^K8FnJN3@_}B;G`a~H`t|3+6d>q3#`ctTkE-D^1#d9NalQ04lH*qUW2!V zhk7#z8OwHhSl8w14;KctfO8ubZJ4$dEdpXE78wABz=n5*=q9ex3S}`e7x~~V-jmHOhtX2*n+pBslo3uosdE7xABK=V#-t{1Hd~?i z{i~%Bw6NYF+F$aK$M`r#xe=NxhA5=p%i7!$);sd>Q}#`G?Q~fygrMXmZw?0#5#17W}6Tj+&kFexG{!mYl5FoA99}3G9l;3lVQ^ z48^~gsVppE*x91WheqI(A%F0Z#$#1UJP1R12Mj9r)y(A?a+iquX+d8WD4WAQJ_!oq z9rTISr7bPd(GTP57xm$}C}&kjMivi;zi^Y9g3&X0A;ovdJ?{%_wHgt%%9P&N4H z^XzV(uNA4 zAP`hgP6BEN5`YXh|DF~6Pud?~gWfhUKoPX4>z|}0aocC&K+AoV%|SX*N!wGq3|y< zg4lP(04XIPmt6}$N!dTk+pZv>u;MTB{L4hp9uXk7>aS!6jqM2lVr%{)H3$O127TSZ z0x9hi0k-P?nWFdQ0K`pykqUIT&jD~B0tHP{ffS(}fZ(aW$oBWTSfHO!A^><6vA?qar%tzN-5NQO zL&|F{nGiQyzNJ+bM$Y`n=Lx^3wTG^o2bGB@cwr1eb+6c-1tN=U+Db;bc~eJ!hwM{SbI=#g?$!PjDB+) zPgU_2EIxocr*EOJG52-~!gml&|D|C2OQ3Y(zAhL}iae4-Ut0F*!z!VEdfw8#`LAi# zhJ_EM*~;S|FMV6y%-SduHjPOI3cFM(GpH|HES<}*=vqY+64%dJYc|k?n6Br7)D#~# zEqO(xepfaf2F{>{E2`xb=AO%A<7RtUq6kU_Iu0m?@0K(+<}u3gVw5fy=Y4CC*{IE3 zLP3YBJ7x+U(os5=&NT%gKi23bbaZ`@;%ln)wp4GpDUT$J8NtFDHJzIe_-t}{!HAsh zJ4<^WovY};)9IKAskSebdQiXv$y5}THuJZ}ouoElIZRui=6lrupV|_Jz=9^&;@HwL;J#@23k?A;k`0Bgf;ioO>W`IQ+4? z7A)eKoY4%+g%=w;=Vm8}H>@U*=*AWNtPqgWRqib#5RTGA@Q=43FrQn3J`GkTUV5yp0U`EOTqjfp+-9;0F8!dMEwwcK%(6`8sDD^aR04 zd6O5vh|Xk?&3dy4f|1QK&Ulf{h6Iq;d-&*ti#Ck>wZFG;GHwc?b;X~eBITx49>2d8 z4HcK&1&DvEGT6kXdzAm4oO8%c}8OBt~8H956_;YP-ss*uMf==a+%w~F>Qkm7r)IAuxuoX}h92$gHqbFUun#8m zWHdy`Zrm#=Pa98x8cO0vd@Tgkr*lm0{dky+Gocr0P8y%HGEI#c3qLqIRc`Oq_C%*; zG+QTr(#Q|yHKv6R@!DmLlwJQ3FAB)Yor-I4zyDyqM4yp5n2TrQH>gRt*Zw0+WI-Sj`EgmYHh=t9! zF6lz^xpqGGpo6!5`sc0a^FVhy_Uxq|@~(1@IIzV)nTpY9sY`CV!?8e&bB8=M&sYEb z2i}fvKdhp9Hs68Y-!QJ<=wE(iQ5+49tqt;Rh|jhYrI5VW-mIz|UY{h8E=rC5sh#DU z?wGgk-Tn!I?+Zer7pHlF_Z^!Kd1qkS3&lv#%s6-<5Y%jQL${cge5=G5Ab?D&|9$Y~ zf%rJC2+=2vg;y0-SJb3<@3%}BO$T$C66q$L_H33a`VUbgW~N(4B=v5(<=My|#|J7q z*Ox4wL4kbJd_~EjLTABSu4U7Jk#`y(6O*U6(k6XxM}CtGZB(H@3~kh*zaGRXM}Iwp zQ%xFk2>@wiZrVCV_G4G~v;NebCQ%T7{SDyPpSv&dT@Cn)Mx@IK*IdNrj{*4pkV4wv z)y0J538h>cpB7iPSzA~x24T`{dzNkpvGIqvt1Dvdq@o-`B=$hkczX8$yFMhsWNK-X zxr$kR$tMD0@W)Vxe1^t9qVmsg&K^F@u84)(n2dttIEAZFN6VD$&tskpG%SI7whGL3 z)DeRiwe&?8m7U{G`oW8!SCi*dM>oYL%UKQnKxV_0RXAEBQg1kStExGEUVwLJ0orGGwb7uv+kPDl7_E2*iD|J*=8A@;XCvwq0aw5oJYN*Yh&o=l} z2z8YKb-fIAH5spql4eXqp*)o2*b>#1@DSt?zZi{GPj0gH&Nm+EI<3^z0w%YTEV4xw zI6$+=Faa|Y4o5i0zm5lOg|&tmnJ806DBovU@Ll6XsA;NRrTK~t*AAJIAS=v-UZ%Pr z$oddI@NRir&erzCwq|)ciJemr-E061j{0Vc@Ys7K(mW|JYj*$+i1Q8XlIK8T?TYS(AXu$`2U zQ@fHxc=AVHl_}cRZQ)w0anMEoqRKKIvS^`<-aMf*FM`NsG&Uowneo+Ji$7DUDYc7*Hjg;-&aHM%3 zXO6cz$$G};Uqh+iY7Wpme>PHG4cu(q;xyskNLs$^uRRMfEg?8Cj~aE-ajM%CXkx0F z>C?g3tIA#9sBQOpe`J+04{q7^TqhFk^F1jFtk4JDRO*`d-fx`GYHb=&(JiaM1b?Y^ zO3Kj3sj76ieol|N$;>j@t#tKj=@*gP+mv}KwlTcPYgR$+)2(gk)2JNE=jSauPq!$< z<|?Sb%W)wS)b>b6i{8!x!^!xIdU3{CJFVnTcw0j{M%DUCF=_>eYYEUWnA-|B(+KYL z_W_`JI&&u^@t0})@DH^1LDuT0s3dMpCHIbYBgOT4Zh_4yHbSqRbtIKndeT4Q*Jg91 z@>rO!^t-G~*AIW;FQ$3J=b;oGg8?CTa~qNCb>&cgp@e;?0AqA&paz~(%PYO+QBo4( zp?}ZdSMWx0iJm7HVNk9A#^9Osa#GPJ!_pYEW}($8>&2}fbr@&ygZ?${A7_9?X$(&5 z#~-hxdPQwCNEpf=^+WH-3`2LxrrBMTa}~qJC9S;VzhG!On^JLyW6WkF{8aAE$sM+( zxr8xLW(KIjI`Rm(24r3OJBk<3GF=G!uSP0-G&AY32mLm8q=#Xom&Pqv=1C{d3>1^ zAjsmV@XZ%BKq^eUfBpa8KvO8ob|F3hAjJv*yo2Bhl0)KUus{qA9m8jf)KnOGGTa6~4>3@J_VzkL|vYPl*uL+Ot*Q7W!f5rJw5+AsjP_IfL+-S*2p| zB7!FhjvkUTxQkGWGSg{X;h~dK>gAJivW?88Nu!3o>ySDaABn$rAYt086#27fbjPQS zhq>55ASvm*60qRdVOY9=bU^+{Pi#!OaZwENN;zy5?EztOHK-Q5;rCuiFl}BSc1YaQ zC-S{=KsGDz@Ji9O5W;XxE0xI|@3o6(2~i4b8Ii9VT;^G$*dRw(V?=br)D&q^XkeBX z+gl~+R@rVD-Hwv@7RHV?Bip5KMI)aV^&snt?H<$Nt=OPx#VxF&BGi?2A2+lNOYywNUGMeGL;|(=UjGDtLG0sN&LpGx;|U;xa13s z;W_|SPk^G}!M9_^pO zA3bt3-tca%^42sHeDtfcC0S3w3H1ny!Bxpa=*k?XRPpx9Bb-gx1J9Yvx)4J(8cG+q z(iCPZ9dsf3#QVyZgD_MW#G#qgV)olu$59&3(PzQfw@%4uZ~<5J=ABvdY43(Qnp{;G zHg3>@T#>DbTuhFl3)fb3TFqdh)V2aq7!;&JOHseTWukvA7}(iGUq;v-{2J0iHSNHq z;+)h!p6Ok^+Sp8-jgL($n6Qu47xyE`cFO5SdZR6;R!FET`tm#0D37z339Suxjpv+s z*=%2-N$N?X&0?x_uut3erF@aBGj;9$k9?3FlbDO{RQa1_qtxrh4!4#fjp4x~akvdTp@ zos?^Q&XE;3N93s4rHQGPrV7+au1$$aB6$hLy*Yz_kN$~dweb9PcB!eYVQTGjFuJP> zZCEwBtb>TIgIO^qAzq@Bv-qud_ZD-2W<_at&ml-gv`tPt$@DF5`HlA zM>DmmMkpv&Zm-8)Y#0bLQf4MpD4_-7M8eu6rh(tL8dq8onHs#R9J~dGd2IaXXMC~h z91pKhnQa%Fsn29nAA1;x(%oC zhca~qQDJaMf?wFrl-Pj;e$bZMYmMF!Y3Lv&Sb?Sjn#!NVx&NDyc^$b4uYyo2OmERa zRz;yDGd@JTykzFLe|Wk-y7#3x`6$wt$zR8r48mdUvfbeL+4D|Z``~7$PrE@qc7rZe zVsIoIbCwzjLZ@_M1*bD{HaYn();Z1-q*-I{tEnTZ(}Zmk&%MXSNBX>o| z-u*RNkAyKC-Srp7c-=@5f)xMWg>o2WWl}j6j9=8+D8;T z>0*0q#;qw8%U8i;6s0fu#I*%(g*@@a2Er@@nyI}{=@W{Z-;`=wN4N~>6Xrh&z#g}l zN1g5}0-#(nHUTv_rl2{yUZ;h#t&Fd?tY!7L%ClY)>uH-Ny2ET$lW$S)IQiN79H)D^ zb&0AXYkupy0~w8)*>Sj_p9}4L?lGTq%VG|2p`nWGhnM^!g|j-|O{%9Q%swOq63|*W zw$(N_laI}`ilB+o!a-wl?er~;;3+)$_akSQ!8YO_&-e*SI7n^(QQ;X0ZE`{4f!gAl z5$d+9CKVNonM!NO_frREICIAxOv)wm>}-k?iRisM`R7;=lyo|E_YR~FpS&PS`Lg0f zl-ON<0S%Uix8J%#yZdkCz4YNhcec<|7*P(JsM#>-L>+tYg_71q9~70FAc^6KW5jql zw!crdgVLH1G_eET=|SEc977;)ezVC|{PJZfra|}@rD;0s&@61mTEBJtILllg{%{vN zfhb&lq0yChaLhnJ-Qb62MB7`>M;|_ceHKZAeeh@#8tbrK!ArP6oXIhMK;dhEJTY`@ z0Tq>MIe0`7tGv)N*F0IGYSJv0vN?Az8g+4K9S!pW2~9F4W(_U_T=jCZrzuZ3*|__T zONp_UWmyePv8C~rckc?Xji;Z5OEqg zC*Um)i;Wh4TEwqReQdVVbUKT^2>Tpi6z_^-uF*adUFug4i@JhzpWT^Sk&E>CyP2?H zWf6x}ehuTs6wvzCnTU&gYzT029Nz19(In1WC z`(1IGmi!O%2AR|BjQa4Q0~u)kM%}?xQyjWuQ16^Gp++;`vr7!k--UZWM*~7Zl|ceO@I3`OpaRhD;YoCuo5IC0uHx>9 z478hu@H|e0Zlo)Zj@01#;8BDs@991xe~^9uG2}UXLM(m7fa}AMwX*tjioBeV&Q8Gx zSq$6wZFkRBK`cMI>R(@W@+lo2t)L+4q-negWRLWZBz*|%=W4v62JrmzNuOtA*x)QE z5L%=OH#@KMdB%Jp^r?0tE}5-*6oP`-lO7Sf)0)n*e<{HA=&qhLR)oD8-+V}Z4=md) z+k9lKf64DB2hAT)UaCP~di?-V3~JBH7itYyk~L6hrnxM%?RKntqd`=!b|e7eFnAcu z3*V;g{xr7TSTm$}DY%~SMpl>m{Sj!We+WfxSEor?YeiAxYUy25pn(?T()E>ByP^c@ zipwvWrhIK((R((VU+;@LmOnDu)ZXB3YArzzin!Z^0;PyJWnlfflo|q8(QY;o1*5CO z##hnkO{uynTMdk`~DOC#1 zdiYxQoy}=@7(ke#A8$YZZVtk4wo$8x28&I;cY3Ro-|kW=*yiiHgCLZeAr)UtVx>Tu z|LvL0hq|1-jC0I4x#>&QZCfrVB=zT!nR|~Uz`9%~2 znl{uZ{VEszW`Fad^q_HB!K9*|U-stK%?~;g?&&+12A}Rq$z($Bzuk^2X(Y=hF?-dQ ztc3DsQKI;qhWIV`99Q#R3xnU0AvY!i*BECj-z9l74|%O=V@nlv|qqC^r^-~C?E zGW%c|uYgnfJ(gjsTm_cIqcv*mYM{+i+&@F@+69ZQOK&u#v4oxUSQJ=tvqQ3W=*m;| z>SkBi8LYb-qRY7Sthh*0%3XAC%$z1rhOJzuX=PkTOa=DlocZUpE#KxVNH5)_4n=T( zGi3YrH7e~sPNYVBd~Grcq#CF~rN{p9Zza-Ntnwfma@TB)=3g36*0lSZg#ixEjFe%+ zX=&LDZ5zqculZ`=RYc^ln(~;nN|Qh6gN=!6f9-N2h+3NWbIxYud&;4SX*tWf5slk4 z{q@@l71UAZgj~*6edXb57fBUxvAS7s(RI=X868JM0+^DCn2yC>;v%S;qPOjB>YVsz(Zx9a>>BK&M zIQK>7_n)4ud0X5YM}^i*keH{ehLsiy9@NvOpsFeQjdI6anLGvVbBw_*fU1TzdVS$i z*4j7z!I5RF#rSz|8ibi$;qE{4`aqWYik7QB5U&F5C*;TO_x+gtzPGpzNt!7~nsBT7)Ckc(K~%uv&{{6A`mmBJVAk-{s~52Vu|HbCH7_W1~ZCX^RflOakGg=jo2Z z<*s;5-J+2@^LRDZ-7EV&Pq+FTErw@pfFqvx^i%E7Fx#^n(E`m2(c>K-O5`M`Yek9el zzTGs5qD6*G;y#~xu3>qWuO?-amKYtvRA}I9z#UspEeM;wOERYeot_n_EUMJf$4_u?E!6X~?q)tPoZb^_;8Y_Ox2h1m<+Le-fsRd|T8db<8#$bqez zua^Z|>h%zdnuU^ww$#-dZ9NTM`FN+!IlLkz*FqWb!x^Z|C{KyGjZ+>G;;7Mb@LY|H zc+Gp`L((Dw7pnDlHNm&;SfHedhx*kad$I^uGz{`0BYelq0yEUHpNKSkvj$|dpvY3{7*YGyhXA^LP0&wOw9oNoC=QoVx1<2Dne8qqZL zm>nFh5DX(-RnQwvHCZQwn^#Z=E!SPVlaRJ78Bo@}!!9dRt^qZy?-*`Pt4WSmgucJv zV1yFkcjlEM^uz-;b#Q7ZCP@Lk)m}uPX={R4B=56k7WNh11BN~0T*vr@!!ow^B0hOR zQ)4)&(e%>bNNL%bm<&8H{*l_L7s0$2GUgX2Vd;=4d9Dm2v3TaL+;L>{K7h7 zV#k?xDPm(NDE31$ z<}|X)pEY6myjK+^gaIMk&Yj2~F0rSKemNqlsVm4c|N7mp_C*L01s;GNx#D-*&gk!qQr}^?_r@q!8fuXw!)fA7xkd} zb>vHvdx~H$5qqAWrow7}+8zBM65-JOt5z za=T6f7MK`XJuQog8kIEboPdhcaVJeHy)5z7EBLK5NRr()E|#K0L0N^JD@pUA^Czb` zbUZ_558y+vqAGeyHCbrvOvLD67Ph}06959VzQ_|>RrXQAqE+AQ(-AaKdxoWaF8hdt z{O3W@b^*o#-f1VuU>YMV03ELF7zkCN4Q&b#prz%3Nne0lSbRo@@ z^ihv%oIl~Qyl6Q;a#$*jOC%x0_;eis*)J7=f@Ct*)xF5 zo}u~@-I}2|$b%5L7>@+Z?4o+1r&v6ceIy+vroK&jCQ<4q&45HP2wCol4hVm3pZtjf zHz1D7oyaSKJ~T{Gx}7ONLA)D5k(%%`WswrDyzX*rn}i}}TB4^y#@mAwPzoC)`?rYv zHgx|trUN#mu*VzUV~8TnJM2Qh*ZM5B{x&y>5An`(M7=Z*Q>TdiH@j*2=moNuOtvpz z+G`@~-`%~+AgPKgke@XiRPgndh@bp*-HRsh;HTtz@-y_uhb%7ylVOTqG0#u?Vn5c5 zEp*XRo|8hcgG^$#{$O9CJ&NE;TrfRpSnLmes&MO{m=N%zc`}gb!eQ7odl$oy1%PI} z#AIxx%oRVy&{O~9xnK4$EY>(eQj}!HKIV$Fz*H=-=Kn)N0D6u`(;iO|VraI4fu_W` z;b5{7;Lyx4za}DU#+U7}=H0dAS#YJJ&g2!P@Htu-AL&w=-)*%P9h2{wR|@?Ff9~)b z^+e_3Hetq7W%ls{!?<6&Y$Z;NNB41pvrv)|MET6AZXFXJeFqbFW5@i5WGzl?bP+~? z*&_puH;wKv2)9T_d+P`bLvJFqX#j&xa*-;0nGBbQf0DC>o~=J_Wmtf*2SZQr?{i~X z9-IbRH8{iy?<0v9Ir1?$66+igy|yDQ5J~A9sFX@Pe<*kCY8+MwH?I z`P}zfQ6l^AO8ehZ=l^ZR;R%uu4;BK*=?W9t|0{+-at(MQZ(CtG=EJFNaFMlKCMXu30(gJUqj5+ z`GM|!keqcj;FKTa_qq;{*dHRXAq157hlB@kL#8%yAm2AgfU|*rDKX@FLlp=HL8ddv zAWLCHe@DcDeB2}fl7#=0+#<05c3=VqM*O3bkr@9X4nO|)q0hU;Gye{L8ZN*NH8Id@mP-u;Fmb8YuorjLrW&ndip8CN%_qp982r w1WEnz9^$&s1hkp_3#lPJQ~!HI7WYYjA7>z!`?f%npAh2%rB@vD|Lau$2O)#1n*aa+ diff --git a/scripts/docker/dockertest.gradle b/scripts/docker/dockertest.gradle index 3623dc18b52..bf21192493f 100644 --- a/scripts/docker/dockertest.gradle +++ b/scripts/docker/dockertest.gradle @@ -36,9 +36,130 @@ task unpackTestJar(type: Copy){ } } +test { + jvmArgs = [ + '--add-opens', 'java.base/java.lang=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.invoke=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED', + '--add-opens', 'java.base/java.io=ALL-UNNAMED', + '--add-opens', 'java.base/java.net=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio=ALL-UNNAMED', + '--add-opens', 'java.base/java.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent.atomic=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.ch=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.cs=ALL-UNNAMED', + '--add-opens', 'java.base/sun.security.action=ALL-UNNAMED', + '--add-opens', 'java.base/sun.util.calendar=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.fs=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.channels.spi=ALL-UNNAMED', + + // required for tests + '--add-opens', 'java.base/jdk.internal.ref=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.ref=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.zip=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.jar=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.file.attribute=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED', + '--add-opens', 'java.base/sun.net.www.protocol.jar=ALL-UNNAMED', + '--add-opens', 'java.base/sun.invoke.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent.locks=ALL-UNNAMED', + '--add-opens', 'java.base/java.security=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.annotation=ALL-UNNAMED', + '--add-opens', 'java.base/java.text=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED', + '--add-opens', 'java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED', + '--add-opens', 'java.management/javax.management=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.regex=ALL-UNNAMED', + '--add-opens', 'java.base/sun.util.locale=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.math=ALL-UNNAMED', + '--add-opens', 'java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.time=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.factory=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.channels=ALL-UNNAMED', + '--add-opens', 'java.base/sun.security.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.time.zone=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.scope=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.tree=ALL-UNNAMED', + '--add-opens', 'java.management/com.sun.jmx.interceptor=ALL-UNNAMED', + '--add-opens', 'java.management/javax.management.openmbean=ALL-UNNAMED', + '--add-opens', 'java.management/sun.management=ALL-UNNAMED', + '--add-opens', 'jdk.management/com.sun.management.internal=ALL-UNNAMED', + '--add-opens', 'jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED', + '--add-opens', 'jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.module=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.module=ALL-UNNAMED', + '--add-opens', 'java.prefs/java.util.prefs=ALL-UNNAMED', // jacoco + + '-Dio.netty.tryReflectionSetAccessible=true' + ] + jacoco { + jvmArgs = [ + '--add-opens', 'java.base/java.lang=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.invoke=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED', + '--add-opens', 'java.base/java.io=ALL-UNNAMED', + '--add-opens', 'java.base/java.net=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio=ALL-UNNAMED', + '--add-opens', 'java.base/java.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent.atomic=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.ch=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.cs=ALL-UNNAMED', + '--add-opens', 'java.base/sun.security.action=ALL-UNNAMED', + '--add-opens', 'java.base/sun.util.calendar=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.fs=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.channels.spi=ALL-UNNAMED', + + // required for tests + '--add-opens', 'java.base/jdk.internal.ref=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.ref=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.zip=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.jar=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.file.attribute=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED', + '--add-opens', 'java.base/sun.net.www.protocol.jar=ALL-UNNAMED', + '--add-opens', 'java.base/sun.invoke.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent.locks=ALL-UNNAMED', + '--add-opens', 'java.base/java.security=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.annotation=ALL-UNNAMED', + '--add-opens', 'java.base/java.text=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED', + '--add-opens', 'java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED', + '--add-opens', 'java.base/javax.management=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.regex=ALL-UNNAMED', + '--add-opens', 'java.base/sun.util.locale=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.math=ALL-UNNAMED', + '--add-opens', 'java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.time=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.factory=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.channels=ALL-UNNAMED', + '--add-opens', 'java.base/sun.security.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.time.zone=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.scope=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.tree=ALL-UNNAMED', + '--add-opens', 'java.management/com.sun.jmx.interceptor=ALL-UNNAMED', + '--add-opens', 'java.management/javax.management.openmbean=ALL-UNNAMED', + '--add-opens', 'java.management/sun.management=ALL-UNNAMED', + '--add-opens', 'jdk.management/com.sun.management.internal=ALL-UNNAMED', + '--add-opens', 'jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED', + '--add-opens', 'jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.module=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.module=ALL-UNNAMED', + '--add-opens', 'java.prefs/java.util.prefs=ALL-UNNAMED', // jacoco + + '-Dio.netty.tryReflectionSetAccessible=true' + ] + } +} + task testOnPackagedReleaseJar(type: Test){ String testClassesJar = "$System.env.TEST_JAR" + String testDependencyJar = "$System.env.TEST_DEPENDENCY_JAR" + String gatkJar = "$System.env.GATK_JAR" String testClassesUnpacked = "$System.env.CP_DIR" @@ -60,7 +181,64 @@ task testOnPackagedReleaseJar(type: Test){ classpath.each {println it} } - classpath = files( gatkJar, testDependencyJar, testClassesJar) + jvmArgs = [ + '--add-opens', 'java.base/java.lang=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.invoke=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED', + '--add-opens', 'java.base/java.io=ALL-UNNAMED', + '--add-opens', 'java.base/java.net=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio=ALL-UNNAMED', + '--add-opens', 'java.base/java.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent.atomic=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.ch=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.cs=ALL-UNNAMED', + '--add-opens', 'java.base/sun.security.action=ALL-UNNAMED', + '--add-opens', 'java.base/sun.util.calendar=ALL-UNNAMED', + '--add-opens', 'java.base/sun.nio.fs=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.channels.spi=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.ref=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.ref=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.zip=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.jar=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.file.attribute=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED', + '--add-opens', 'java.base/sun.net.www.protocol.jar=ALL-UNNAMED', + '--add-opens', 'java.base/sun.invoke.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.concurrent.locks=ALL-UNNAMED', + '--add-opens', 'java.base/java.security=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.annotation=ALL-UNNAMED', + '--add-opens', 'java.base/java.text=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED', + '--add-opens', 'java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED', + '--add-opens', 'java.management/javax.management=ALL-UNNAMED', + '--add-opens', 'java.base/java.util.regex=ALL-UNNAMED', + '--add-opens', 'java.base/sun.util.locale=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.math=ALL-UNNAMED', + '--add-opens', 'java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.time=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.factory=ALL-UNNAMED', + '--add-opens', 'java.base/java.nio.channels=ALL-UNNAMED', + '--add-opens', 'java.base/sun.security.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.time.zone=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.scope=ALL-UNNAMED', + '--add-opens', 'java.base/sun.reflect.generics.tree=ALL-UNNAMED', + '--add-opens', 'java.management/com.sun.jmx.interceptor=ALL-UNNAMED', + '--add-opens', 'java.management/javax.management.openmbean=ALL-UNNAMED', + '--add-opens', 'java.management/sun.management=ALL-UNNAMED', + '--add-opens', 'jdk.management/com.sun.management.internal=ALL-UNNAMED', + '--add-opens', 'jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED', + '--add-opens', 'jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED', + '--add-opens', 'java.base/jdk.internal.module=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang.module=ALL-UNNAMED', + '--add-opens', 'java.security.jgss/sun.security.krb5=ALL-UNNAMED', + '--add-opens', 'java.prefs/java.util.prefs=ALL-UNNAMED', // jacoco + + '-Dio.netty.tryReflectionSetAccessible=true' + ] + + classpath = files( gatkJar, testClassesJar, testDependencyJar) testClassesDirs = files(testClassesUnpacked) } diff --git a/scripts/vcf_site_level_filtering_cromwell_tests/run_vcf_site_level_filtering_wdl.sh b/scripts/vcf_site_level_filtering_cromwell_tests/run_vcf_site_level_filtering_wdl.sh index 7eadf76e5d1..442a0c4fa01 100644 --- a/scripts/vcf_site_level_filtering_cromwell_tests/run_vcf_site_level_filtering_wdl.sh +++ b/scripts/vcf_site_level_filtering_cromwell_tests/run_vcf_site_level_filtering_wdl.sh @@ -33,7 +33,7 @@ sed -r "s/__GATK_DOCKER__/broadinstitute\/gatk\:$HASH_TO_USE/g" $CROMWELL_TEST_D echo "Running Filtering WDL through cromwell" cat $WORKING_DIR/vcf_site_level_filtering_mod.json -java -jar $CROMWELL_JAR run $WDL_DIR/JointVcfFiltering.wdl -i $WORKING_DIR/vcf_site_level_filtering_mod.json +java -DLOG_LEVEL=TRACE -jar $CROMWELL_JAR run $WDL_DIR/JointVcfFiltering.wdl -i $WORKING_DIR/vcf_site_level_filtering_mod.json cat $WORKING_DIR/vcf_site_level_filtering_pos_neg_mod.json -java -jar $CROMWELL_JAR run $WDL_DIR/JointVcfFiltering.wdl -i $WORKING_DIR/vcf_site_level_filtering_pos_neg_mod.json +java -DLOG_LEVEL=TRACE -jar $CROMWELL_JAR run $WDL_DIR/JointVcfFiltering.wdl -i $WORKING_DIR/vcf_site_level_filtering_pos_neg_mod.json diff --git a/src/main/java/org/broadinstitute/hellbender/cmdline/GATKPlugin/GATKAnnotationPluginDescriptor.java b/src/main/java/org/broadinstitute/hellbender/cmdline/GATKPlugin/GATKAnnotationPluginDescriptor.java index 9cfd91e9d71..526121739fb 100644 --- a/src/main/java/org/broadinstitute/hellbender/cmdline/GATKPlugin/GATKAnnotationPluginDescriptor.java +++ b/src/main/java/org/broadinstitute/hellbender/cmdline/GATKPlugin/GATKAnnotationPluginDescriptor.java @@ -11,11 +11,15 @@ import org.broadinstitute.hellbender.exceptions.GATKException; import org.broadinstitute.hellbender.tools.walkers.annotator.Annotation; import org.broadinstitute.hellbender.tools.walkers.annotator.PedigreeAnnotation; +import org.broadinstitute.hellbender.utils.SerializableConsumer; +import org.broadinstitute.hellbender.utils.SerializableFunction; +import org.broadinstitute.hellbender.utils.SerializablePredicate; import org.broadinstitute.hellbender.tools.walkers.annotator.flow.FlowAnnotatorBase; import org.broadinstitute.hellbender.utils.Utils; import org.broadinstitute.hellbender.utils.config.ConfigFactory; import org.broadinstitute.hellbender.utils.config.GATKConfig; +import java.io.Serializable; import java.lang.reflect.Modifier; import java.util.*; import java.util.stream.Collectors; @@ -35,7 +39,9 @@ * NOTE: this class enforces that annotations with required arguments must see their arguments, yet this is not currently tested * as no such annotations exist in the GATK. */ -public class GATKAnnotationPluginDescriptor extends CommandLinePluginDescriptor { +public class GATKAnnotationPluginDescriptor extends CommandLinePluginDescriptor implements Serializable { + private static final long serialVersionUID = 1L; + /** * At startup, set the plugin package name to the one(s) in the configuration file. */ @@ -115,7 +121,7 @@ public List getPackageNames() { public GATKAnnotationPluginDescriptor(final GATKAnnotationArgumentCollection userArgs, final List toolDefaultAnnotations, final List> toolDefaultGroups) { this.userArgs = userArgs; if (null != toolDefaultAnnotations) { - toolDefaultAnnotations.forEach(f -> { + toolDefaultAnnotations.forEach((SerializableConsumer) (f -> { final Class annotClass = f.getClass(); // anonymous classes have a 0-length simple name, and thus cannot be accessed or // controlled by the user via the command line, but they should still be valid @@ -127,15 +133,16 @@ public GATKAnnotationPluginDescriptor(final GATKAnnotationArgumentCollection use } populateAnnotationGroups(className, f); this.toolDefaultAnnotations.put(className, f); - }); + })); } if (null != toolDefaultGroups) { - toolDefaultGroups.forEach(a -> {if (a.isInterface() && a!=Annotation.class) { - this.toolDefaultGroups.add(a.getSimpleName()); - } else { - throw new GATKException(String.format("Tool specified annotation group %s is not a valid annotation group, must be an interface extending Annotation", a.getSimpleName())); - } - }); + toolDefaultGroups.forEach((SerializableConsumer>) (a -> { + if (a.isInterface() && a!=Annotation.class) { + this.toolDefaultGroups.add(a.getSimpleName()); + } else { + throw new GATKException(String.format("Tool specified annotation group %s is not a valid annotation group, must be an interface extending Annotation", a.getSimpleName())); + } + })); } } /** @@ -256,7 +263,9 @@ public Set getAllowedValuesForDescriptorHelp(String longArgName) { return allDiscoveredAnnotations.keySet(); } if (longArgName.equals(StandardArgumentDefinitions.ANNOTATIONS_TO_EXCLUDE_LONG_NAME)) { - Set annotations = toolDefaultGroups.stream().map(k -> discoveredGroups.get(k).keySet()).flatMap(Collection::stream).collect(Collectors.toSet()); + Set annotations = toolDefaultGroups.stream().map( + k -> discoveredGroups.get(k).keySet()) + .flatMap(Collection::stream).collect(Collectors.toSet()); annotations.addAll(toolDefaultAnnotations.keySet()); return annotations; } @@ -280,9 +289,11 @@ public boolean isDependentArgumentAllowed(final Class predecessorClass) { if (!isAllowed) { // Check whether any of the annotations have been added via groups (either tool default or user enabled) isAllowed = Stream.of(userArgs.getUserEnabledAnnotationGroups(), toolDefaultGroups) - .flatMap(Collection::stream) - .anyMatch(group -> - discoveredGroups.containsKey(group) && discoveredGroups.get(group).keySet().stream().anyMatch(s -> s.equals(predecessorName))); + .flatMap((SerializableFunction, Stream>) t -> t.stream()) + .anyMatch((SerializablePredicate) (group -> + discoveredGroups.containsKey(group) && + discoveredGroups.get(group).keySet().stream() + .anyMatch((SerializablePredicate) (s -> s.equals(predecessorName))))); } if (isAllowed) { // Keep track of the ones we allow so we can validate later that they weren't subsequently disabled @@ -325,29 +336,29 @@ public void validateAndResolvePlugins() throws CommandLineException { } // throw if a disabled annotation doesn't exist; warn if it wasn't enabled by the tool in the first place - userArgs.getUserDisabledAnnotationNames().forEach(s -> { + userArgs.getUserDisabledAnnotationNames().forEach((SerializableConsumer) (s -> { if (!allDiscoveredAnnotations.containsKey(s)) { throw new CommandLineException.BadArgumentValue(String.format("Disabled annotation (%s) does not exist", s)); } else if (!toolDefaultAnnotations.containsKey(s)) { logger.warn(String.format("Disabled annotation (%s) is not enabled by this tool", s)); } - }); + })); // warn if an annotation is both default and enabled by the user final Set redundantAnnots = new HashSet<>(toolDefaultAnnotations.keySet()); redundantAnnots.retainAll(userArgs.getUserEnabledAnnotationNames()); - redundantAnnots.forEach( - s -> { + redundantAnnots.forEach((SerializableConsumer) + (s -> { logger.warn(String.format("Redundant enabled annotation (%s) is enabled for this tool by default", s)); - }); + })); // warn if an annotation group is both default and enabled by the user final Set redundantGroups = new HashSet<>(toolDefaultGroups); redundantGroups.retainAll(userArgs.getUserEnabledAnnotationGroups()); - redundantGroups.forEach( - s -> { + redundantGroups.forEach((SerializableConsumer) + (s -> { logger.warn(String.format("Redundant enabled annotation group (%s) is enabled for this tool by default", s)); - }); + })); // Throw if args were specified for an annotation that was also disabled, or that was not enabled by the // tool by default. @@ -375,21 +386,21 @@ public void validateAndResolvePlugins() throws CommandLineException { }); // throw if an annotation name was specified that has no corresponding instance - userArgs.getUserEnabledAnnotationNames().forEach(s -> { + userArgs.getUserEnabledAnnotationNames().forEach((SerializableConsumer) (s -> { Annotation ta = allDiscoveredAnnotations.get(s); if (null == ta) { if (!toolDefaultAnnotations.containsKey(s)) { throw new CommandLineException("Unrecognized annotation name: " + s); } } - }); + })); // throw if an annotation group was specified that has no corresponding instance - userArgs.getUserEnabledAnnotationGroups().forEach(s -> { + userArgs.getUserEnabledAnnotationGroups().forEach((SerializableConsumer) (s -> { if (!discoveredGroups.containsKey(s)) { throw new CommandLineException("Unrecognized annotation group name: " + s); } - }); + })); // Populating the tool default annotations with the ones requested by groups for (String group : toolDefaultGroups ) { @@ -417,6 +428,7 @@ public void validateAndResolvePlugins() throws CommandLineException { allDiscoveredAnnotations.values().stream().filter(PedigreeAnnotation.class::isInstance).map(a -> a.getClass().getSimpleName()).collect(Collectors.joining(", ")))); } + //TODO: fix these lambdas to have serializable types // Populating any discovered flow annotations with the flowOrder arguments from the command line. if (flowOrder!=null && !flowOrder.isEmpty() && getResolvedInstances().stream() .filter(FlowAnnotatorBase.class::isInstance) @@ -464,8 +476,8 @@ public List getDefaultInstances() { @Override public List getResolvedInstances() { if (resolvedInstances == null) { - final SortedSet annotations = new TreeSet<>(Comparator.comparing(t -> t.getClass().getSimpleName())); - + final SortedSet annotations = new TreeSet<>(Comparator.comparing( + (SerializableFunction) t -> t.getClass().getSimpleName())); if (!userArgs.getDisableToolDefaultAnnotations()) { annotations.addAll(toolDefaultAnnotations.values()); } diff --git a/src/main/java/org/broadinstitute/hellbender/tools/HaplotypeCallerSpark.java b/src/main/java/org/broadinstitute/hellbender/tools/HaplotypeCallerSpark.java index 8ff76a1ae6c..52277de766f 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/HaplotypeCallerSpark.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/HaplotypeCallerSpark.java @@ -3,7 +3,6 @@ import com.google.common.collect.Iterators; import htsjdk.samtools.SAMFileHeader; import htsjdk.samtools.SAMSequenceDictionary; -import htsjdk.samtools.reference.ReferenceSequenceFile; import htsjdk.samtools.util.FileExtensions; import htsjdk.variant.variantcontext.VariantContext; import org.apache.logging.log4j.Logger; @@ -29,6 +28,11 @@ import org.broadinstitute.hellbender.exceptions.UserException; import org.broadinstitute.hellbender.tools.walkers.annotator.Annotation; import org.broadinstitute.hellbender.tools.walkers.annotator.VariantAnnotatorEngine; +import org.broadinstitute.hellbender.tools.walkers.haplotypecaller.HaplotypeCaller; +import org.broadinstitute.hellbender.tools.walkers.haplotypecaller.HaplotypeCallerArgumentCollection; +import org.broadinstitute.hellbender.tools.walkers.haplotypecaller.HaplotypeCallerEngine; +import org.broadinstitute.hellbender.tools.walkers.haplotypecaller.ReferenceConfidenceMode; +import org.broadinstitute.hellbender.utils.SerializableSupplier; import org.broadinstitute.hellbender.tools.walkers.haplotypecaller.*; import org.broadinstitute.hellbender.utils.Utils; import org.broadinstitute.hellbender.utils.fasta.CachingIndexedFastaSequenceFile; @@ -142,7 +146,7 @@ private static void processAssemblyRegions( final VariantAnnotatorEngine variantannotatorEngine = new VariantAnnotatorEngine(annotations, hcArgs.dbsnp.dbsnp, hcArgs.comps, hcArgs.emitReferenceConfidence != ReferenceConfidenceMode.NONE, false); final Path referencePath = IOUtils.getPath(reference); - final ReferenceSequenceFile driverReferenceSequenceFile = new CachingIndexedFastaSequenceFile(referencePath); + final CachingIndexedFastaSequenceFile driverReferenceSequenceFile = new CachingIndexedFastaSequenceFile(referencePath); final HaplotypeCallerEngine hcEngine = new HaplotypeCallerEngine(hcArgs, assemblyRegionArgs, false, false, header, driverReferenceSequenceFile, variantannotatorEngine); final String referenceFileName = referencePath.getFileName().toString(); final Broadcast hcArgsBroadcast = ctx.broadcast(hcArgs); @@ -165,9 +169,9 @@ private static FlatMapFunction, VariantCon final Broadcast hcArgsBroadcast, final Broadcast assemblyRegionArgsBroadcast, final Broadcast annotatorEngineBroadcast) { - return (FlatMapFunction, VariantContext>) contexts -> { + return contexts -> { // HaplotypeCallerEngine isn't serializable but is expensive to instantiate, so construct and reuse one for every partition - final ReferenceSequenceFile taskReferenceSequenceFile = taskReferenceSequenceFile(referenceFileName); + final CachingIndexedFastaSequenceFile taskReferenceSequenceFile = taskReferenceSequenceFile(referenceFileName); final HaplotypeCallerEngine hcEngine = new HaplotypeCallerEngine(hcArgsBroadcast.value(), assemblyRegionArgsBroadcast.value(), false, false, header, taskReferenceSequenceFile, annotatorEngineBroadcast.getValue()); Iterator> iterators = Utils.stream(contexts).map(context -> { AssemblyRegion region = context.getAssemblyRegion(); @@ -194,7 +198,7 @@ protected Broadcast> assemblyRegionEvaluatorSu final Path referencePath = IOUtils.getPath(referenceArguments.getReferenceFileName()); final String referenceFileName = referencePath.getFileName().toString(); final String pathOnExecutor = SparkFiles.get(referenceFileName); - final ReferenceSequenceFile taskReferenceSequenceFile = new CachingIndexedFastaSequenceFile(IOUtils.getPath(pathOnExecutor)); + final CachingIndexedFastaSequenceFile taskReferenceSequenceFile = new CachingIndexedFastaSequenceFile(IOUtils.getPath(pathOnExecutor)); final Collection annotations = makeVariantAnnotations(); final VariantAnnotatorEngine annotatorEngine = new VariantAnnotatorEngine(annotations, hcArgs.dbsnp.dbsnp, hcArgs.comps, hcArgs.emitReferenceConfidence != ReferenceConfidenceMode.NONE, false); return assemblyRegionEvaluatorSupplierBroadcastFunction(ctx, hcArgs, assemblyRegionArgs, getHeaderForReads(), taskReferenceSequenceFile, annotatorEngine); @@ -208,12 +212,12 @@ private static Broadcast> assemblyRegionEvalua final Collection annotations) { final Path referencePath = IOUtils.getPath(reference); final String referenceFileName = referencePath.getFileName().toString(); - final ReferenceSequenceFile taskReferenceSequenceFile = taskReferenceSequenceFile(referenceFileName); + final CachingIndexedFastaSequenceFile taskReferenceSequenceFile = taskReferenceSequenceFile(referenceFileName); final VariantAnnotatorEngine annotatorEngine = new VariantAnnotatorEngine(annotations, hcArgs.dbsnp.dbsnp, hcArgs.comps, hcArgs.emitReferenceConfidence != ReferenceConfidenceMode.NONE, false); return assemblyRegionEvaluatorSupplierBroadcastFunction(ctx, hcArgs, assemblyRegionArgs, header, taskReferenceSequenceFile, annotatorEngine); } - private static ReferenceSequenceFile taskReferenceSequenceFile(final String referenceFileName) { + private static CachingIndexedFastaSequenceFile taskReferenceSequenceFile(final String referenceFileName) { final String pathOnExecutor = SparkFiles.get(referenceFileName); return new CachingIndexedFastaSequenceFile(IOUtils.getPath(pathOnExecutor)); } @@ -222,9 +226,9 @@ private static Broadcast> assemblyRegionEvalua final JavaSparkContext ctx, final HaplotypeCallerArgumentCollection hcArgs, AssemblyRegionArgumentCollection assemblyRegionArgs, final SAMFileHeader header, - final ReferenceSequenceFile taskReferenceSequenceFile, + final CachingIndexedFastaSequenceFile taskReferenceSequenceFile, final VariantAnnotatorEngine annotatorEngine) { - Supplier supplier = new Supplier() { + SerializableSupplier supplier = new SerializableSupplier() { @Override public AssemblyRegionEvaluator get() { return new HaplotypeCallerEngine(hcArgs, assemblyRegionArgs, false, false, header, taskReferenceSequenceFile, annotatorEngine); diff --git a/src/main/java/org/broadinstitute/hellbender/tools/dragstr/CalibrateDragstrModel.java b/src/main/java/org/broadinstitute/hellbender/tools/dragstr/CalibrateDragstrModel.java index cd2b7cbb601..51133a5ab90 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/dragstr/CalibrateDragstrModel.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/dragstr/CalibrateDragstrModel.java @@ -263,6 +263,7 @@ private void checkSequenceDictionaryCompatibility(final SAMSequenceDictionary re } } + @SuppressWarnings("deprecation") private PrintWriter openSitesOutputWriter(final String sitesOutput) { return sitesOutput == null ? new PrintWriter(NullOutputStream.NULL_OUTPUT_STREAM) : new PrintWriter(BucketUtils.createFile(sitesOutput)); diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerEngine.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerEngine.java index 791b368075f..a7d8e2e33c2 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerEngine.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerEngine.java @@ -25,6 +25,7 @@ import org.broadinstitute.hellbender.tools.walkers.genotyper.OutputMode; import org.broadinstitute.hellbender.tools.walkers.genotyper.StandardCallerArgumentCollection; import org.broadinstitute.hellbender.tools.walkers.haplotypecaller.readthreading.ReadThreadingAssembler; +import org.broadinstitute.hellbender.utils.fasta.CachingIndexedFastaSequenceFile; import org.broadinstitute.hellbender.utils.pileup.PileupBasedAlleles; import org.broadinstitute.hellbender.transformers.IUPACReadTransformer; import org.broadinstitute.hellbender.transformers.ReadTransformer; @@ -169,7 +170,7 @@ public class HaplotypeCallerEngine implements AssemblyRegionEvaluator { */ public HaplotypeCallerEngine(final HaplotypeCallerArgumentCollection hcArgs, AssemblyRegionArgumentCollection assemblyRegionArgs, boolean createBamOutIndex, boolean createBamOutMD5, final SAMFileHeader readsHeader, - ReferenceSequenceFile referenceReader, VariantAnnotatorEngine annotationEngine) { + CachingIndexedFastaSequenceFile referenceReader, VariantAnnotatorEngine annotationEngine) { this.dragstrParams = DragstrParamUtils.parse(hcArgs.likelihoodArgs.dragstrParams); this.hcArgs = Utils.nonNull(hcArgs); this.readsHeader = Utils.nonNull(readsHeader); diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/RampedHaplotypeCallerEngine.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/RampedHaplotypeCallerEngine.java index f0db1b52bac..b66bc6e7202 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/RampedHaplotypeCallerEngine.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/RampedHaplotypeCallerEngine.java @@ -14,6 +14,7 @@ import org.broadinstitute.hellbender.tools.walkers.haplotypecaller.ramps.*; import org.broadinstitute.hellbender.utils.SimpleInterval; import org.broadinstitute.hellbender.utils.downsampling.ReservoirDownsampler; +import org.broadinstitute.hellbender.utils.fasta.CachingIndexedFastaSequenceFile; import org.broadinstitute.hellbender.utils.genotyper.AlleleLikelihoods; import org.broadinstitute.hellbender.utils.haplotype.EventMap; import org.broadinstitute.hellbender.utils.haplotype.Haplotype; @@ -61,7 +62,7 @@ public class RampedHaplotypeCallerEngine extends HaplotypeCallerEngine { public RampedHaplotypeCallerEngine(final HaplotypeCallerArgumentCollection hcArgs, AssemblyRegionArgumentCollection assemblyRegionArgs, boolean createBamOutIndex, boolean createBamOutMD5, final SAMFileHeader readsHeader, - ReferenceSequenceFile referenceReader, VariantAnnotatorEngine annotationEngine, + CachingIndexedFastaSequenceFile referenceReader, VariantAnnotatorEngine annotationEngine, RampedHaplotypeCallerArgumentCollection rpArgs) { super(hcArgs, assemblyRegionArgs, createBamOutIndex, diff --git a/src/main/java/org/broadinstitute/hellbender/utils/SerializableConsumer.java b/src/main/java/org/broadinstitute/hellbender/utils/SerializableConsumer.java new file mode 100644 index 00000000000..2f61106669e --- /dev/null +++ b/src/main/java/org/broadinstitute/hellbender/utils/SerializableConsumer.java @@ -0,0 +1,6 @@ +package org.broadinstitute.hellbender.utils; + +import java.io.Serializable; +import java.util.function.Consumer; + +public interface SerializableConsumer extends Consumer, Serializable {} diff --git a/src/main/java/org/broadinstitute/hellbender/utils/SerializablePredicate.java b/src/main/java/org/broadinstitute/hellbender/utils/SerializablePredicate.java new file mode 100644 index 00000000000..3da23d638bd --- /dev/null +++ b/src/main/java/org/broadinstitute/hellbender/utils/SerializablePredicate.java @@ -0,0 +1,6 @@ +package org.broadinstitute.hellbender.utils; + +import java.io.Serializable; +import java.util.function.Predicate; + +public interface SerializablePredicate extends Predicate, Serializable {} diff --git a/src/main/java/org/broadinstitute/hellbender/utils/SerializableSupplier.java b/src/main/java/org/broadinstitute/hellbender/utils/SerializableSupplier.java new file mode 100644 index 00000000000..b62df11bc71 --- /dev/null +++ b/src/main/java/org/broadinstitute/hellbender/utils/SerializableSupplier.java @@ -0,0 +1,6 @@ +package org.broadinstitute.hellbender.utils; + +import java.io.Serializable; +import java.util.function.Supplier; + +public interface SerializableSupplier extends Supplier, Serializable {} \ No newline at end of file diff --git a/src/main/java/org/broadinstitute/hellbender/utils/fasta/CachingIndexedFastaSequenceFile.java b/src/main/java/org/broadinstitute/hellbender/utils/fasta/CachingIndexedFastaSequenceFile.java index 1ead048346e..6cd2d678347 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/fasta/CachingIndexedFastaSequenceFile.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/fasta/CachingIndexedFastaSequenceFile.java @@ -19,6 +19,7 @@ import org.broadinstitute.hellbender.utils.Utils; import java.io.IOException; +import java.io.Serializable; import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; @@ -31,10 +32,13 @@ * * Instances of this class should be closed when they are no longer needed. */ -public final class CachingIndexedFastaSequenceFile implements ReferenceSequenceFile { +public final class CachingIndexedFastaSequenceFile implements ReferenceSequenceFile, Serializable { + private static final long serialVersionUID = 1L; + protected static final Logger logger = LogManager.getLogger(CachingIndexedFastaSequenceFile.class); - private final ReferenceSequenceFile sequenceFile; + // TODO: this gets around numerous serialization issues with non-serializable lambdas + private transient final ReferenceSequenceFile sequenceFile; /** do we want to print debugging information about cache efficiency? */ private static final boolean PRINT_EFFICIENCY = false; diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java index 1dce5a8422b..b94df3c80b8 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java @@ -1,41 +1,41 @@ -package org.broadinstitute.hellbender.utils.help; - -import org.broadinstitute.barclay.help.DocWorkUnit; -import org.broadinstitute.barclay.help.DocWorkUnitHandler; -import org.broadinstitute.barclay.help.DocumentedFeature; - -import org.broadinstitute.hellbender.utils.runtime.RuntimeUtils; - -/** - * Custom DocWorkUnit used for generating GATK help/documentation. Overrides the defaults to provide tool - * names that are annotated with a " (Picard)" suffix for Picard tools. - * - * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called - * by methods that are used by the GATK runtime. This class has a dependency on com.sun.javadoc classes, - * which may not be present since they're not provided as part of the normal GATK runtime classpath. - */ -@SuppressWarnings("removal") -public class GATKDocWorkUnit extends DocWorkUnit { - - public GATKDocWorkUnit( - final DocWorkUnitHandler workUnitHandler, - final DocumentedFeature documentedFeatureAnnotation, - final com.sun.javadoc.ClassDoc classDoc, - final Class clazz) { - super(workUnitHandler, documentedFeatureAnnotation, classDoc, clazz); - } - - @Override - public String getName() { - // Override getName to return a display name that annotates Picard tool names with " (Picard)" - return RuntimeUtils.toolDisplayName(getClazz()); - } - - /** - * Sort in order of the name of this WorkUnit - */ - @Override - public int compareTo(DocWorkUnit other) { - return this.getName().compareTo(other.getName()); - } -} +//package org.broadinstitute.hellbender.utils.help; +// +//import org.broadinstitute.barclay.help.DocWorkUnit; +//import org.broadinstitute.barclay.help.DocWorkUnitHandler; +//import org.broadinstitute.barclay.help.DocumentedFeature; +// +//import org.broadinstitute.hellbender.utils.runtime.RuntimeUtils; +// +///** +// * Custom DocWorkUnit used for generating GATK help/documentation. Overrides the defaults to provide tool +// * names that are annotated with a " (Picard)" suffix for Picard tools. +// * +// * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called +// * by methods that are used by the GATK runtime. This class has a dependency on com.sun.javadoc classes, +// * which may not be present since they're not provided as part of the normal GATK runtime classpath. +// */ +//@SuppressWarnings("removal") +//public class GATKDocWorkUnit extends DocWorkUnit { +// +// public GATKDocWorkUnit( +// final DocWorkUnitHandler workUnitHandler, +// final DocumentedFeature documentedFeatureAnnotation, +// final com.sun.javadoc.ClassDoc classDoc, +// final Class clazz) { +// super(workUnitHandler, documentedFeatureAnnotation, classDoc, clazz); +// } +// +// @Override +// public String getName() { +// // Override getName to return a display name that annotates Picard tool names with " (Picard)" +// return RuntimeUtils.toolDisplayName(getClazz()); +// } +// +// /** +// * Sort in order of the name of this WorkUnit +// */ +// @Override +// public int compareTo(DocWorkUnit other) { +// return this.getName().compareTo(other.getName()); +// } +//} diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKGSONWorkUnit.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKGSONWorkUnit.java index ab93c5a5670..0216ab9b707 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKGSONWorkUnit.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKGSONWorkUnit.java @@ -1,22 +1,17 @@ -package org.broadinstitute.hellbender.utils.help; - -import org.broadinstitute.barclay.help.DocWorkUnit; -import org.broadinstitute.barclay.help.GSONWorkUnit; - -/** - * Class representing a GSONWorkUnit for GATK work units. - * - * Adds "walkertype" to the base gson object created by Barclay. - */ -public class GATKGSONWorkUnit extends GSONWorkUnit { - - private String walkerType; - - public GATKGSONWorkUnit(DocWorkUnit workUnit) { - super(workUnit); - } - - public void setWalkerType(final String walkerType){ - this.walkerType = walkerType; - } -} +//package org.broadinstitute.hellbender.utils.help; +// +//import org.broadinstitute.barclay.help.GSONWorkUnit; +// +///** +// * Class representing a GSONWorkUnit for GATK work units. +// * +// * Adds "walkertype" to the base gson object created by Barclay. +// */ +//public class GATKGSONWorkUnit extends GSONWorkUnit { +// +// private String walkerType; +// +// public void setWalkerType(final String walkerType){ +// this.walkerType = walkerType; +// } +//} diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java index ab2cf1a9d06..b31bfcc640a 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java @@ -1,61 +1,61 @@ -package org.broadinstitute.hellbender.utils.help; - -import org.broadinstitute.barclay.argparser.CommandLineProgramProperties; -import org.broadinstitute.barclay.help.DefaultDocWorkUnitHandler; -import org.broadinstitute.barclay.help.DocWorkUnit; - -import org.broadinstitute.barclay.help.HelpDoclet; - -/** - * The GATK Documentation work unit handler class that is the companion to GATKHelpDoclet. - * - * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called - * by methods that are used by the GATK runtime, as this class assumes a dependency on com.sun.javadoc classes - * which may not be present. - */ -public class GATKHelpDocWorkUnitHandler extends DefaultDocWorkUnitHandler { - - private final static String GATK_JAVADOC_TAG_PREFIX = "GATK"; // prefix for custom javadoc tags used by GATK - - private final static String GATK_FREEMARKER_TEMPLATE_NAME = "generic.template.html"; - - public GATKHelpDocWorkUnitHandler(final HelpDoclet doclet) { - super(doclet); - } - /** - * @return Prefix for custom GATK tags that should be lifted from the javadoc and stored in the - * FreeMarker map. These will be available in the template returned by {@link #getTemplateName}. - */ - @Override - protected String getTagFilterPrefix() { return GATK_JAVADOC_TAG_PREFIX; } - - /** - * @param workUnit the classdoc object being processed - * @return the name of a the freemarker template to be used for the class being documented. - * Must reside in the folder passed to the Barclay Doclet via the "-settings-dir" parameter to - * Javadoc. - */ - @Override - public String getTemplateName(final DocWorkUnit workUnit) { return GATK_FREEMARKER_TEMPLATE_NAME; } - - - /** - * Add any custom freemarker bindings discovered via custom javadoc tags. Subclasses can override this to - * provide additional custom bindings. - * - * @param currentWorkUnit the work unit for the feature being documented - */ - @Override - protected void addCustomBindings(final DocWorkUnit currentWorkUnit) { - super.addCustomBindings(currentWorkUnit); - - // Picard tools use the summary line for the long overview section, so extract that - // from Picard tools only, and put it in the freemarker map. - Class toolClass = currentWorkUnit.getClazz(); - if (picard.cmdline.CommandLineProgram.class.isAssignableFrom(toolClass)) { - final CommandLineProgramProperties clpProperties = currentWorkUnit.getCommandLineProperties(); - currentWorkUnit.setProperty("picardsummary", clpProperties.summary()); - } - } - -} +//package org.broadinstitute.hellbender.utils.help; +// +//import org.broadinstitute.barclay.argparser.CommandLineProgramProperties; +//import org.broadinstitute.barclay.help.DefaultDocWorkUnitHandler; +//import org.broadinstitute.barclay.help.DocWorkUnit; +// +//import org.broadinstitute.barclay.help.HelpDoclet; +// +///** +// * The GATK Documentation work unit handler class that is the companion to GATKHelpDoclet. +// * +// * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called +// * by methods that are used by the GATK runtime, as this class assumes a dependency on com.sun.javadoc classes +// * which may not be present. +// */ +//public class GATKHelpDocWorkUnitHandler extends DefaultDocWorkUnitHandler { +// +// private final static String GATK_JAVADOC_TAG_PREFIX = "GATK"; // prefix for custom javadoc tags used by GATK +// +// private final static String GATK_FREEMARKER_TEMPLATE_NAME = "generic.template.html"; +// +// public GATKHelpDocWorkUnitHandler(final HelpDoclet doclet) { +// super(doclet); +// } +// /** +// * @return Prefix for custom GATK tags that should be lifted from the javadoc and stored in the +// * FreeMarker map. These will be available in the template returned by {@link #getTemplateName}. +// */ +// @Override +// protected String getTagFilterPrefix() { return GATK_JAVADOC_TAG_PREFIX; } +// +// /** +// * @param workUnit the classdoc object being processed +// * @return the name of a the freemarker template to be used for the class being documented. +// * Must reside in the folder passed to the Barclay Doclet via the "-settings-dir" parameter to +// * Javadoc. +// */ +// @Override +// public String getTemplateName(final DocWorkUnit workUnit) { return GATK_FREEMARKER_TEMPLATE_NAME; } +// +// +// /** +// * Add any custom freemarker bindings discovered via custom javadoc tags. Subclasses can override this to +// * provide additional custom bindings. +// * +// * @param currentWorkUnit the work unit for the feature being documented +// */ +// @Override +// protected void addCustomBindings(final DocWorkUnit currentWorkUnit) { +// super.addCustomBindings(currentWorkUnit); +// +// // Picard tools use the summary line for the long overview section, so extract that +// // from Picard tools only, and put it in the freemarker map. +// Class toolClass = currentWorkUnit.getClazz(); +// if (picard.cmdline.CommandLineProgram.class.isAssignableFrom(toolClass)) { +// final CommandLineProgramProperties clpProperties = currentWorkUnit.getCommandLineProperties(); +// currentWorkUnit.setProperty("picardsummary", clpProperties.summary()); +// } +// } +// +//} diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDoclet.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDoclet.java index 9262f176c13..9175d6bd557 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDoclet.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDoclet.java @@ -1,106 +1,106 @@ -package org.broadinstitute.hellbender.utils.help; - -import org.broadinstitute.barclay.help.DocumentedFeature; -import org.broadinstitute.barclay.help.DocWorkUnit; -import org.broadinstitute.barclay.help.GSONWorkUnit; -import org.broadinstitute.barclay.help.HelpDoclet; - -import java.io.IOException; -import java.util.List; -import java.util.Map; - -/** - * Custom Barclay-based Javadoc Doclet used for generating GATK help/documentation. - * - * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called - * by methods that are used by the GATK runtime. This class has a dependency on com.sun.javadoc classes, - * which may not be present since they're not provided as part of the normal GATK runtime classpath. - */ -@SuppressWarnings("removal") -public class GATKHelpDoclet extends HelpDoclet { - - private final static String GATK_FREEMARKER_INDEX_TEMPLATE_NAME = "generic.index.template.html"; - private final static String WALKER_TYPE_MAP_ENTRY = "walkertype"; // populated from javadoc custom tag - - /** - * Create a doclet of the appropriate type and generate the FreeMarker templates properties. - * @param rootDoc - * @throws IOException - */ - public static boolean start(final com.sun.javadoc.RootDoc rootDoc) throws IOException { - return new GATKHelpDoclet().startProcessDocs(rootDoc); - } - - /** - * Return the name of the freemarker template to be used for the index generated by Barclay. - * Must reside in the folder passed to the Barclay Javadc Doclet via the "-settings-dir" parameter. - * @return name of freemarker index template - */ - @Override - public String getIndexTemplateName() { - return GATK_FREEMARKER_INDEX_TEMPLATE_NAME; - } - - /** - * @return Create and return a DocWorkUnit-derived object to handle documentation - * for the target feature(s) represented by documentedFeature. - * - * @param documentedFeature DocumentedFeature annotation for the target feature - * @param classDoc javadoc classDoc for the target feature - * @param clazz class of the target feature - * @return DocWorkUnit to be used for this feature - */ - @Override - protected DocWorkUnit createWorkUnit( - final DocumentedFeature documentedFeature, - final com.sun.javadoc.ClassDoc classDoc, - final Class clazz) - { - return new GATKDocWorkUnit( - new GATKHelpDocWorkUnitHandler(this), - documentedFeature, - classDoc, - clazz); - } - - /** - * Create a GSONWorkUnit-derived object that holds our custom data. This method should create the object, and - * propagate any custom javadoc tags from the template map to the newly created GSON object; specifically - * "walkertype", which is pulled from a custom javadoc tag. - * - * @param workUnit work unit for which a GSON object is required - * @param groupMaps - * @param featureMaps - * @return a GSONWorkUnit-derived object for this work unit, populated with any custom values - */ - @Override - protected GSONWorkUnit createGSONWorkUnit( - final DocWorkUnit workUnit, - final List> groupMaps, - final List> featureMaps) - { - GATKGSONWorkUnit gatkGSONWorkUnit = new GATKGSONWorkUnit(workUnit); - gatkGSONWorkUnit.setWalkerType((String)workUnit.getRootMap().get(WALKER_TYPE_MAP_ENTRY)); - return gatkGSONWorkUnit; - } - - /** - * Adds a super-category so that we can custom-order the categories in the doc index - * - * @param docWorkUnit - * @return - */ - @Override - protected final Map getGroupMap(final DocWorkUnit docWorkUnit) { - final Map root = super.getGroupMap(docWorkUnit); - - /** - * Add-on super-category definitions. The super-category and spark value strings need to be the - * same as used in the Freemarker template. - */ - root.put("supercat", HelpConstants.getSuperCategoryProperty(docWorkUnit.getGroupName())); - - return root; - } - -} +//package org.broadinstitute.hellbender.utils.help; +// +//import org.broadinstitute.barclay.help.DocumentedFeature; +//import org.broadinstitute.barclay.help.DocWorkUnit; +//import org.broadinstitute.barclay.help.GSONWorkUnit; +//import org.broadinstitute.barclay.help.HelpDoclet; +// +//import java.io.IOException; +//import java.util.List; +//import java.util.Map; +// +///** +// * Custom Barclay-based Javadoc Doclet used for generating GATK help/documentation. +// * +// * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called +// * by methods that are used by the GATK runtime. This class has a dependency on com.sun.javadoc classes, +// * which may not be present since they're not provided as part of the normal GATK runtime classpath. +// */ +//@SuppressWarnings("removal") +//public class GATKHelpDoclet extends HelpDoclet { +// +// private final static String GATK_FREEMARKER_INDEX_TEMPLATE_NAME = "generic.index.template.html"; +// private final static String WALKER_TYPE_MAP_ENTRY = "walkertype"; // populated from javadoc custom tag +// +// /** +// * Create a doclet of the appropriate type and generate the FreeMarker templates properties. +// * @param rootDoc +// * @throws IOException +// */ +// public static boolean start(final com.sun.javadoc.RootDoc rootDoc) throws IOException { +// return new GATKHelpDoclet().startProcessDocs(rootDoc); +// } +// +// /** +// * Return the name of the freemarker template to be used for the index generated by Barclay. +// * Must reside in the folder passed to the Barclay Javadc Doclet via the "-settings-dir" parameter. +// * @return name of freemarker index template +// */ +// @Override +// public String getIndexTemplateName() { +// return GATK_FREEMARKER_INDEX_TEMPLATE_NAME; +// } +// +// /** +// * @return Create and return a DocWorkUnit-derived object to handle documentation +// * for the target feature(s) represented by documentedFeature. +// * +// * @param documentedFeature DocumentedFeature annotation for the target feature +// * @param classDoc javadoc classDoc for the target feature +// * @param clazz class of the target feature +// * @return DocWorkUnit to be used for this feature +// */ +// @Override +// protected DocWorkUnit createWorkUnit( +// final DocumentedFeature documentedFeature, +// final com.sun.javadoc.ClassDoc classDoc, +// final Class clazz) +// { +// return new GATKDocWorkUnit( +// new GATKHelpDocWorkUnitHandler(this), +// documentedFeature, +// classDoc, +// clazz); +// } +// +// /** +// * Create a GSONWorkUnit-derived object that holds our custom data. This method should create the object, and +// * propagate any custom javadoc tags from the template map to the newly created GSON object; specifically +// * "walkertype", which is pulled from a custom javadoc tag. +// * +// * @param workUnit work unit for which a GSON object is required +// * @param groupMaps +// * @param featureMaps +// * @return a GSONWorkUnit-derived object for this work unit, populated with any custom values +// */ +// @Override +// protected GSONWorkUnit createGSONWorkUnit( +// final DocWorkUnit workUnit, +// final List> groupMaps, +// final List> featureMaps) +// { +// GATKGSONWorkUnit gatkGSONWorkUnit = new GATKGSONWorkUnit(); +// gatkGSONWorkUnit.setWalkerType((String)workUnit.getRootMap().get(WALKER_TYPE_MAP_ENTRY)); +// return gatkGSONWorkUnit; +// } +// +// /** +// * Adds a super-category so that we can custom-order the categories in the doc index +// * +// * @param docWorkUnit +// * @return +// */ +// @Override +// protected final Map getGroupMap(final DocWorkUnit docWorkUnit) { +// final Map root = super.getGroupMap(docWorkUnit); +// +// /** +// * Add-on super-category definitions. The super-category and spark value strings need to be the +// * same as used in the Freemarker template. +// */ +// root.put("supercat", HelpConstants.getSuperCategoryProperty(docWorkUnit.getGroupName())); +// +// return root; +// } +// +//} diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLDoclet.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLDoclet.java index f0a83f00f4d..47fabca8f09 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLDoclet.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLDoclet.java @@ -1,222 +1,222 @@ -package org.broadinstitute.hellbender.utils.help; - -import freemarker.template.Configuration; -import freemarker.template.Template; -import freemarker.template.TemplateException; -import org.apache.commons.io.FilenameUtils; -import org.broadinstitute.barclay.argparser.CommandLineProgramProperties; -import org.broadinstitute.barclay.argparser.WorkflowProperties; -import org.broadinstitute.barclay.help.*; - -import java.io.*; -import java.util.List; -import java.util.Map; - -/** - * Custom Barclay-based Javadoc Doclet used for generating tool WDL. - * - * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called - * by methods that are used by the GATK runtime. This class has a dependency on com.sun.javadoc classes, - * which may not be present since they're not provided as part of the normal GATK runtime classpath. - */ -@SuppressWarnings("removal") -public class GATKWDLDoclet extends WDLDoclet { - - // emit an index file with links to all of the .wdl files - private final static String GATK_FREEMARKER_INDEX_TEMPLATE_NAME = "wdlIndexTemplate.html.ftl"; - - // the directory where the wdlgen build is running - public final static String OPT_BUILD_DIR = "-build-dir"; - private String buildDir; - - @Override - public String getIndexFileExtension() { return "html"; } - - /** - * Validates the given options against options supported by this doclet. - * - * @param option Option to validate. - * @return Number of potential parameters; 0 if not supported. - */ - public static int optionLength(final String option) { - // Any arguments used for the doclet need to be recognized here. Many javadoc plugins (ie. gradle) - // automatically add some such as "-doctitle", "-windowtitle", which we ignore. - if (option.equals(OPT_BUILD_DIR)) { - return 2; - } - return WDLDoclet.optionLength(option); - } - - @Override - protected boolean parseOption(final String[] option) { - if (option[0].equals(OPT_BUILD_DIR)) { - buildDir = option[1]; - return true; - } else { - return super.parseOption(option); - } - } - - /** - * Create a WDL doclet and generate the FreeMarker templates properties. - * @param rootDoc - * @throws IOException - */ - public static boolean start(final com.sun.javadoc.RootDoc rootDoc) throws IOException { - return new GATKWDLDoclet().startProcessDocs(rootDoc); - } - - /** - * @return the location where the build is running; used in the cromwell validation tests to generate a dummy - * input file to satisfy cromwell file localization - */ - public String getBuildDir() { return buildDir; } - - /** - * Return the name of the freemarker template to be used for the index generated by Barclay. - * For WDL gen, we create an index file that links to each of the generated WDL files. - * Must reside in the folder passed to the Barclay Javadc Doclet via the "-settings-dir" parameter. - * @return name of freemarker index template - */ - @Override - public String getIndexTemplateName() { - return GATK_FREEMARKER_INDEX_TEMPLATE_NAME; - } - - /** - * @return Create and return a DocWorkUnit-derived object to handle documentation - * for the target feature(s) represented by documentedFeature. - * - * @param documentedFeature DocumentedFeature annotation for the target feature - * @param classDoc javadoc classDoc for the target feature - * @param clazz class of the target feature - * @return DocWorkUnit to be used for this feature - */ - @Override - protected DocWorkUnit createWorkUnit( - final DocumentedFeature documentedFeature, - final com.sun.javadoc.ClassDoc classDoc, - final Class clazz) - { - return includeInDocs(documentedFeature, classDoc, clazz) ? - // for WDL we don't need to customize the work unit, only the handler, so just use the - // Barclay default WorkUnit class - new DocWorkUnit( - new GATKWDLWorkUnitHandler(this), - documentedFeature, - classDoc, - clazz) : - null; - } - - @Override - protected void processWorkUnitTemplate( - final Configuration cfg, - final DocWorkUnit workUnit, - final List> indexByGroupMaps, - final List> featureMaps) - { - final String defaultWDLOutputFileName = workUnit.getTargetFileName(); - final String defaultJSONOutputFileName = workUnit.getJSONFileName(); - - // generate the default WDL and input JSON, which expose only required args - exportWorkUnitTemplate( - cfg, - workUnit, - workUnit.getTemplateName(), - new File(getDestinationDir(), defaultWDLOutputFileName)); - exportWorkUnitTemplate( - cfg, - workUnit, - "wdlJSONTemplate.json.ftl", - new File(getDestinationDir(), defaultJSONOutputFileName)); - - // generate a second pair of files containing ALL arguments - exportWorkUnitTemplate( - cfg, - workUnit, - "wdlToolTemplateAllArgs.wdl.ftl", - new File(getDestinationDir(), - String.format("%sAllArgs.%s", - FilenameUtils.getBaseName(defaultWDLOutputFileName), - FilenameUtils.getExtension(defaultWDLOutputFileName))) - ); - exportWorkUnitTemplate( - cfg, - workUnit, - "wdlJSONTemplateAllArgs.json.ftl", - new File(getDestinationDir(), - String.format("%sAllArgsInputs.json", - FilenameUtils.getBaseName(defaultWDLOutputFileName))) - ); - - // Finally, we need to emit a test WDL and JSON pair for use by the cromwell execution test (which - // runs GATK in command line evaluation only mode). The JSON file is primed with dummy values for any - // required args. The test WDL specifies no docker image, and has no runtime outputs, since in - // command line validation mode no outputs are produced, so otherwise cromwell will fail attempting to - // de-localize them. - exportWorkUnitTemplate( - cfg, - workUnit, - "wdlToolTemplateAllArgsTest.wdl.ftl", - new File(getDestinationDir(), - String.format("%sAllArgsTest.%s", - FilenameUtils.getBaseName(defaultWDLOutputFileName), - FilenameUtils.getExtension(defaultWDLOutputFileName))) - ); - exportWorkUnitTemplate( - cfg, - workUnit, - "wdlJSONTemplateAllArgsTest.json.ftl", - new File(getDestinationDir(), - String.format("%sAllArgsTestInputs.json", - FilenameUtils.getBaseName(defaultWDLOutputFileName))) - ); - } - - /** - * Export the generated files from templates for a single work unit. - * - * @param cfg freemarker config - * @param workUnit the WorkUnit being processed - * @param wdlTemplateName name of the template to use - * @param wdlOutputPath output file - */ - protected final void exportWorkUnitTemplate( - final Configuration cfg, - final DocWorkUnit workUnit, - final String wdlTemplateName, - final File wdlOutputPath) { - try { - // Merge data-model with wdl template - final Template wdlTemplate = cfg.getTemplate(wdlTemplateName); - try (final Writer out = new OutputStreamWriter(new FileOutputStream(wdlOutputPath))) { - wdlTemplate.process(workUnit.getRootMap(), out); - } - } catch (IOException e) { - throw new DocException("IOException during documentation creation", e); - } catch (TemplateException e) { - throw new DocException("TemplateException during documentation creation", e); - } - } - - /** - * Return the group map for this workunit. This adds the custom super-category property so that we can - * order the categories in the documentation index. - * - * @param docWorkUnit the DocWorkUnit being processed - * @return the group map for this work unit, updated to include any custom properties - */ - @Override - protected final Map getGroupMap(final DocWorkUnit docWorkUnit) { - final Map root = super.getGroupMap(docWorkUnit); - - /** - * Add-on super-category definitions. The super-category needs to match the string(s) used - * in the Freemarker template. - */ - root.put("supercat", HelpConstants.getSuperCategoryProperty(docWorkUnit.getGroupName())); - return root; - } - -} +//package org.broadinstitute.hellbender.utils.help; +// +//import freemarker.template.Configuration; +//import freemarker.template.Template; +//import freemarker.template.TemplateException; +//import org.apache.commons.io.FilenameUtils; +//import org.broadinstitute.barclay.argparser.CommandLineProgramProperties; +//import org.broadinstitute.barclay.argparser.WorkflowProperties; +//import org.broadinstitute.barclay.help.*; +// +//import java.io.*; +//import java.util.List; +//import java.util.Map; +// +///** +// * Custom Barclay-based Javadoc Doclet used for generating tool WDL. +// * +// * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called +// * by methods that are used by the GATK runtime. This class has a dependency on com.sun.javadoc classes, +// * which may not be present since they're not provided as part of the normal GATK runtime classpath. +// */ +//@SuppressWarnings("removal") +//public class GATKWDLDoclet extends WDLDoclet { +// +// // emit an index file with links to all of the .wdl files +// private final static String GATK_FREEMARKER_INDEX_TEMPLATE_NAME = "wdlIndexTemplate.html.ftl"; +// +// // the directory where the wdlgen build is running +// public final static String OPT_BUILD_DIR = "-build-dir"; +// private String buildDir; +// +// @Override +// public String getIndexFileExtension() { return "html"; } +// +// /** +// * Validates the given options against options supported by this doclet. +// * +// * @param option Option to validate. +// * @return Number of potential parameters; 0 if not supported. +// */ +// public static int optionLength(final String option) { +// // Any arguments used for the doclet need to be recognized here. Many javadoc plugins (ie. gradle) +// // automatically add some such as "-doctitle", "-windowtitle", which we ignore. +// if (option.equals(OPT_BUILD_DIR)) { +// return 2; +// } +// return WDLDoclet.optionLength(option); +// } +// +// @Override +// protected boolean parseOption(final String[] option) { +// if (option[0].equals(OPT_BUILD_DIR)) { +// buildDir = option[1]; +// return true; +// } else { +// return super.parseOption(option); +// } +// } +// +// /** +// * Create a WDL doclet and generate the FreeMarker templates properties. +// * @param rootDoc +// * @throws IOException +// */ +// public static boolean start(final com.sun.javadoc.RootDoc rootDoc) throws IOException { +// return new GATKWDLDoclet().startProcessDocs(rootDoc); +// } +// +// /** +// * @return the location where the build is running; used in the cromwell validation tests to generate a dummy +// * input file to satisfy cromwell file localization +// */ +// public String getBuildDir() { return buildDir; } +// +// /** +// * Return the name of the freemarker template to be used for the index generated by Barclay. +// * For WDL gen, we create an index file that links to each of the generated WDL files. +// * Must reside in the folder passed to the Barclay Javadc Doclet via the "-settings-dir" parameter. +// * @return name of freemarker index template +// */ +// @Override +// public String getIndexTemplateName() { +// return GATK_FREEMARKER_INDEX_TEMPLATE_NAME; +// } +// +// /** +// * @return Create and return a DocWorkUnit-derived object to handle documentation +// * for the target feature(s) represented by documentedFeature. +// * +// * @param documentedFeature DocumentedFeature annotation for the target feature +// * @param classDoc javadoc classDoc for the target feature +// * @param clazz class of the target feature +// * @return DocWorkUnit to be used for this feature +// */ +// @Override +// protected DocWorkUnit createWorkUnit( +// final DocumentedFeature documentedFeature, +// final com.sun.javadoc.ClassDoc classDoc, +// final Class clazz) +// { +// return includeInDocs(documentedFeature, classDoc, clazz) ? +// // for WDL we don't need to customize the work unit, only the handler, so just use the +// // Barclay default WorkUnit class +// new DocWorkUnit( +// new GATKWDLWorkUnitHandler(this), +// documentedFeature, +// classDoc, +// clazz) : +// null; +// } +// +// @Override +// protected void processWorkUnitTemplate( +// final Configuration cfg, +// final DocWorkUnit workUnit, +// final List> indexByGroupMaps, +// final List> featureMaps) +// { +// final String defaultWDLOutputFileName = workUnit.getTargetFileName(); +// final String defaultJSONOutputFileName = workUnit.getJSONFileName(); +// +// // generate the default WDL and input JSON, which expose only required args +// exportWorkUnitTemplate( +// cfg, +// workUnit, +// workUnit.getTemplateName(), +// new File(getDestinationDir(), defaultWDLOutputFileName)); +// exportWorkUnitTemplate( +// cfg, +// workUnit, +// "wdlJSONTemplate.json.ftl", +// new File(getDestinationDir(), defaultJSONOutputFileName)); +// +// // generate a second pair of files containing ALL arguments +// exportWorkUnitTemplate( +// cfg, +// workUnit, +// "wdlToolTemplateAllArgs.wdl.ftl", +// new File(getDestinationDir(), +// String.format("%sAllArgs.%s", +// FilenameUtils.getBaseName(defaultWDLOutputFileName), +// FilenameUtils.getExtension(defaultWDLOutputFileName))) +// ); +// exportWorkUnitTemplate( +// cfg, +// workUnit, +// "wdlJSONTemplateAllArgs.json.ftl", +// new File(getDestinationDir(), +// String.format("%sAllArgsInputs.json", +// FilenameUtils.getBaseName(defaultWDLOutputFileName))) +// ); +// +// // Finally, we need to emit a test WDL and JSON pair for use by the cromwell execution test (which +// // runs GATK in command line evaluation only mode). The JSON file is primed with dummy values for any +// // required args. The test WDL specifies no docker image, and has no runtime outputs, since in +// // command line validation mode no outputs are produced, so otherwise cromwell will fail attempting to +// // de-localize them. +// exportWorkUnitTemplate( +// cfg, +// workUnit, +// "wdlToolTemplateAllArgsTest.wdl.ftl", +// new File(getDestinationDir(), +// String.format("%sAllArgsTest.%s", +// FilenameUtils.getBaseName(defaultWDLOutputFileName), +// FilenameUtils.getExtension(defaultWDLOutputFileName))) +// ); +// exportWorkUnitTemplate( +// cfg, +// workUnit, +// "wdlJSONTemplateAllArgsTest.json.ftl", +// new File(getDestinationDir(), +// String.format("%sAllArgsTestInputs.json", +// FilenameUtils.getBaseName(defaultWDLOutputFileName))) +// ); +// } +// +// /** +// * Export the generated files from templates for a single work unit. +// * +// * @param cfg freemarker config +// * @param workUnit the WorkUnit being processed +// * @param wdlTemplateName name of the template to use +// * @param wdlOutputPath output file +// */ +// protected final void exportWorkUnitTemplate( +// final Configuration cfg, +// final DocWorkUnit workUnit, +// final String wdlTemplateName, +// final File wdlOutputPath) { +// try { +// // Merge data-model with wdl template +// final Template wdlTemplate = cfg.getTemplate(wdlTemplateName); +// try (final Writer out = new OutputStreamWriter(new FileOutputStream(wdlOutputPath))) { +// wdlTemplate.process(workUnit.getRootMap(), out); +// } +// } catch (IOException e) { +// throw new DocException("IOException during documentation creation", e); +// } catch (TemplateException e) { +// throw new DocException("TemplateException during documentation creation", e); +// } +// } +// +// /** +// * Return the group map for this workunit. This adds the custom super-category property so that we can +// * order the categories in the documentation index. +// * +// * @param docWorkUnit the DocWorkUnit being processed +// * @return the group map for this work unit, updated to include any custom properties +// */ +// @Override +// protected final Map getGroupMap(final DocWorkUnit docWorkUnit) { +// final Map root = super.getGroupMap(docWorkUnit); +// +// /** +// * Add-on super-category definitions. The super-category needs to match the string(s) used +// * in the Freemarker template. +// */ +// root.put("supercat", HelpConstants.getSuperCategoryProperty(docWorkUnit.getGroupName())); +// return root; +// } +// +//} diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLWorkUnitHandler.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLWorkUnitHandler.java index 5d3aeeb8c64..bd2c7e02956 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLWorkUnitHandler.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLWorkUnitHandler.java @@ -1,356 +1,356 @@ -package org.broadinstitute.hellbender.utils.help; - -import htsjdk.samtools.util.Iso8601Date; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; - -import org.broadinstitute.barclay.argparser.*; -import org.broadinstitute.barclay.help.DocWorkUnit; -import org.broadinstitute.barclay.help.HelpDoclet; -import org.broadinstitute.barclay.help.TemplateProperties; -import org.broadinstitute.barclay.help.WDLWorkUnitHandler; -import org.broadinstitute.hellbender.engine.FeatureInput; -import org.broadinstitute.hellbender.engine.GATKPath; -import org.broadinstitute.hellbender.engine.spark.GATKSparkTool; -import org.broadinstitute.hellbender.exceptions.GATKException; -import picard.illumina.parser.ReadStructure; - -import java.util.*; - -// Note: WDL Gen doesn't handle arguments that accept tagged argument values - -/** - * The GATK WDL work unit handler. Its main task is to convert the types for all arguments for a given work - * unit (tool) from Java types to WDL-compatible types by updating the freemarker map with the transformed types. - * - * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called - * by methods that are used by the GATK runtime, as this class assumes a dependency on com.sun.javadoc classes - * which may not be present. - */ -public class GATKWDLWorkUnitHandler extends WDLWorkUnitHandler { - - private final static String GATK_FREEMARKER_TEMPLATE_NAME = "wdlToolTemplate.wdl.ftl"; - - // This must be kept in sync with the value used in build.gradle, where the file is created - private final static String dummyWDLTestFileName = "dummyWDLTestFile"; - - private final static String WDL_TEST_VALUE_PROPERTY = "testValue"; - - // Map of Java argument types that the WDL generator knows how to convert to a WDL type, along with the - // corresponding string substitution that needs to be run on the (Barclay-generated) string that describes - // the type. From a purely string perspective, some of these transforms are no-ops in that no actual - // conversion is required because the type names are identical in Java and WDL (i.e, File->File or - // String->String), but they're included here for completeness, and to document the allowed type transitions. - private final static Map, ImmutablePair> javaToWDLTypeMap = - new HashMap, ImmutablePair>() { - private static final long serialVersionUID = 1L; - { - // GATK-specific File Types - put(GATKPath.class, new ImmutablePair<>(GATKPath.class.getSimpleName(), "File")); - // FeatureInputs require special handling to account for the generic type param(s) - put(FeatureInput.class, new ImmutablePair<>(FeatureInput.class.getSimpleName(), "File")); - - put(Iso8601Date.class, new ImmutablePair<>(Iso8601Date.class.getSimpleName(), "String")); - put(Date.class, new ImmutablePair<>(Date.class.getSimpleName(), "String")); - put(ReadStructure.class, new ImmutablePair<>(ReadStructure.class.getSimpleName(), "String")); - } - }; - - public GATKWDLWorkUnitHandler(final HelpDoclet doclet) { - super(doclet); - } - - /** - * @param workUnit the DocWorkUnit object being processed - * @return the name of a the freemarker template to be used for the class being documented. - * Must reside in the folder passed to the Barclay Doclet via the "-settings-dir" parameter to - * Javadoc. - */ - @Override - public String getTemplateName(final DocWorkUnit workUnit) { return GATK_FREEMARKER_TEMPLATE_NAME; } - - /** - * Return the flat filename (no paths) that the handler would like the Doclet to - * write out the documentation for workUnit. - * @param workUnit - * @return the name of the destination file to which documentation output will be written - */ - @Override - public String getDestinationFilename(final DocWorkUnit workUnit) { - return workUnit.getClazz().getSimpleName() + ".wdl"; - } - - /** - * Returns the JSON output file name. - */ - @Override - public String getJSONFilename(final DocWorkUnit workUnit) { - return workUnit.getClazz().getSimpleName() + "Inputs.json"; - } - - /** - * Add the named argument {@code argDef}to the property map if applicable. - * @param currentWorkUnit current work unit - * @param args the freemarker arg map - * @param argDef the arg to add - */ - @Override - @SuppressWarnings("unchecked") - protected void processNamedArgument( - final DocWorkUnit currentWorkUnit, - final Map>> args, - final NamedArgumentDefinition argDef) - { - // for WDL gen, we don't want the special args such as --help or --version to show up in the - // WDL or JSON input files - if (!argDef.getUnderlyingField().getDeclaringClass().equals(SpecialArgumentsCollection.class)) { - super.processNamedArgument(currentWorkUnit, args, argDef); - - // now extract any newlines out of the summary since the summary appears in a WDL line comment - final List> argMapList = args.get("all"); - argMapList.stream().forEach( - m -> { - final String actualArgName = (String) m.get(TemplateProperties.WDL_ARGUMENT_ACTUAL_NAME); - if (actualArgName != null && actualArgName.equals("--" + argDef.getLongName())) { - // the summary string must be suitable to embed in a quoted string in the param_meta section, - // so remove any quotes and newlines - final String newSummary = ((String) m.get(TemplateProperties.ARGUMENT_SUMMARY)).replaceAll("[\"\'\n]", ""); - m.put(TemplateProperties.ARGUMENT_SUMMARY, newSummary); - } - }); - } - } - - @Override - protected String processNamedArgument( - final Map argBindings, - final NamedArgumentDefinition argDef, - final String fieldCommentText) { - final String argCategory = super.processNamedArgument(argBindings, argDef, fieldCommentText); - argBindings.put(WDL_TEST_VALUE_PROPERTY, - testValueAsJSON( - argDef.getLongName(), - argDef, - (String) argBindings.get(TemplateProperties.ARGUMENT_TYPE), - (String) argBindings.get(TemplateProperties.ARGUMENT_DEFAULT_VALUE)) - ); - - return argCategory; - } - - @Override - protected void processPositionalArguments( - final CommandLineArgumentParser clp, - final Map>> args) { - super.processPositionalArguments(clp, args); - final List> positionalArgsList = args.get(TemplateProperties.ARGUMENTS_POSITIONAL); - if (positionalArgsList != null && !positionalArgsList.isEmpty()) { - final Map positionalArgs = args.get(TemplateProperties.ARGUMENTS_POSITIONAL).get(0); - positionalArgs.put(WDL_TEST_VALUE_PROPERTY, - testValueAsJSON( - WDLWorkUnitHandler.POSITIONAL_ARGS, - clp.getPositionalArgumentDefinition(), - (String) positionalArgs.get(TemplateProperties.ARGUMENT_TYPE), - (String) positionalArgs.get(TemplateProperties.ARGUMENT_DEFAULT_VALUE)) - ); - } - } - - /** - * Return a test input value for use in the WDL validation test inputs. - * - * If an option has WDL type File, then we need to provide the name of an actual file that exists so cromwell - * can localize it: "dummyWDLTestFileName" is a file that will be created by the test task. - * - * @param longName the long name for this arg - * @param argDef the ArgumentDefinition for this arg - * @param wdlType the wdl type for which an input value is needed - * @param defaultWDLValue the default value for the argument for which an input value is required - * @return a test input value that is either the default value, or the name of an actual test file - * that will exist at test execution time - */ - protected String testValueAsJSON( - final String longName, - final ArgumentDefinition argDef, - final String wdlType, - final String defaultWDLValue) { - final Argument argumentAnnotation = argDef.getUnderlyingField().getAnnotation(Argument.class); - final PositionalArguments positionalAnnotation = argDef.getUnderlyingField().getAnnotation(PositionalArguments.class); - final boolean isRequired = - (argumentAnnotation != null && !argumentAnnotation.optional()) - || positionalAnnotation != null; - final String dummyWDLTestFile = ((GATKWDLDoclet) getDoclet()).getBuildDir() + "/" + dummyWDLTestFileName; - - // Hack to resolve the mutex argument in GATKSparkTool; otherwise all spark tools will fail since all - // mutex args will have a value - if (longName.equals(GATKSparkTool.OUTPUT_SHARD_DIR_LONG_NAME)) { - return "null"; - } - - // first check the wdl type; for File we always want to use the name of the dummy file that is created by - // the test process that is used to ensure localization is handled correctly - if (wdlType.equals("File")) { - if (isRequired) { - return "\"" + dummyWDLTestFile + "\""; - } else { - return "null"; - } - } else if (wdlType.equals("Array[File]")) { - return String.format("[\"%s\", \"%s\"]", dummyWDLTestFile, dummyWDLTestFile); - } - - // for other (non-File) types, use the default value and arg def to synthesize a value - if (defaultWDLValue.equals("null") || defaultWDLValue.equals("\"\"") || defaultWDLValue.equals("[]")) { - if (isRequired) { - if (wdlType.startsWith("Array")) { - // we use two values to accommodate tools that take positional args, such as CompareSams that - // require more than one arg - return String.format("[\"%s\", \"%s\"]", getDefaultValueForType(argDef), getDefaultValueForType(argDef)); - } else { - return "\"" + getDefaultValueForType(argDef) + "\""; - } - } else { - return "null"; - } - } else if (defaultWDLValue.startsWith("[")) { - // for required arrays, we need to provide SOME value in the array - if (isRequired) { - return defaultWDLValue; - } else { - return "null"; - } - } else if (wdlType.equals("Float")) { - if (defaultWDLValue.equals("Infinity") || defaultWDLValue.equals("Nan")) { - // JSON does not recognize "Infinity" or "Nan" as valid float values (!), so we - // need to treat them as String values - return "\"" + defaultWDLValue + "\""; - } - } - return defaultWDLValue; - } - - /** - * Return a value that will satisfy the constructor for argDef's underlying class. - * @param argDef - * @return a value that will satisfy the constructor for argDef's underlying class. - */ - protected String getDefaultValueForType(final ArgumentDefinition argDef) { - final Class clazz = argDef.getUnderlyingFieldClass(); - if (clazz.isEnum()) { - // any enum constant for this enum will do - return argDef.getUnderlyingFieldClass().getEnumConstants()[0].toString(); - } else { - // get a value that is formatted appropriately by calling toString() on the value - // on the underlying object if its not null, otherwise return a synthetic string - // suitable for the underlying type - final Object fieldDefaultValue = argDef.getArgumentValue(); - if (fieldDefaultValue != null && !fieldDefaultValue.toString().equals("[]")) { - return fieldDefaultValue.toString(); - } else if (clazz.isAssignableFrom(Boolean.class) || - clazz.isAssignableFrom(boolean.class)) { - return "true"; - } else if (clazz.isAssignableFrom(Float.class) || - clazz.isAssignableFrom(float.class) || - clazz.isAssignableFrom(Double.class) || - clazz.isAssignableFrom(double.class)) { - return "0.0"; - } else if (clazz.isAssignableFrom(Integer.class) || - clazz.isAssignableFrom(int.class) || - clazz.isAssignableFrom(Long.class) || - clazz.isAssignableFrom(long.class)) { - return "1"; - } else { - // give up and return a String with a synthetic value - return "syntheticTestValue"; - } - } - } - - /** - * Given a Java class representing the underlying field type of an argument, and a human readable doc type, - * convert the docType to a WDL type. - * - * @param workflowOutput the WorkflowOutput associated with the instance of argumentClass, if any - * @param argumentClass the Class for the underlying field of the argument being converted - * @param docType a string representing the human readable type assigned by the Barclay doc system - * @param sourceContext a String describing the context for this argument, used for error reporting - * @return the docType string transformed to the corresponding WDL type - */ - @Override - protected String convertJavaTypeToWDLType( - final WorkflowOutput workflowOutput, - final Class argumentClass, - final String docType, - final String sourceContext) { - String convertedWDLType; - if (FeatureInput.class.isAssignableFrom(argumentClass)) { - if (!docType.contains(FeatureInput.class.getSimpleName())) { - throw new GATKException( - String.format( - "Don't know how to convert Java type %s in %s to a corresponding WDL type. " + - "The WDL generator type converter code must be updated to support this Java type.", - argumentClass, - sourceContext)); - } - final Pair typeConversionPair = transformToWDLType(argumentClass); - convertedWDLType = docType.replaceFirst("FeatureInput\\[[a-zA-Z0-9?]+\\]", typeConversionPair.getValue()); - - // finally, if this type is for an arg that is a WorkflowOutput that is a workflow output, and its type - // is file, we need to use a different type (String) as the input type for this arg to prevent the workflow - // manager from attempting to localize the (non-existent) output file when localizing inputs - return transformWorkflowOutputTypeToInputType(workflowOutput, convertedWDLType); - } - return super.convertJavaTypeToWDLType(workflowOutput, argumentClass, docType, sourceContext); - } - - /** - * Given an argument class, return a String pair representing the string that should be replaced (the Java type), - * and the string to substitute (the corresponding WDL type), i.e., for an argument with type Java Integer.class, - * return the Pair ("Integer", "Int") to convert from the Java type to the corresponding WDL type. - * @param argumentClass Class of the argument being converter - * @return a String pair representing the original and replacement type text, or null if no conversion is available - */ - @Override - protected Pair transformToWDLType(final Class argumentClass) { - Pair conversion = javaToWDLTypeMap.get(argumentClass); - return conversion == null ? super.transformToWDLType(argumentClass) : conversion; - } - - /** - * Given a Java collection class, return a String pair representing the string that should be replaced (the Java type), - * and the string to substitute (the corresponding WDL type), i.e., for an argument with type Java List.class, - * return the Pair ("List", "Array") to convert from the Java type to the corresponding WDL collection type. - * @param argumentCollectionClass collection Class of the argument being converter - * @return a String pair representing the original and replacement type text, or null if no conversion is available - */ - @Override - protected Pair transformToWDLCollectionType(final Class argumentCollectionClass) { - // required for Picard LiftoverVcf - return argumentCollectionClass.equals(Collection.class) ? - new ImmutablePair<>("Collection", "Array"): - super.transformToWDLCollectionType(argumentCollectionClass); - } - - /** - * Add any custom freemarker bindings discovered via custom javadoc tags. Subclasses can override this to - * provide additional custom bindings. - * - * @param currentWorkUnit the work unit for the feature being documented - */ - @Override - protected void addCustomBindings(final DocWorkUnit currentWorkUnit) { - super.addCustomBindings(currentWorkUnit); - - // Picard tools use the summary line for the long overview section, so extract that - // from Picard tools only, and put it in the freemarker map. - Class toolClass = currentWorkUnit.getClazz(); - if (picard.cmdline.CommandLineProgram.class.isAssignableFrom(toolClass)) { - final CommandLineProgramProperties clpProperties = currentWorkUnit.getCommandLineProperties(); - currentWorkUnit.setProperty("picardsummary", clpProperties.summary()); - } - - // add the buildDir as a property so it can be accessed by the test inputs JSON file - currentWorkUnit.setProperty("buildDir", ((GATKWDLDoclet)getDoclet()).getBuildDir()); - } - -} +//package org.broadinstitute.hellbender.utils.help; +// +//import htsjdk.samtools.util.Iso8601Date; +//import org.apache.commons.lang3.tuple.ImmutablePair; +//import org.apache.commons.lang3.tuple.Pair; +// +//import org.broadinstitute.barclay.argparser.*; +//import org.broadinstitute.barclay.help.DocWorkUnit; +//import org.broadinstitute.barclay.help.HelpDoclet; +//import org.broadinstitute.barclay.help.TemplateProperties; +//import org.broadinstitute.barclay.help.WDLWorkUnitHandler; +//import org.broadinstitute.hellbender.engine.FeatureInput; +//import org.broadinstitute.hellbender.engine.GATKPath; +//import org.broadinstitute.hellbender.engine.spark.GATKSparkTool; +//import org.broadinstitute.hellbender.exceptions.GATKException; +//import picard.illumina.parser.ReadStructure; +// +//import java.util.*; +// +//// Note: WDL Gen doesn't handle arguments that accept tagged argument values +// +///** +// * The GATK WDL work unit handler. Its main task is to convert the types for all arguments for a given work +// * unit (tool) from Java types to WDL-compatible types by updating the freemarker map with the transformed types. +// * +// * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called +// * by methods that are used by the GATK runtime, as this class assumes a dependency on com.sun.javadoc classes +// * which may not be present. +// */ +//public class GATKWDLWorkUnitHandler extends WDLWorkUnitHandler { +// +// private final static String GATK_FREEMARKER_TEMPLATE_NAME = "wdlToolTemplate.wdl.ftl"; +// +// // This must be kept in sync with the value used in build.gradle, where the file is created +// private final static String dummyWDLTestFileName = "dummyWDLTestFile"; +// +// private final static String WDL_TEST_VALUE_PROPERTY = "testValue"; +// +// // Map of Java argument types that the WDL generator knows how to convert to a WDL type, along with the +// // corresponding string substitution that needs to be run on the (Barclay-generated) string that describes +// // the type. From a purely string perspective, some of these transforms are no-ops in that no actual +// // conversion is required because the type names are identical in Java and WDL (i.e, File->File or +// // String->String), but they're included here for completeness, and to document the allowed type transitions. +// private final static Map, ImmutablePair> javaToWDLTypeMap = +// new HashMap, ImmutablePair>() { +// private static final long serialVersionUID = 1L; +// { +// // GATK-specific File Types +// put(GATKPath.class, new ImmutablePair<>(GATKPath.class.getSimpleName(), "File")); +// // FeatureInputs require special handling to account for the generic type param(s) +// put(FeatureInput.class, new ImmutablePair<>(FeatureInput.class.getSimpleName(), "File")); +// +// put(Iso8601Date.class, new ImmutablePair<>(Iso8601Date.class.getSimpleName(), "String")); +// put(Date.class, new ImmutablePair<>(Date.class.getSimpleName(), "String")); +// put(ReadStructure.class, new ImmutablePair<>(ReadStructure.class.getSimpleName(), "String")); +// } +// }; +// +// public GATKWDLWorkUnitHandler(final HelpDoclet doclet) { +// super(doclet); +// } +// +// /** +// * @param workUnit the DocWorkUnit object being processed +// * @return the name of a the freemarker template to be used for the class being documented. +// * Must reside in the folder passed to the Barclay Doclet via the "-settings-dir" parameter to +// * Javadoc. +// */ +// @Override +// public String getTemplateName(final DocWorkUnit workUnit) { return GATK_FREEMARKER_TEMPLATE_NAME; } +// +// /** +// * Return the flat filename (no paths) that the handler would like the Doclet to +// * write out the documentation for workUnit. +// * @param workUnit +// * @return the name of the destination file to which documentation output will be written +// */ +// @Override +// public String getDestinationFilename(final DocWorkUnit workUnit) { +// return workUnit.getClazz().getSimpleName() + ".wdl"; +// } +// +// /** +// * Returns the JSON output file name. +// */ +// @Override +// public String getJSONFilename(final DocWorkUnit workUnit) { +// return workUnit.getClazz().getSimpleName() + "Inputs.json"; +// } +// +// /** +// * Add the named argument {@code argDef}to the property map if applicable. +// * @param currentWorkUnit current work unit +// * @param args the freemarker arg map +// * @param argDef the arg to add +// */ +// @Override +// @SuppressWarnings("unchecked") +// protected void processNamedArgument( +// final DocWorkUnit currentWorkUnit, +// final Map>> args, +// final NamedArgumentDefinition argDef) +// { +// // for WDL gen, we don't want the special args such as --help or --version to show up in the +// // WDL or JSON input files +// if (!argDef.getUnderlyingField().getDeclaringClass().equals(SpecialArgumentsCollection.class)) { +// super.processNamedArgument(currentWorkUnit, args, argDef); +// +// // now extract any newlines out of the summary since the summary appears in a WDL line comment +// final List> argMapList = args.get("all"); +// argMapList.stream().forEach( +// m -> { +// final String actualArgName = (String) m.get(TemplateProperties.WDL_ARGUMENT_ACTUAL_NAME); +// if (actualArgName != null && actualArgName.equals("--" + argDef.getLongName())) { +// // the summary string must be suitable to embed in a quoted string in the param_meta section, +// // so remove any quotes and newlines +// final String newSummary = ((String) m.get(TemplateProperties.ARGUMENT_SUMMARY)).replaceAll("[\"\'\n]", ""); +// m.put(TemplateProperties.ARGUMENT_SUMMARY, newSummary); +// } +// }); +// } +// } +// +// @Override +// protected String processNamedArgument( +// final Map argBindings, +// final NamedArgumentDefinition argDef, +// final String fieldCommentText) { +// final String argCategory = super.processNamedArgument(argBindings, argDef, fieldCommentText); +// argBindings.put(WDL_TEST_VALUE_PROPERTY, +// testValueAsJSON( +// argDef.getLongName(), +// argDef, +// (String) argBindings.get(TemplateProperties.ARGUMENT_TYPE), +// (String) argBindings.get(TemplateProperties.ARGUMENT_DEFAULT_VALUE)) +// ); +// +// return argCategory; +// } +// +// @Override +// protected void processPositionalArguments( +// final CommandLineArgumentParser clp, +// final Map>> args) { +// super.processPositionalArguments(clp, args); +// final List> positionalArgsList = args.get(TemplateProperties.ARGUMENTS_POSITIONAL); +// if (positionalArgsList != null && !positionalArgsList.isEmpty()) { +// final Map positionalArgs = args.get(TemplateProperties.ARGUMENTS_POSITIONAL).get(0); +// positionalArgs.put(WDL_TEST_VALUE_PROPERTY, +// testValueAsJSON( +// WDLWorkUnitHandler.POSITIONAL_ARGS, +// clp.getPositionalArgumentDefinition(), +// (String) positionalArgs.get(TemplateProperties.ARGUMENT_TYPE), +// (String) positionalArgs.get(TemplateProperties.ARGUMENT_DEFAULT_VALUE)) +// ); +// } +// } +// +// /** +// * Return a test input value for use in the WDL validation test inputs. +// * +// * If an option has WDL type File, then we need to provide the name of an actual file that exists so cromwell +// * can localize it: "dummyWDLTestFileName" is a file that will be created by the test task. +// * +// * @param longName the long name for this arg +// * @param argDef the ArgumentDefinition for this arg +// * @param wdlType the wdl type for which an input value is needed +// * @param defaultWDLValue the default value for the argument for which an input value is required +// * @return a test input value that is either the default value, or the name of an actual test file +// * that will exist at test execution time +// */ +// protected String testValueAsJSON( +// final String longName, +// final ArgumentDefinition argDef, +// final String wdlType, +// final String defaultWDLValue) { +// final Argument argumentAnnotation = argDef.getUnderlyingField().getAnnotation(Argument.class); +// final PositionalArguments positionalAnnotation = argDef.getUnderlyingField().getAnnotation(PositionalArguments.class); +// final boolean isRequired = +// (argumentAnnotation != null && !argumentAnnotation.optional()) +// || positionalAnnotation != null; +// final String dummyWDLTestFile = ((GATKWDLDoclet) getDoclet()).getBuildDir() + "/" + dummyWDLTestFileName; +// +// // Hack to resolve the mutex argument in GATKSparkTool; otherwise all spark tools will fail since all +// // mutex args will have a value +// if (longName.equals(GATKSparkTool.OUTPUT_SHARD_DIR_LONG_NAME)) { +// return "null"; +// } +// +// // first check the wdl type; for File we always want to use the name of the dummy file that is created by +// // the test process that is used to ensure localization is handled correctly +// if (wdlType.equals("File")) { +// if (isRequired) { +// return "\"" + dummyWDLTestFile + "\""; +// } else { +// return "null"; +// } +// } else if (wdlType.equals("Array[File]")) { +// return String.format("[\"%s\", \"%s\"]", dummyWDLTestFile, dummyWDLTestFile); +// } +// +// // for other (non-File) types, use the default value and arg def to synthesize a value +// if (defaultWDLValue.equals("null") || defaultWDLValue.equals("\"\"") || defaultWDLValue.equals("[]")) { +// if (isRequired) { +// if (wdlType.startsWith("Array")) { +// // we use two values to accommodate tools that take positional args, such as CompareSams that +// // require more than one arg +// return String.format("[\"%s\", \"%s\"]", getDefaultValueForType(argDef), getDefaultValueForType(argDef)); +// } else { +// return "\"" + getDefaultValueForType(argDef) + "\""; +// } +// } else { +// return "null"; +// } +// } else if (defaultWDLValue.startsWith("[")) { +// // for required arrays, we need to provide SOME value in the array +// if (isRequired) { +// return defaultWDLValue; +// } else { +// return "null"; +// } +// } else if (wdlType.equals("Float")) { +// if (defaultWDLValue.equals("Infinity") || defaultWDLValue.equals("Nan")) { +// // JSON does not recognize "Infinity" or "Nan" as valid float values (!), so we +// // need to treat them as String values +// return "\"" + defaultWDLValue + "\""; +// } +// } +// return defaultWDLValue; +// } +// +// /** +// * Return a value that will satisfy the constructor for argDef's underlying class. +// * @param argDef +// * @return a value that will satisfy the constructor for argDef's underlying class. +// */ +// protected String getDefaultValueForType(final ArgumentDefinition argDef) { +// final Class clazz = argDef.getUnderlyingFieldClass(); +// if (clazz.isEnum()) { +// // any enum constant for this enum will do +// return argDef.getUnderlyingFieldClass().getEnumConstants()[0].toString(); +// } else { +// // get a value that is formatted appropriately by calling toString() on the value +// // on the underlying object if its not null, otherwise return a synthetic string +// // suitable for the underlying type +// final Object fieldDefaultValue = argDef.getArgumentValue(); +// if (fieldDefaultValue != null && !fieldDefaultValue.toString().equals("[]")) { +// return fieldDefaultValue.toString(); +// } else if (clazz.isAssignableFrom(Boolean.class) || +// clazz.isAssignableFrom(boolean.class)) { +// return "true"; +// } else if (clazz.isAssignableFrom(Float.class) || +// clazz.isAssignableFrom(float.class) || +// clazz.isAssignableFrom(Double.class) || +// clazz.isAssignableFrom(double.class)) { +// return "0.0"; +// } else if (clazz.isAssignableFrom(Integer.class) || +// clazz.isAssignableFrom(int.class) || +// clazz.isAssignableFrom(Long.class) || +// clazz.isAssignableFrom(long.class)) { +// return "1"; +// } else { +// // give up and return a String with a synthetic value +// return "syntheticTestValue"; +// } +// } +// } +// +// /** +// * Given a Java class representing the underlying field type of an argument, and a human readable doc type, +// * convert the docType to a WDL type. +// * +// * @param workflowOutput the WorkflowOutput associated with the instance of argumentClass, if any +// * @param argumentClass the Class for the underlying field of the argument being converted +// * @param docType a string representing the human readable type assigned by the Barclay doc system +// * @param sourceContext a String describing the context for this argument, used for error reporting +// * @return the docType string transformed to the corresponding WDL type +// */ +// @Override +// protected String convertJavaTypeToWDLType( +// final WorkflowOutput workflowOutput, +// final Class argumentClass, +// final String docType, +// final String sourceContext) { +// String convertedWDLType; +// if (FeatureInput.class.isAssignableFrom(argumentClass)) { +// if (!docType.contains(FeatureInput.class.getSimpleName())) { +// throw new GATKException( +// String.format( +// "Don't know how to convert Java type %s in %s to a corresponding WDL type. " + +// "The WDL generator type converter code must be updated to support this Java type.", +// argumentClass, +// sourceContext)); +// } +// final Pair typeConversionPair = transformToWDLType(argumentClass); +// convertedWDLType = docType.replaceFirst("FeatureInput\\[[a-zA-Z0-9?]+\\]", typeConversionPair.getValue()); +// +// // finally, if this type is for an arg that is a WorkflowOutput that is a workflow output, and its type +// // is file, we need to use a different type (String) as the input type for this arg to prevent the workflow +// // manager from attempting to localize the (non-existent) output file when localizing inputs +// return transformWorkflowOutputTypeToInputType(workflowOutput, convertedWDLType); +// } +// return super.convertJavaTypeToWDLType(workflowOutput, argumentClass, docType, sourceContext); +// } +// +// /** +// * Given an argument class, return a String pair representing the string that should be replaced (the Java type), +// * and the string to substitute (the corresponding WDL type), i.e., for an argument with type Java Integer.class, +// * return the Pair ("Integer", "Int") to convert from the Java type to the corresponding WDL type. +// * @param argumentClass Class of the argument being converter +// * @return a String pair representing the original and replacement type text, or null if no conversion is available +// */ +// @Override +// protected Pair transformToWDLType(final Class argumentClass) { +// Pair conversion = javaToWDLTypeMap.get(argumentClass); +// return conversion == null ? super.transformToWDLType(argumentClass) : conversion; +// } +// +// /** +// * Given a Java collection class, return a String pair representing the string that should be replaced (the Java type), +// * and the string to substitute (the corresponding WDL type), i.e., for an argument with type Java List.class, +// * return the Pair ("List", "Array") to convert from the Java type to the corresponding WDL collection type. +// * @param argumentCollectionClass collection Class of the argument being converter +// * @return a String pair representing the original and replacement type text, or null if no conversion is available +// */ +// @Override +// protected Pair transformToWDLCollectionType(final Class argumentCollectionClass) { +// // required for Picard LiftoverVcf +// return argumentCollectionClass.equals(Collection.class) ? +// new ImmutablePair<>("Collection", "Array"): +// super.transformToWDLCollectionType(argumentCollectionClass); +// } +// +// /** +// * Add any custom freemarker bindings discovered via custom javadoc tags. Subclasses can override this to +// * provide additional custom bindings. +// * +// * @param currentWorkUnit the work unit for the feature being documented +// */ +// @Override +// protected void addCustomBindings(final DocWorkUnit currentWorkUnit) { +// super.addCustomBindings(currentWorkUnit); +// +// // Picard tools use the summary line for the long overview section, so extract that +// // from Picard tools only, and put it in the freemarker map. +// Class toolClass = currentWorkUnit.getClazz(); +// if (picard.cmdline.CommandLineProgram.class.isAssignableFrom(toolClass)) { +// final CommandLineProgramProperties clpProperties = currentWorkUnit.getCommandLineProperties(); +// currentWorkUnit.setProperty("picardsummary", clpProperties.summary()); +// } +// +// // add the buildDir as a property so it can be accessed by the test inputs JSON file +// currentWorkUnit.setProperty("buildDir", ((GATKWDLDoclet)getDoclet()).getBuildDir()); +// } +// +//} diff --git a/src/main/java/org/broadinstitute/hellbender/utils/mcmc/PosteriorSummary.java b/src/main/java/org/broadinstitute/hellbender/utils/mcmc/PosteriorSummary.java deleted file mode 100644 index 6d9d28067d5..00000000000 --- a/src/main/java/org/broadinstitute/hellbender/utils/mcmc/PosteriorSummary.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.broadinstitute.hellbender.utils.mcmc; - -import java.io.Serializable; - -/** - * Represents central tendency and upper/lower credible-interval bounds of the posterior of a univariate model parameter, - * along with optional deciles. - * - * @author Samuel Lee <slee@broadinstitute.org> - */ -public final class PosteriorSummary implements Serializable { - - static final long serialVersionUID = 144L; - - private final double center; - private final double lower; - private final double upper; - private DecileCollection deciles; - - /** - * Constructs a PosteriorSummary with only given central tendency and upper/lower credible-interval bounds. - * @param center central tendency - * @param lower lower credible-interval bound - * @param upper upper credible-interval bound - */ - public PosteriorSummary(final double center, final double lower, final double upper) { - this.center = center; - this.lower = lower; - this.upper = upper; - deciles = null; - } - - public double getCenter() { return center; } - public double getLower() { return lower; } - public double getUpper() { return upper; } - - /** - * Gets the {@link DecileCollection} if it was set previously by {@link PosteriorSummary#setDeciles(DecileCollection)}. - * @throws IllegalStateException if deciles were not set previously - */ - public DecileCollection getDeciles() { - if (deciles == null) { - throw new IllegalStateException("Cannot get deciles before they are set."); - } - return deciles; - } - - public void setDeciles(final DecileCollection deciles) { - this.deciles = deciles; - } -} diff --git a/src/main/java/org/broadinstitute/hellbender/utils/mcmc/PosteriorSummaryUtils.java b/src/main/java/org/broadinstitute/hellbender/utils/mcmc/PosteriorSummaryUtils.java deleted file mode 100644 index 0ea19760198..00000000000 --- a/src/main/java/org/broadinstitute/hellbender/utils/mcmc/PosteriorSummaryUtils.java +++ /dev/null @@ -1,148 +0,0 @@ -package org.broadinstitute.hellbender.utils.mcmc; - -import com.google.common.primitives.Doubles; -import org.apache.commons.math3.optim.MaxEval; -import org.apache.commons.math3.optim.nonlinear.scalar.GoalType; -import org.apache.commons.math3.optim.univariate.BrentOptimizer; -import org.apache.commons.math3.optim.univariate.SearchInterval; -import org.apache.commons.math3.optim.univariate.UnivariateObjectiveFunction; -import org.apache.commons.math3.stat.descriptive.moment.Mean; -import org.apache.commons.math3.stat.descriptive.moment.StandardDeviation; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.mllib.stat.KernelDensity; -import org.broadinstitute.hellbender.utils.Utils; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * Contains methods for computing summary statistics for the posterior of a univariate model parameter. - * - * @author Samuel Lee <slee@broadinstitute.org> - */ -public class PosteriorSummaryUtils { - public static final double SILVERMANS_RULE_CONSTANT = 1.06; - public static final double SILVERMANS_RULE_EXPONENT = -0.2; - //constants for Brent optimization - private static final MaxEval BRENT_MAX_EVAL = new MaxEval(100); - private static final double RELATIVE_TOLERANCE = 0.01; - - private PosteriorSummaryUtils() { - } - - /** - * Given a list of posterior samples, returns a PosteriorSummary with central tendency given by the posterior mode - * (which is estimated using mllib kernel density estimation in {@link KernelDensity}, - * see {@link PosteriorSummaryUtils#calculatePosteriorMode(List, JavaSparkContext)}) and lower/upper credible-interval - * bounds given by the (1-{@code alpha}) highest-posterior-density interval (i.e., the narrowest interval - * that contains (1-{@code alpha}) of the samples). Unimodality is assumed. If the samples contain - * {@link Double#NaN}, a {@link PosteriorSummary} with - * {@link PosteriorSummary#center}, {@link PosteriorSummary#lower}, and {@link PosteriorSummary#upper} - * all set to {@link Double#NaN} will be returned. - * @param samples posterior samples, cannot be {@code null} and number of samples must be greater than 0 - * @param alpha credible-interval alpha, must be in (0, 1) - * @param ctx {@link JavaSparkContext} used by {@link KernelDensity} for mllib kernel density estimation - */ - public static PosteriorSummary calculateHighestPosteriorDensitySummary(final List samples, - final double alpha, - final JavaSparkContext ctx) { - Utils.nonNull(samples); - Utils.validateArg(samples.size() > 0, "Number of samples must be greater than zero."); - Utils.validateArg(0 < alpha && alpha < 1, "Alpha must be in (0, 1)."); - - final double central = calculatePosteriorMode(samples, ctx); - - //if samples contain NaN, return NaN for all posterior-summary values - if (Double.isNaN(central)) { - return new PosteriorSummary(Double.NaN, Double.NaN, Double.NaN); - } - - //find highest-posterior-density interval using simple Chen & Shao 1998 procedure - final List sortedSamples = new ArrayList<>(samples); - Collections.sort(sortedSamples); - final int n = sortedSamples.size(); - double lower = sortedSamples.get(0); - double upper = sortedSamples.get(n - 1); - double minIntervalWidth = sortedSamples.get(n - 1) - sortedSamples.get(0); - final int numSamplesInInterval = (int) Math.floor((1 - alpha) * n); - for (int i = 0; i < n - numSamplesInInterval; i++) { - final double intervalWidth = sortedSamples.get(i + numSamplesInInterval) - sortedSamples.get(i); - if (intervalWidth < minIntervalWidth) { - minIntervalWidth = intervalWidth; - lower = sortedSamples.get(i); - upper = sortedSamples.get(i + numSamplesInInterval); - } - } - - return new PosteriorSummary(central, lower, upper); - } - - /** - * Given a list of posterior samples, returns a PosteriorSummary with central tendency given by the posterior mode - * (which is estimated using mllib kernel density estimation in {@link KernelDensity}, - * see {@link PosteriorSummaryUtils#calculatePosteriorMode(List, JavaSparkContext)}), lower/upper credible-interval - * bounds given by the (1-{@code alpha}) highest-posterior-density interval (i.e., the narrowest interval - * that contains (1-{@code alpha}) of the samples), and deciles. Unimodality is assumed. If the samples contain - * {@link Double#NaN}, a {@link PosteriorSummary} with - * {@link PosteriorSummary#center}, {@link PosteriorSummary#lower}, and {@link PosteriorSummary#upper} - * all set to {@link Double#NaN} will be returned. - * @param samples posterior samples, cannot be {@code null} and number of samples must be greater than 0 - * @param alpha credible-interval alpha, must be in (0, 1) - * @param ctx {@link JavaSparkContext} used by {@link KernelDensity} for mllib kernel density estimation - */ - public static PosteriorSummary calculateHighestPosteriorDensityAndDecilesSummary(final List samples, - final double alpha, - final JavaSparkContext ctx) { - Utils.nonNull(samples); - Utils.validateArg(samples.size() > 0, "Number of samples must be greater than zero."); - Utils.validateArg(0 < alpha && alpha < 1, "Alpha must be in (0, 1)."); - - final PosteriorSummary posteriorSummary = calculateHighestPosteriorDensitySummary(samples, alpha, ctx); - final DecileCollection deciles = new DecileCollection(samples); - posteriorSummary.setDeciles(deciles); - return posteriorSummary; - } - - /** - * Given a list of posterior samples, returns an estimate of the posterior mode (using - * mllib kernel density estimation in {@link KernelDensity} and {@link BrentOptimizer}). - * Note that estimate may be poor if number of samples is small (resulting in poor kernel density estimation), - * or if posterior is not unimodal (or is sufficiently pathological otherwise). If the samples contain - * {@link Double#NaN}, {@link Double#NaN} will be returned. - * @param samples posterior samples, cannot be {@code null} and number of samples must be greater than 0 - * @param ctx {@link JavaSparkContext} used by {@link KernelDensity} for mllib kernel density estimation - */ - public static double calculatePosteriorMode(final List samples, final JavaSparkContext ctx) { - Utils.nonNull(samples); - Utils.validateArg(samples.size() > 0, "Number of samples must be greater than zero."); - - //calculate sample min, max, mean, and standard deviation - final double sampleMin = Collections.min(samples); - final double sampleMax = Collections.max(samples); - final double sampleMean = new Mean().evaluate(Doubles.toArray(samples)); - final double sampleStandardDeviation = new StandardDeviation().evaluate(Doubles.toArray(samples)); - - //if samples are all the same or contain NaN, can simply return mean - if (sampleStandardDeviation == 0. || Double.isNaN(sampleMean)) { - return sampleMean; - } - - //use Silverman's rule to set bandwidth for kernel density estimation from sample standard deviation - //see https://en.wikipedia.org/wiki/Kernel_density_estimation#Practical_estimation_of_the_bandwidth - final double bandwidth = - SILVERMANS_RULE_CONSTANT * sampleStandardDeviation * Math.pow(samples.size(), SILVERMANS_RULE_EXPONENT); - - //use kernel density estimation to approximate posterior from samples - final KernelDensity pdf = new KernelDensity().setSample(ctx.parallelize(samples, 1)).setBandwidth(bandwidth); - - //use Brent optimization to find mode (i.e., maximum) of kernel-density-estimated posterior - final BrentOptimizer optimizer = - new BrentOptimizer(RELATIVE_TOLERANCE, RELATIVE_TOLERANCE * (sampleMax - sampleMin)); - final UnivariateObjectiveFunction objective = - new UnivariateObjectiveFunction(f -> pdf.estimate(new double[] {f})[0]); - //search for mode within sample range, start near sample mean - final SearchInterval searchInterval = new SearchInterval(sampleMin, sampleMax, sampleMean); - return optimizer.optimize(objective, GoalType.MAXIMIZE, searchInterval, BRENT_MAX_EVAL).getPoint(); - } -} diff --git a/src/test/java/org/broadinstitute/hellbender/MainTest.java b/src/test/java/org/broadinstitute/hellbender/MainTest.java index 50fae383eb0..337f6289eec 100644 --- a/src/test/java/org/broadinstitute/hellbender/MainTest.java +++ b/src/test/java/org/broadinstitute/hellbender/MainTest.java @@ -66,53 +66,53 @@ private static final class ExitNotAllowedException extends SecurityException { } } - private static final class ThrowOnExitSecurityManager extends SecurityManager { - - @Override - public void checkPermission(Permission perm) { - // allow anything. - } - - @Override - public void checkPermission(Permission perm, Object context) { - // allow anything. - } - - @Override - public void checkExit(int status) { - super.checkExit(status); - // always throw - throw new ExitNotAllowedException(status); - } - } - - @Test(singleThreaded = true) - public void testMainErrorWithoutStackTrace() { - final SecurityManager backup = System.getSecurityManager(); - try { - System.setSecurityManager(new ThrowOnExitSecurityManager()); - new Main().mainEntry(new String[]{"PrintReadsW"}); - Assert.fail("Should never reach here"); - } catch (ExitNotAllowedException e) { - // does exist as if it is an user exception - Assert.assertEquals(e.status, Main.USER_EXCEPTION_EXIT_VALUE); - } finally { - System.setSecurityManager(backup); - } - } - @Test(singleThreaded = true) - public void testNonZeroPicardReturnValue() { - final SecurityManager backup = System.getSecurityManager(); - try { - System.setSecurityManager(new ThrowOnExitSecurityManager()); - new Main().mainEntry(new String[]{"ExtractSequences"}); - Assert.fail("Should never reach here"); - } catch (final ExitNotAllowedException e) { - Assert.assertEquals(e.status, Main.PICARD_TOOL_EXCEPTION); - } finally { - System.setSecurityManager(backup); - } - } +// private static final class ThrowOnExitSecurityManager extends SecurityManager { +// +// @Override +// public void checkPermission(Permission perm) { +// // allow anything. +// } +// +// @Override +// public void checkPermission(Permission perm, Object context) { +// // allow anything. +// } +// +// @Override +// public void checkExit(int status) { +// super.checkExit(status); +// // always throw +// throw new ExitNotAllowedException(status); +// } +// } +// +// @Test(singleThreaded = true) +// public void testMainErrorWithoutStackTrace() { +// final SecurityManager backup = System.getSecurityManager(); +// try { +// System.setSecurityManager(new ThrowOnExitSecurityManager()); +// new Main().mainEntry(new String[]{"PrintReadsW"}); +// Assert.fail("Should never reach here"); +// } catch (ExitNotAllowedException e) { +// // does exist as if it is an user exception +// Assert.assertEquals(e.status, Main.USER_EXCEPTION_EXIT_VALUE); +// } finally { +// System.setSecurityManager(backup); +// } +// } +// @Test(singleThreaded = true) +// public void testNonZeroPicardReturnValue() { +// final SecurityManager backup = System.getSecurityManager(); +// try { +// System.setSecurityManager(new ThrowOnExitSecurityManager()); +// new Main().mainEntry(new String[]{"ExtractSequences"}); +// Assert.fail("Should never reach here"); +// } catch (final ExitNotAllowedException e) { +// Assert.assertEquals(e.status, Main.PICARD_TOOL_EXCEPTION); +// } finally { +// System.setSecurityManager(backup); +// } +// } @Test public void testEnsureShortDescriptionsAreShort() { diff --git a/src/test/java/org/broadinstitute/hellbender/cmdline/GATKPlugin/GATKAnnotationPluginDescriptorUnitTest.java b/src/test/java/org/broadinstitute/hellbender/cmdline/GATKPlugin/GATKAnnotationPluginDescriptorUnitTest.java index d38369825fc..8920a445117 100644 --- a/src/test/java/org/broadinstitute/hellbender/cmdline/GATKPlugin/GATKAnnotationPluginDescriptorUnitTest.java +++ b/src/test/java/org/broadinstitute/hellbender/cmdline/GATKPlugin/GATKAnnotationPluginDescriptorUnitTest.java @@ -36,7 +36,8 @@ public class GATKAnnotationPluginDescriptorUnitTest extends GATKBaseTest { // null print stream for the tests - private static final PrintStream nullMessageStream = new PrintStream(NullOutputStream.NULL_OUTPUT_STREAM); + @SuppressWarnings("deprecation") + private static final PrintStream nullMessageStream = new PrintStream(new NullOutputStream()); //====================================================================================================================== // Methods for computing individual annotations diff --git a/src/test/java/org/broadinstitute/hellbender/cmdline/GATKPlugin/GATKReadFilterPluginDescriptorTest.java b/src/test/java/org/broadinstitute/hellbender/cmdline/GATKPlugin/GATKReadFilterPluginDescriptorTest.java index 22a83fd1f90..be91ff8cf1d 100644 --- a/src/test/java/org/broadinstitute/hellbender/cmdline/GATKPlugin/GATKReadFilterPluginDescriptorTest.java +++ b/src/test/java/org/broadinstitute/hellbender/cmdline/GATKPlugin/GATKReadFilterPluginDescriptorTest.java @@ -35,7 +35,8 @@ public class GATKReadFilterPluginDescriptorTest extends GATKBaseTest { // null print stream for the tests - private static final PrintStream nullMessageStream = new PrintStream(NullOutputStream.NULL_OUTPUT_STREAM); + @SuppressWarnings("deprecation") + private static final PrintStream nullMessageStream = new PrintStream(new NullOutputStream()); @DataProvider(name = "defaultFiltersForAllowedValues") public Object[][] defaultFiltersForAllowedValues() { diff --git a/src/test/java/org/broadinstitute/hellbender/engine/AssemblyRegionIteratorUnitTest.java b/src/test/java/org/broadinstitute/hellbender/engine/AssemblyRegionIteratorUnitTest.java index 542938af228..f67ab15962c 100644 --- a/src/test/java/org/broadinstitute/hellbender/engine/AssemblyRegionIteratorUnitTest.java +++ b/src/test/java/org/broadinstitute/hellbender/engine/AssemblyRegionIteratorUnitTest.java @@ -56,7 +56,7 @@ public Object[][] testCorrectRegionsHaveCorrectReadsAndSizeData() { public void testRegionsHaveCorrectReadsAndSize( final String reads, final String reference, final List shardIntervals, final int minRegionSize, final int maxRegionSize, final int assemblyRegionPadding ) throws IOException { try (final ReadsDataSource readsSource = new ReadsPathDataSource(IOUtils.getPath(reads)); final ReferenceDataSource refSource = ReferenceDataSource.of(IOUtils.getPath(reference)); - final ReferenceSequenceFile referenceReader = new CachingIndexedFastaSequenceFile(IOUtils.getPath(b37_reference_20_21)); + final CachingIndexedFastaSequenceFile referenceReader = new CachingIndexedFastaSequenceFile(IOUtils.getPath(b37_reference_20_21)); ) { final SAMSequenceDictionary readsDictionary = readsSource.getSequenceDictionary(); final MultiIntervalLocalReadShard readShard = new MultiIntervalLocalReadShard(shardIntervals, assemblyRegionPadding, readsSource); diff --git a/src/test/java/org/broadinstitute/hellbender/engine/spark/datasources/ReadsSparkSinkUnitTest.java b/src/test/java/org/broadinstitute/hellbender/engine/spark/datasources/ReadsSparkSinkUnitTest.java index 664f335edb3..abc568e9d20 100644 --- a/src/test/java/org/broadinstitute/hellbender/engine/spark/datasources/ReadsSparkSinkUnitTest.java +++ b/src/test/java/org/broadinstitute/hellbender/engine/spark/datasources/ReadsSparkSinkUnitTest.java @@ -19,6 +19,7 @@ import org.broadinstitute.hellbender.GATKBaseTest; import org.broadinstitute.hellbender.testutils.MiniClusterUtils; import org.testng.Assert; +import org.testng.SkipException; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.DataProvider; @@ -38,6 +39,11 @@ public class ReadsSparkSinkUnitTest extends GATKBaseTest { @BeforeClass(alwaysRun = true) private void setupMiniCluster() throws IOException { + // see https://github.com/eclipse/jetty.project/issues/8549 + if (isGATKDockerContainer()) { + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } cluster = MiniClusterUtils.getMiniCluster(); } diff --git a/src/test/java/org/broadinstitute/hellbender/engine/spark/datasources/ReadsSparkSourceUnitTest.java b/src/test/java/org/broadinstitute/hellbender/engine/spark/datasources/ReadsSparkSourceUnitTest.java index 90688ba7656..65ca3d4aa2f 100644 --- a/src/test/java/org/broadinstitute/hellbender/engine/spark/datasources/ReadsSparkSourceUnitTest.java +++ b/src/test/java/org/broadinstitute/hellbender/engine/spark/datasources/ReadsSparkSourceUnitTest.java @@ -21,6 +21,7 @@ import org.broadinstitute.hellbender.GATKBaseTest; import org.broadinstitute.hellbender.testutils.MiniClusterUtils; import org.testng.Assert; +import org.testng.SkipException; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -194,6 +195,11 @@ public void testReadFromFileAndHDFS() throws Exception { //TODO: add or change getTestFile overload with GATKPath final GATKPath bam = new GATKPath(getTestFile("hdfs_file_test.bam").getAbsolutePath()); final File bai = getTestFile("hdfs_file_test.bai"); + // see https://github.com/eclipse/jetty.project/issues/8549 + if (isGATKDockerContainer()) { + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } MiniClusterUtils.runOnIsolatedMiniCluster( cluster -> { final Path workingDirectory = MiniClusterUtils.getWorkingDir(cluster); final Path bamPath = new Path(workingDirectory,"hdfs.bam"); @@ -217,6 +223,11 @@ public void testCRAMReferenceFromHDFS() throws Exception { final GATKPath reference = new GATKPath(v37_chr17_1Mb_Reference); final GATKPath referenceIndex = new GATKPath(v37_chr17_1Mb_Reference + ".fai"); + // see https://github.com/eclipse/jetty.project/issues/8549 + if (isGATKDockerContainer()) { + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } MiniClusterUtils.runOnIsolatedMiniCluster( cluster -> { final Path workingDirectory = MiniClusterUtils.getWorkingDir(cluster); final Path cramHDFSPath = new Path(workingDirectory, "hdfs.cram"); diff --git a/src/test/java/org/broadinstitute/hellbender/engine/spark/datasources/VariantsSparkSinkUnitTest.java b/src/test/java/org/broadinstitute/hellbender/engine/spark/datasources/VariantsSparkSinkUnitTest.java index 155f3055371..b31b53d5453 100644 --- a/src/test/java/org/broadinstitute/hellbender/engine/spark/datasources/VariantsSparkSinkUnitTest.java +++ b/src/test/java/org/broadinstitute/hellbender/engine/spark/datasources/VariantsSparkSinkUnitTest.java @@ -34,6 +34,7 @@ import org.broadinstitute.hellbender.utils.gcs.BucketUtils; import org.broadinstitute.hellbender.utils.io.IOUtils; import org.testng.Assert; +import org.testng.SkipException; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.DataProvider; @@ -51,6 +52,11 @@ public final class VariantsSparkSinkUnitTest extends GATKBaseTest { @BeforeClass(alwaysRun = true) private void setupMiniCluster() throws IOException { + // see https://github.com/eclipse/jetty.project/issues/8549 + if (isGATKDockerContainer()) { + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } cluster = MiniClusterUtils.getMiniCluster(); } diff --git a/src/test/java/org/broadinstitute/hellbender/tools/spark/PileupSparkIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/tools/spark/PileupSparkIntegrationTest.java index 77b498c21d7..656000c25d9 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/spark/PileupSparkIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/spark/PileupSparkIntegrationTest.java @@ -6,6 +6,7 @@ import org.broadinstitute.hellbender.testutils.IntegrationTestSpec; import org.broadinstitute.hellbender.testutils.MiniClusterUtils; import org.broadinstitute.hellbender.utils.io.IOUtils; +import org.testng.SkipException; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -115,10 +116,10 @@ public void testInsertLengthPileup(boolean useShuffle) throws Exception { @Test(dataProvider = "shuffle") public void testFeaturesPileupHdfs(boolean useShuffle) throws Exception { - // Skip this test when running on Java 11 since it fails with a Spark error that is not fixed until Spark 3 - // see https://issues.apache.org/jira/browse/SPARK-26963 - if (System.getProperty("java.specification.version").equals("11")) { - return; + if (isGATKDockerContainer()) { + // see https://github.com/eclipse/jetty.project/issues/8549 + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); } MiniClusterUtils.runOnIsolatedMiniCluster( cluster -> { final Path workingDirectory = MiniClusterUtils.getWorkingDir(cluster); diff --git a/src/test/java/org/broadinstitute/hellbender/tools/spark/pipelines/PrintReadsSparkIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/tools/spark/pipelines/PrintReadsSparkIntegrationTest.java index c21a23d5ce8..59c4b7449f7 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/spark/pipelines/PrintReadsSparkIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/spark/pipelines/PrintReadsSparkIntegrationTest.java @@ -19,6 +19,7 @@ import org.broadinstitute.hellbender.utils.io.IOUtils; import org.broadinstitute.hellbender.utils.read.GATKRead; import org.testng.Assert; +import org.testng.SkipException; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -79,6 +80,11 @@ public void testReadAndWriteCRAMAndReferenceOnHDFS() throws Exception { final GATKPath testRefDict = new GATKPath(getTestFile("count_reads.dict").getAbsolutePath()); final GATKPath testRefIndex = new GATKPath(getTestFile("count_reads.fasta.fai").getAbsolutePath()); + if (isGATKDockerContainer()) { + // see https://github.com/eclipse/jetty.project/issues/8549 + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } MiniClusterUtils.runOnIsolatedMiniCluster(cluster -> { final org.apache.hadoop.fs.Path workingDirectory = MiniClusterUtils.getWorkingDir(cluster); diff --git a/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/CpxVariantReInterpreterSparkIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/CpxVariantReInterpreterSparkIntegrationTest.java index f87be3a752f..dae5597491f 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/CpxVariantReInterpreterSparkIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/CpxVariantReInterpreterSparkIntegrationTest.java @@ -10,6 +10,7 @@ import org.broadinstitute.hellbender.testutils.ArgumentsBuilder; import org.broadinstitute.hellbender.testutils.MiniClusterUtils; import org.broadinstitute.hellbender.testutils.VariantContextTestUtils; +import org.testng.SkipException; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -70,6 +71,11 @@ public void testRunLocal(final CpxVariantReInterpreterSparkIntegrationTestArgs p @Test(groups = "sv", dataProvider = "forCpxVariantReInterpreterSparkIntegrationTest") public void testRunHDFS(final CpxVariantReInterpreterSparkIntegrationTestArgs params) throws Exception { + if (isGATKDockerContainer()) { + // see https://github.com/eclipse/jetty.project/issues/8549 + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } MiniClusterUtils.runOnIsolatedMiniCluster(cluster -> { final List argsToBeModified = Arrays.asList( new ArgumentsBuilder().addRaw(params.getCommandLine()).getArgsArray() ); diff --git a/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/DiscoverVariantsFromContigAlignmentsSAMSparkIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/DiscoverVariantsFromContigAlignmentsSAMSparkIntegrationTest.java index 70b92868f6f..a3dc96fdb9a 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/DiscoverVariantsFromContigAlignmentsSAMSparkIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/DiscoverVariantsFromContigAlignmentsSAMSparkIntegrationTest.java @@ -6,6 +6,7 @@ import org.broadinstitute.hellbender.testutils.ArgumentsBuilder; import org.broadinstitute.hellbender.GATKBaseTest; import org.broadinstitute.hellbender.testutils.MiniClusterUtils; +import org.testng.SkipException; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -67,6 +68,11 @@ public void testDiscoverVariantsRunnableLocal(final DiscoverVariantsFromContigAl @Test(dataProvider = "discoverVariantsFromContigAlignmentsSparkIntegrationTest", groups = "sv") public void testDiscoverVariantsRunnableMiniCluster(final DiscoverVariantsFromContigAlignmentsSAMSparkIntegrationTestArgs params) throws Exception { + if (isGATKDockerContainer()) { + // see https://github.com/eclipse/jetty.project/issues/8549 + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } MiniClusterUtils.runOnIsolatedMiniCluster(cluster -> { final List argsToBeModified = Arrays.asList( new ArgumentsBuilder().addRaw(params.getCommandLine()).getArgsArray() ); diff --git a/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/FindBreakpointEvidenceSparkIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/FindBreakpointEvidenceSparkIntegrationTest.java index f5083e0941c..2730d69b927 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/FindBreakpointEvidenceSparkIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/FindBreakpointEvidenceSparkIntegrationTest.java @@ -8,6 +8,7 @@ import org.broadinstitute.hellbender.testutils.BaseTest; import org.broadinstitute.hellbender.testutils.IntegrationTestSpec; import org.broadinstitute.hellbender.testutils.MiniClusterUtils; +import org.testng.SkipException; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -114,6 +115,11 @@ public void testFindBreakpointRunnableLocal(final FindBreakpointEvidenceSparkInt @Test(dataProvider = "findBreakpointEvidenceSparkIntegrationTest", groups = "sv") public void testFindBreakpointRunnableMiniCluster(final FindBreakpointEvidenceSparkIntegrationTestArgs params) throws Exception { + if (isGATKDockerContainer()) { + // see https://github.com/eclipse/jetty.project/issues/8549 + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } MiniClusterUtils.runOnIsolatedMiniCluster(cluster -> { final List argsToBeModified = Arrays.asList( new ArgumentsBuilder().addRaw(params.getCommandLine()).getArgsArray() ); diff --git a/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/StructuralVariationDiscoveryPipelineSparkIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/StructuralVariationDiscoveryPipelineSparkIntegrationTest.java index 01d02a72e91..649b9206b92 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/StructuralVariationDiscoveryPipelineSparkIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/spark/sv/integration/StructuralVariationDiscoveryPipelineSparkIntegrationTest.java @@ -14,6 +14,7 @@ import org.broadinstitute.hellbender.testutils.MiniClusterUtils; import org.broadinstitute.hellbender.testutils.VariantContextTestUtils; import org.testng.Assert; +import org.testng.SkipException; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -115,6 +116,11 @@ public void testSVDiscoverPipelineRunnableLocal(final StructuralVariationDiscove @Test(dataProvider = "svDiscoverPipelineSparkIntegrationTest", groups = "sv") public void testSVDiscoverPipelineRunnableMiniCluster(final StructuralVariationDiscoveryPipelineSparkIntegrationTestArgs params) throws Exception { + if (isGATKDockerContainer()) { + // see https://github.com/eclipse/jetty.project/issues/8549 + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } MiniClusterUtils.runOnIsolatedMiniCluster(cluster -> { final List argsToBeModified = Arrays.asList( new ArgumentsBuilder().addRaw(params.getCommandLine()).getArgsArray() ); diff --git a/src/test/java/org/broadinstitute/hellbender/tools/walkers/sv/SVClusterIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/tools/walkers/sv/SVClusterIntegrationTest.java index 729cb04825f..aa7458062f8 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/walkers/sv/SVClusterIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/walkers/sv/SVClusterIntegrationTest.java @@ -17,12 +17,12 @@ import org.broadinstitute.hellbender.utils.IntervalUtils; import org.broadinstitute.hellbender.utils.reference.ReferenceUtils; import org.broadinstitute.hellbender.utils.variant.VariantContextGetters; -import org.spark_project.guava.collect.Lists; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import java.io.File; +import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -129,7 +129,7 @@ public void testMergeHelper(final boolean omitMembers) { final VCFHeader header = vcf.getKey(); final List records = vcf.getValue(); - Assert.assertEquals(header.getSampleNamesInOrder(), Lists.newArrayList("HG00096", "HG00129", "HG00140", "NA18945", "NA18956")); + Assert.assertEquals(header.getSampleNamesInOrder(), Arrays.asList("HG00096", "HG00129", "HG00140", "NA18945", "NA18956")); Assert.assertEquals(records.size(), 1793); @@ -201,7 +201,7 @@ public void testClusterSingleLinkage() { final VCFHeader header = vcf.getKey(); final List records = vcf.getValue(); - Assert.assertEquals(header.getSampleNamesInOrder(), Lists.newArrayList("HG00096", "HG00129", "HG00140", "NA18945", "NA18956")); + Assert.assertEquals(header.getSampleNamesInOrder(), Arrays.asList("HG00096", "HG00129", "HG00140", "NA18945", "NA18956")); Assert.assertEquals(records.size(), 1338); @@ -262,7 +262,7 @@ public void testAgainstSimpleImplementation() { .add(SVClusterEngineArgumentsCollection.PESR_INTERVAL_OVERLAP_FRACTION_NAME, 0.1) .add(SVClusterEngineArgumentsCollection.PESR_BREAKEND_WINDOW_NAME, 500); - final List vcfInputFilenames = Lists.newArrayList( + final List vcfInputFilenames = Arrays.asList( "1kgp_test.cnvs.vcf.gz", "HG00096.manta.vcf.gz", "HG00096.wham.vcf.gz", @@ -363,7 +363,7 @@ public void testClusterMaxClique(final boolean fastMode) { final VCFHeader header = vcf.getKey(); final List records = vcf.getValue(); - Assert.assertEquals(header.getSampleNamesInOrder(), Lists.newArrayList("HG00096", "HG00129", "HG00140", "NA18945", "NA18956")); + Assert.assertEquals(header.getSampleNamesInOrder(), Arrays.asList("HG00096", "HG00129", "HG00140", "NA18945", "NA18956")); //Assert.assertEquals(records.size(), 1353); @@ -491,7 +491,7 @@ public void testAllosome() { final VCFHeader header = vcf.getKey(); final List records = vcf.getValue(); - Assert.assertEquals(header.getSampleNamesInOrder(), Lists.newArrayList("HG00096", "HG00129", "HG00150")); + Assert.assertEquals(header.getSampleNamesInOrder(), Arrays.asList("HG00096", "HG00129", "HG00150")); Assert.assertEquals(records.size(), 536); diff --git a/src/test/java/org/broadinstitute/hellbender/utils/bigquery/BigQueryUtilsUnitTest.java b/src/test/java/org/broadinstitute/hellbender/utils/bigquery/BigQueryUtilsUnitTest.java index 6f9f0069927..8c1a5644464 100644 --- a/src/test/java/org/broadinstitute/hellbender/utils/bigquery/BigQueryUtilsUnitTest.java +++ b/src/test/java/org/broadinstitute/hellbender/utils/bigquery/BigQueryUtilsUnitTest.java @@ -83,7 +83,11 @@ public void testQueryWithStorageAPI() { rowCount++; Assert.assertTrue(expectedNamesAndAges.containsKey(name), "Unexpected name " + name + " returned from query " + query); - Assert.assertNull(row.get("age"), "Age was unexpectedly retrieved."); + Assert.expectThrows(org.apache.avro.AvroRuntimeException.class, + new Assert.ThrowingRunnable() { + public void run () { row.get("age"); + } + }); } final Set expectedNames = new HashSet<>(); diff --git a/src/test/java/org/broadinstitute/hellbender/utils/gcs/BucketUtilsUnitTest.java b/src/test/java/org/broadinstitute/hellbender/utils/gcs/BucketUtilsUnitTest.java index d18f6578112..2c7f96dd369 100644 --- a/src/test/java/org/broadinstitute/hellbender/utils/gcs/BucketUtilsUnitTest.java +++ b/src/test/java/org/broadinstitute/hellbender/utils/gcs/BucketUtilsUnitTest.java @@ -12,6 +12,7 @@ import org.broadinstitute.hellbender.utils.config.ConfigFactory; import org.broadinstitute.hellbender.utils.io.IOUtils; import org.testng.Assert; +import org.testng.SkipException; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -201,6 +202,11 @@ public void testCopyAndDeleteHDFS() throws Exception { final String src = publicTestDir + "empty.vcf"; File dest = createTempFile("copy-empty", ".vcf"); + // see https://github.com/eclipse/jetty.project/issues/8549 + if (isGATKDockerContainer()) { + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } MiniClusterUtils.runOnIsolatedMiniCluster( cluster -> { final String intermediate = BucketUtils.randomRemotePath(MiniClusterUtils.getWorkingDir(cluster).toString(), "test-copy-empty", ".vcf"); Assert.assertTrue(BucketUtils.isHadoopUrl(intermediate), "!BucketUtils.isHadoopUrl(intermediate)"); diff --git a/src/test/java/org/broadinstitute/hellbender/utils/help/DocumentationGenerationIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/utils/help/DocumentationGenerationIntegrationTest.java index 89bee016cfd..2b695b4bdc3 100644 --- a/src/test/java/org/broadinstitute/hellbender/utils/help/DocumentationGenerationIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/utils/help/DocumentationGenerationIntegrationTest.java @@ -1,64 +1,64 @@ -package org.broadinstitute.hellbender.utils.help; - -import org.broadinstitute.hellbender.CommandLineProgramTest; -import org.testng.Assert; -import org.testng.annotations.Test; - -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * Smoke test to run doc gen on a subset of classes to make sure it doesn't regress. - */ -public class DocumentationGenerationIntegrationTest extends CommandLineProgramTest { - /** - * Entry point for manually running the gatkDoc process on a subset of packages from within GATK. - */ - private static String[] docTestPackages = { - "org.broadinstitute.hellbender.cmdline.argumentcollections", - "org.broadinstitute.hellbender.cmdline.GATKPlugin", - "org.broadinstitute.hellbender.engine.filters", - "org.broadinstitute.hellbender.tools", - "org.broadinstitute.hellbender.tools.spark", - "org.broadinstitute.hellbender.tools.spark.pipelines", - "org.broadinstitute.hellbender.tools.spark.pipelines.metrics", - "org.broadinstitute.hellbender.tools.spark.transforms.bqsr", - "org.broadinstitute.hellbender.tools.spark.transforms.markduplicates", - "org.broadinstitute.hellbender.tools.walkers.bqsr", - "org.broadinstitute.hellbender.tools.walkers.vqsr", - "org.broadinstitute.hellbender.tools.walkers.variantutils", - "picard.fingerprint", - "picard.analysis" - }; - - // suppress deprecation warning on Java 11 since we're using deprecated javadoc APIs - @SuppressWarnings({"deprecation","removal"}) - @Test - public static void documentationSmokeTest() { - final File docTestTarget = createTempDir("docgentest"); - final String[] argArray = new String[]{ - "javadoc", - "-doclet", GATKHelpDoclet.class.getName(), - "-docletpath", System.getProperty("java.class.path"), - "-sourcepath", "src/main/java", - "-settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/helpTemplates", - "-d", docTestTarget.getAbsolutePath(), // directory must exist - "-output-file-extension", "html", - "-build-timestamp", "2016/11/11 11:11:11", - "-absolute-version", "1.1-111", - "-verbose" - }; - - final List docArgList = new ArrayList<>(); - docArgList.addAll(Arrays.asList(argArray)); - docArgList.add("-cp"); - docArgList.add(System.getProperty("java.class.path")); - docArgList.addAll(Arrays.asList(docTestPackages)); - - // Run javadoc in the current JVM with the custom doclet, and make sure it succeeds (this is a smoke test; - // we just want to make sure it doesn't blow up). - Assert.assertEquals(com.sun.tools.javadoc.Main.execute(docArgList.toArray(new String[] {})), 0); - } -} +//package org.broadinstitute.hellbender.utils.help; +// +//import org.broadinstitute.hellbender.CommandLineProgramTest; +//import org.testng.Assert; +//import org.testng.annotations.Test; +// +//import java.io.File; +//import java.util.ArrayList; +//import java.util.Arrays; +//import java.util.List; +// +///** +// * Smoke test to run doc gen on a subset of classes to make sure it doesn't regress. +// */ +//public class DocumentationGenerationIntegrationTest extends CommandLineProgramTest { +// /** +// * Entry point for manually running the gatkDoc process on a subset of packages from within GATK. +// */ +// private static String[] docTestPackages = { +// "org.broadinstitute.hellbender.cmdline.argumentcollections", +// "org.broadinstitute.hellbender.cmdline.GATKPlugin", +// "org.broadinstitute.hellbender.engine.filters", +// "org.broadinstitute.hellbender.tools", +// "org.broadinstitute.hellbender.tools.spark", +// "org.broadinstitute.hellbender.tools.spark.pipelines", +// "org.broadinstitute.hellbender.tools.spark.pipelines.metrics", +// "org.broadinstitute.hellbender.tools.spark.transforms.bqsr", +// "org.broadinstitute.hellbender.tools.spark.transforms.markduplicates", +// "org.broadinstitute.hellbender.tools.walkers.bqsr", +// "org.broadinstitute.hellbender.tools.walkers.vqsr", +// "org.broadinstitute.hellbender.tools.walkers.variantutils", +// "picard.fingerprint", +// "picard.analysis" +// }; +// +// // suppress deprecation warning on Java 11 since we're using deprecated javadoc APIs +// @SuppressWarnings({"deprecation","removal"}) +// @Test +// public static void documentationSmokeTest() { +// final File docTestTarget = createTempDir("docgentest"); +// final String[] argArray = new String[]{ +// "javadoc", +// "-doclet", GATKHelpDoclet.class.getName(), +// "-docletpath", System.getProperty("java.class.path"), +// "-sourcepath", "src/main/java", +// "-settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/helpTemplates", +// "-d", docTestTarget.getAbsolutePath(), // directory must exist +// "-output-file-extension", "html", +// "-build-timestamp", "2016/11/11 11:11:11", +// "-absolute-version", "1.1-111", +// "-verbose" +// }; +// +// final List docArgList = new ArrayList<>(); +// docArgList.addAll(Arrays.asList(argArray)); +// docArgList.add("-cp"); +// docArgList.add(System.getProperty("java.class.path")); +// docArgList.addAll(Arrays.asList(docTestPackages)); +// +// // Run javadoc in the current JVM with the custom doclet, and make sure it succeeds (this is a smoke test; +// // we just want to make sure it doesn't blow up). +// Assert.assertEquals(com.sun.tools.javadoc.Main.execute(docArgList.toArray(new String[] {})), 0); +// } +//} diff --git a/src/test/java/org/broadinstitute/hellbender/utils/help/TabCompletionIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/utils/help/TabCompletionIntegrationTest.java index 01e4c87f482..d2adc2f0c86 100644 --- a/src/test/java/org/broadinstitute/hellbender/utils/help/TabCompletionIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/utils/help/TabCompletionIntegrationTest.java @@ -1,94 +1,94 @@ -package org.broadinstitute.hellbender.utils.help; - -import org.broadinstitute.barclay.argparser.ClassFinder; -import org.broadinstitute.barclay.help.BashTabCompletionDoclet; -import org.broadinstitute.hellbender.CommandLineProgramTest; -import org.broadinstitute.hellbender.cmdline.CommandLineProgram; -import org.testng.Assert; -import org.testng.annotations.Test; - -import java.io.*; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.stream.Collectors; - -/** - * Smoke test to run tab completion generation on a subset of classes to make sure it doesn't regress. - */ -public class TabCompletionIntegrationTest extends CommandLineProgramTest { - - /** - * Entry point for manually running the gatkTabComplete process on a subset of packages from within GATK. - */ - final private static List tabCompletionTestPackages; - - // Static block to initialize tabCompletionTestPackages: - static { - final ClassFinder classFinder = new ClassFinder(); - classFinder.find("org.broadinstitute.hellbender", CommandLineProgram.class); - tabCompletionTestPackages = Collections.unmodifiableList( - classFinder.getClasses() - .stream() - .map(cl -> cl.getPackage().getName()) - .collect(Collectors.toSet()) // uniquify - .stream() - .collect(Collectors.toList()) - ); - } - - // suppress deprecation warning on Java 11 since we're using deprecated javadoc APIs - @SuppressWarnings({"deprecation","removal"}) - @Test - public static void tabCompleteSmokeTest() { - final File tabCompletionTestTarget = createTempDir("tabCompletionTest"); - - // Setup rote input arguments: - final List argList = Arrays.asList( - - "javadoc", - - "-doclet", BashTabCompletionDoclet.class.getName(), - - "-docletpath", System.getProperty("java.class.path"), - "-sourcepath", "src/main/java", - "-d", tabCompletionTestTarget.getAbsolutePath(), // directory must exist - - "-use-default-templates", - - "-output-file-extension", "sh", - "-index-file-extension", "sh", - "-absolute-version", "0.0-001", - "-build-timestamp", new SimpleDateFormat("dd-mm-yyyy hh:mm:ss").format( new Date() ), - - "-caller-script-name", "gatk", - - "-caller-pre-legal-args", "--help --list --dry-run --java-options", - "-caller-pre-arg-val-types", "null null null String", - "-caller-pre-mutex-args", "--help;list,dry-run,java-options --list;help,dry-run,java-options", - "-caller-pre-alias-args", "--help;-h", - "-caller-pre-arg-min-occurs", "0 0 0 0", - "-caller-pre-arg-max-occurs", "1 1 1 1", - - "-caller-post-legal-args", "--spark-runner --spark-master --cluster --dry-run --java-options --conf --driver-memory --driver-cores --executor-memory --executor-cores --num-executors", - "-caller-post-arg-val-types", "String String String null String file int int int int int", - "-caller-post-mutex-args", "", - "-caller-post-alias-args", "", - "-caller-post-arg-min-occurs", "0 0 0 0 0 0 0 0 0 0", - "-caller-post-arg-max-occurs", "1 1 1 1 1 1 1 1 1 1", - - "-verbose" - ); - - // Point the javadoc at our packages: - final List docArgList = new ArrayList<>(); - docArgList.addAll(argList); - docArgList.add("-cp"); - docArgList.add(System.getProperty("java.class.path")); - docArgList.addAll(tabCompletionTestPackages); - - // Run javadoc in the current JVM with the custom doclet, and make sure it succeeds (this is a smoke test; - // we just want to make sure it doesn't blow up). - Assert.assertEquals(com.sun.tools.javadoc.Main.execute(docArgList.toArray(new String[] {})), 0); - } - -} +//package org.broadinstitute.hellbender.utils.help; +// +//import org.broadinstitute.barclay.argparser.ClassFinder; +//import org.broadinstitute.barclay.help.BashTabCompletionDoclet; +//import org.broadinstitute.hellbender.CommandLineProgramTest; +//import org.broadinstitute.hellbender.cmdline.CommandLineProgram; +//import org.testng.Assert; +//import org.testng.annotations.Test; +// +//import java.io.*; +//import java.text.SimpleDateFormat; +//import java.util.*; +//import java.util.stream.Collectors; +// +///** +// * Smoke test to run tab completion generation on a subset of classes to make sure it doesn't regress. +// */ +//public class TabCompletionIntegrationTest extends CommandLineProgramTest { +// +// /** +// * Entry point for manually running the gatkTabComplete process on a subset of packages from within GATK. +// */ +// final private static List tabCompletionTestPackages; +// +// // Static block to initialize tabCompletionTestPackages: +// static { +// final ClassFinder classFinder = new ClassFinder(); +// classFinder.find("org.broadinstitute.hellbender", CommandLineProgram.class); +// tabCompletionTestPackages = Collections.unmodifiableList( +// classFinder.getClasses() +// .stream() +// .map(cl -> cl.getPackage().getName()) +// .collect(Collectors.toSet()) // uniquify +// .stream() +// .collect(Collectors.toList()) +// ); +// } +// +// // suppress deprecation warning on Java 11 since we're using deprecated javadoc APIs +// @SuppressWarnings({"deprecation","removal"}) +// @Test +// public static void tabCompleteSmokeTest() { +// final File tabCompletionTestTarget = createTempDir("tabCompletionTest"); +// +// // Setup rote input arguments: +// final List argList = Arrays.asList( +// +// "javadoc", +// +// "-doclet", BashTabCompletionDoclet.class.getName(), +// +// "-docletpath", System.getProperty("java.class.path"), +// "-sourcepath", "src/main/java", +// "-d", tabCompletionTestTarget.getAbsolutePath(), // directory must exist +// +// "-use-default-templates", +// +// "-output-file-extension", "sh", +// "-index-file-extension", "sh", +// "-absolute-version", "0.0-001", +// "-build-timestamp", new SimpleDateFormat("dd-mm-yyyy hh:mm:ss").format( new Date() ), +// +// "-caller-script-name", "gatk", +// +// "-caller-pre-legal-args", "--help --list --dry-run --java-options", +// "-caller-pre-arg-val-types", "null null null String", +// "-caller-pre-mutex-args", "--help;list,dry-run,java-options --list;help,dry-run,java-options", +// "-caller-pre-alias-args", "--help;-h", +// "-caller-pre-arg-min-occurs", "0 0 0 0", +// "-caller-pre-arg-max-occurs", "1 1 1 1", +// +// "-caller-post-legal-args", "--spark-runner --spark-master --cluster --dry-run --java-options --conf --driver-memory --driver-cores --executor-memory --executor-cores --num-executors", +// "-caller-post-arg-val-types", "String String String null String file int int int int int", +// "-caller-post-mutex-args", "", +// "-caller-post-alias-args", "", +// "-caller-post-arg-min-occurs", "0 0 0 0 0 0 0 0 0 0", +// "-caller-post-arg-max-occurs", "1 1 1 1 1 1 1 1 1 1", +// +// "-verbose" +// ); +// +// // Point the javadoc at our packages: +// final List docArgList = new ArrayList<>(); +// docArgList.addAll(argList); +// docArgList.add("-cp"); +// docArgList.add(System.getProperty("java.class.path")); +// docArgList.addAll(tabCompletionTestPackages); +// +// // Run javadoc in the current JVM with the custom doclet, and make sure it succeeds (this is a smoke test; +// // we just want to make sure it doesn't blow up). +// Assert.assertEquals(com.sun.tools.javadoc.Main.execute(docArgList.toArray(new String[] {})), 0); +// } +// +//} diff --git a/src/test/java/org/broadinstitute/hellbender/utils/help/TestWDLTool.java b/src/test/java/org/broadinstitute/hellbender/utils/help/TestWDLTool.java index 54cc90fac26..d1816c54706 100644 --- a/src/test/java/org/broadinstitute/hellbender/utils/help/TestWDLTool.java +++ b/src/test/java/org/broadinstitute/hellbender/utils/help/TestWDLTool.java @@ -1,326 +1,326 @@ -package org.broadinstitute.hellbender.utils.help; - -import org.broadinstitute.barclay.argparser.Argument; -import org.broadinstitute.barclay.argparser.CommandLineProgramProperties; -import org.broadinstitute.barclay.argparser.PositionalArguments; -import org.broadinstitute.barclay.argparser.WorkflowProperties; -import org.broadinstitute.barclay.argparser.WorkflowInput; -import org.broadinstitute.barclay.argparser.WorkflowOutput; -import org.broadinstitute.barclay.help.DocumentedFeature; -import org.broadinstitute.hellbender.cmdline.TestProgramGroup; - -import java.io.File; -import java.util.List; - -/** - * NOTE: this file needs to live in a separate package from the doc tests, otherwise all of the docs tests - * will pick it up as a command line program, which will change the outputs. - * - * CommandLineProgram test tool for testing WDL generation. Contains various combinations of - * commandline argument and workflow input/outputs with companion resources: - * - * scalar/array - * file/non-file - * required/optional - */ -@CommandLineProgramProperties( - summary = TestWDLTool.SUMMARY, - oneLineSummary = TestWDLTool.ONE_LINE_SUMMARY, - programGroup = TestProgramGroup.class) -@WorkflowProperties(memory ="8G") -@DocumentedFeature(groupName = TestWDLTool.GROUP_NAME) -public class TestWDLTool { - - public static final String SUMMARY = "WDL Test Tool"; - public static final String ONE_LINE_SUMMARY = "WDL Test Tool to test WDL Generation"; - public static final String GROUP_NAME = "WDL feature group name"; - - @PositionalArguments(doc = "Positional args doc") - @WorkflowInput(requiredCompanions={"posDictionary", "posIndex"}) - public List positionalListFileInput; - - // required input Files - - @Argument(fullName = "requiredScalarFileInputNoCompanions", - shortName = "requiredScalarFileInputNoCompanions", - doc = "requiredScalarFileInputNoCompanions doc", - optional = false) - @WorkflowInput - public File requiredScalarFileInputNoCompanions; - - @Argument(fullName = "requiredScalarFileInputRequiredCompanions", - shortName = "requiredScalarFileInputRequiredCompanions", - doc = "requiredScalarFileInputRequiredCompanions doc", - optional = false) - @WorkflowInput(requiredCompanions={"requiredScalarFileInputRequiredCompanionsDictionary", "requiredScalarFileInputRequiredCompanionsIndex"}, localizationOptional = true) - public File requiredScalarFileInputRequiredCompanions; - - @Argument(fullName = "requiredScalarFileInputOptionalCompanions", - shortName = "requiredScalarFileInputOptionalCompanions", - doc = "requiredScalarFileInputOptionalCompanions doc", - optional = false) - @WorkflowInput(optionalCompanions={"requiredScalarFileInputOptionalCompanionsDictionary", "requiredScalarFileInputOptionalCompanionsIndex"}, localizationOptional = true) - public File requiredScalarFileInputOptionalCompanions; - - @Argument(fullName = "requiredListFileInputNoCompanions", - shortName = "requiredListFileInputNoCompanions", - doc = "requiredListFileInputNoCompanions doc", - optional = false) - @WorkflowInput - public List requiredListFileInputNoCompanions; - - @Argument(fullName = "requiredListFileInputRequiredCompanions", - shortName = "requiredListFileInputRequiredCompanions", - doc = "requiredListFileInputRequiredCompanions doc", - optional = false) - @WorkflowInput(requiredCompanions={"requiredListFileInputRequiredCompanionsDictionary", "requiredListFileInputRequiredCompanionsIndex"}, localizationOptional = true) - public List requiredListFileInputRequiredCompanions; - - @Argument(fullName = "requiredListFileInputOptionalCompanions", - shortName = "requiredListFileInputOptionalCompanions", - doc = "requiredListFileInputOptionalCompanions doc", - optional = false) - @WorkflowInput(optionalCompanions={"requiredListFileInputOptionalCompanionsDictionary", "requiredListFileInputOptionalCompanionsIndex"}, localizationOptional = true) - public List requiredListFileInputOptionalCompanions; - - @Argument(fullName = "requiredListFileInputMixedCompanions", - shortName = "requiredListFileInputMixedCompanions", - doc = "requiredListFileInputMixedCompanions doc", - optional = false) - @WorkflowInput( - requiredCompanions = {"requiredListFileInputMixedCompanionsRequired"}, - optionalCompanions = {"requiredListFileInputMixedCompanionsOptional"}) - public List requiredListFileInputMixedCompanions; - - // required output Files - - @Argument(fullName = "requiredScalarFileOutputNoCompanions", - shortName = "requiredScalarFileOutputNoCompanions", - doc = "requiredScalarFileOutputNoCompanions doc", - optional = false) - @WorkflowOutput - public File requiredScalarFileOutputNoCompanions; - - @Argument(fullName = "requiredScalarFileOutputRequiredCompanions", - shortName = "requiredScalarFileOutputRequiredCompanions", - doc = "requiredScalarFileOutputRequiredCompanions doc", - optional = false) - @WorkflowOutput(requiredCompanions={"requiredScalarFileOutputRequiredCompanionsDictionary", "requiredScalarFileOutputRequiredCompanionsIndex"}) - public File requiredScalarFileOutputRequiredCompanions; - - @Argument(fullName = "requiredScalarFileOutputOptionalCompanions", - shortName = "requiredScalarFileOutputOptionalCompanions", - doc = "requiredScalarFileOutputOptionalCompanions doc", - optional = false) - @WorkflowOutput(optionalCompanions={"requiredScalarFileOutputOptionalCompanionsDictionary", "requiredScalarFileOutputOptionalCompanionsIndex"}) - public File requiredScalarFileOutputOptionalCompanions; - - @Argument(fullName = "requiredListFileOutputNoCompanions", - shortName = "requiredListFileOutputNoCompanions", - doc = "requiredListFileOutputNoCompanions doc", - optional = false) - @WorkflowOutput - public List requiredListFileOutputNoCompanions; - - @Argument(fullName = "requiredListFileOutputRequiredCompanions", - shortName = "requiredListFileOutputRequiredCompanions", - doc = "requiredListFileOutputRequiredCompanions doc", - optional = false) - @WorkflowOutput(requiredCompanions={"requiredListFileOutputRequiredCompanionsDictionary", "requiredListFileOutputRequiredCompanionsIndex"}) - public List requiredListFileOutputRequiredCompanions; - - @Argument(fullName = "requiredListFileOutputOptionalCompanions", - shortName = "requiredListFileOutputOptionalCompanions", - doc = "requiredListFileOutputOptionalCompanions doc", - optional = false) - @WorkflowOutput(optionalCompanions={"requiredListFileOutputOptionalCompanionsDictionary", "requiredListFileOutputOptionalCompanionsIndex"}) - public List requiredListFileOutputOptionalCompanions; - - @Argument(fullName = "requiredListFileOutputMixedCompanions", - shortName = "requiredListFileOutputMixedCompanions", - doc = "requiredListFileOutputMixedCompanions doc", - optional = false) - @WorkflowOutput( - requiredCompanions = {"requiredListFileOutputMixedCompanionsRequired"}, - optionalCompanions = {"requiredListFileOutputMixedCompanionsOptional"}) - public List requiredListFileOutputMixedCompanions; - - // optional input Files - - @Argument(fullName = "optionalScalarFileInputNoCompanions", - shortName = "optionalScalarFileInputNoCompanions", - doc = "optionalScalarFileInputNoCompanions doc", - optional = true) - @WorkflowInput - public File optionalScalarFileInputNoCompanions; - - @Argument(fullName = "optionalScalarFileInputOptionalCompanions", - shortName = "optionalScalarFileInputOptionalCompanions", - doc = "optionalScalarFileInputOptionalCompanions doc", - optional = true) - @WorkflowInput(optionalCompanions={"optionalScalarFileInputOptionalCompanionsDictionary", "optionalScalarFileInputOptionalCompanionsIndex"}) - public File optionalScalarFileInputOptionalCompanions; - - @Argument(fullName = "optionalScalarFileInputRequiredCompanions", - shortName = "optionalScalarFileInputRequiredCompanions", - doc = "optionalScalarFileInputRequiredCompanions doc", - optional = true) - @WorkflowInput(requiredCompanions={"optionalScalarFileInputRequiredCompanionsDictionary", "optionalScalarFileInputRequiredCompanionsIndex"}) - public File optionalScalarFileInputRequiredCompanions; - - @Argument(fullName = "optionalListFileInputNoCompanions", - shortName = "optionalListFileInputNoCompanions", - doc = "optionalListFileInputNoCompanions doc", - optional = true) - @WorkflowInput - public List optionalListFileInputNoCompanions; - - @Argument(fullName = "optionalListFileInputRequiredCompanions", - shortName = "optionalListFileInputRequiredCompanions", - doc = "optionalListFileInputRequiredCompanions doc", - optional = true) - @WorkflowInput(requiredCompanions={"optionalListFileInputRequiredCompanionsDictionary", "optionalListFileInputRequiredCompanionsIndex"}) - public List optionalListFileInputRequiredCompanions; - - @Argument(fullName = "optionalListFileInputOptionalCompanions", - shortName = "optionalListFileInputOptionalCompanions", - doc = "optionalListFileInputOptionalCompanions doc", - optional = true) - @WorkflowInput(optionalCompanions={"optionalListFileInputOptionalCompanionsDictionary", "optionalListFileInputOptionalCompanionsIndex"}) - public List optionalListFileInputOptionalCompanions; - - @Argument(fullName = "optionalListFileInputMixedCompanions", - shortName = "optionalListFileInputMixedCompanions", - doc = "optionalListFileInputMixedCompanions doc", - optional = true) - @WorkflowInput( - requiredCompanions = {"optionalListFileInputMixedCompanionsRequired"}, - optionalCompanions = {"optionalListFileInputMixedCompanionsOptional"}) - public List optionalListFileInputMixedCompanions; - - // optional output Files - - @Argument(fullName = "optionalScalarFileOutputNoCompanions", - shortName = "optionalScalarFileOutputNoCompanions", - doc = "optionalScalarFileOutputNoCompanions doc", - optional = true) - @WorkflowOutput - public File optionalScalarFileOutputNoCompanions; - - @Argument(fullName = "optionalScalarFileOutputRequiredCompanions", - shortName = "optionalScalarFileOutputRequiredCompanions", - doc = "optionalScalarFileOutputRequiredCompanions doc", - optional = true) - @WorkflowOutput(requiredCompanions={"optionalScalarFileOutputRequiredCompanionsDictionary", "optionalScalarFileOutputRequiredCompanionsIndex"}) - public File optionalScalarFileOutputRequiredCompanions; - - @Argument(fullName = "optionalScalarFileOutputOptionalCompanions", - shortName = "optionalScalarFileOutputOptionalCompanions", - doc = "optionalScalarFileOutputOptionalCompanions doc", - optional = true) - @WorkflowOutput(requiredCompanions={"optionalScalarFileOutputOptionalCompanionsDictionary", "optionalScalarFileOutputOptionalCompanionsIndex"}) - public File optionalScalarFileOutputOptionalCompanions; - - @Argument(fullName = "optionalListFileOutputRequiredCompanions", - shortName = "optionalListFileOutputRequiredCompanions", - doc = "optionalListFileOutputRequiredCompanions doc", - optional = true) - @WorkflowOutput(requiredCompanions={"optionalListFileOutputRequiredCompanionsDictionary", "optionalListFileOutputRequiredCompanionsIndex"}) - public List optionalListFileOutputRequiredCompanions; - - @Argument(fullName = "optionalListFileOutputMixedCompanions", - shortName = "optionalListFileOutputMixedCompanions", - doc = "optionalListFileOutputMixedCompanions doc", - optional = true) - @WorkflowOutput( - requiredCompanions = {"optionalListFileOutputMixedCompanionsRequired"}, - optionalCompanions = {"optionalListFileOutputMixedCompanionsOptional"}) - public List optionalListFileOutputMixedCompanions; - - // non-File types - - @Argument(fullName = "optionalScalarStringInput", - shortName = "optionalScalarStringInput", - doc = "optionalScalarStringInput doc", - optional = true) - public String optionalScalarStringInput; - - @Argument(fullName = "optionalListStringInput", - shortName = "optionalListStringInput", - doc = "optionalListStringInput doc", - optional = true) - public List optionalListStringInput; - - @Argument(fullName = "optionalScalarIntegerPrimitiveInput", - shortName = "optionalScalarIntegerPrimitiveInput", - doc = "optionalScalarIntegerPrimitiveInput doc", - optional = true) - public int optionalScalarIntegerPrimitiveInput; - - @Argument(fullName = "optionalScalarIntegerInput", - shortName = "optionalScalarIntegerInput", - doc = "optionalScalarIntegerInput doc", - optional = true) - public Integer optionalScalarIntegerInput; - - @Argument(fullName = "optionalListIntegerInput", - shortName = "optionalListIntegerInput", - doc = "optionalListIntegerInput doc", - optional = true) - public List optionalListIntegerInput; - - @Argument(fullName = "optionalScalarLongPrimitiveInput", - shortName = "optionalScalarLongPrimitiveInput", - doc = "optionalScalarLongPrimitiveInput doc", - optional = true) - public long optionalScalarLongPrimitiveInput; - - @Argument(fullName = "optionalScalarLongInput", - shortName = "optionalScalarLongInput", - doc = "optionalScalarLongInput doc", - optional = true) - public Long optionalScalarLongInput; - - @Argument(fullName = "optionalListLongInput", - shortName = "optionalListLongInput", - doc = "optionalListLongInput doc", - optional = true) - public List optionalListLongInput; - - @Argument(fullName = "optionalScalarFloatPrimitiveInput", - shortName = "optionalScalarFloatPrimitiveInput", - doc = "optionalScalarFloatPrimitiveInput doc", - optional = true) - public float optionalScalarFloatPrimitiveInput; - - @Argument(fullName = "optionalScalarFloatInput", - shortName = "optionalScalarFloatInput", - doc = "optionalScalarFloatInput doc", - optional = true) - public Float optionalScalarFloatInput; - - @Argument(fullName = "optionalListFloatInput", - shortName = "optionalListFloatInput", - doc = "optionalListFloatInput doc", - optional = true) - public List optionalListFloatInput; - - @Argument(fullName = "optionalScalarDoublePrimitiveInput", - shortName = "optionalScalarDoublePrimitiveInput", - doc = "optionalScalarDoublePrimitiveInput doc", - optional = true) - public double optionalScalarDoublePrimitiveInput; - - @Argument(fullName = "optionalScalarDoubleInput", - shortName = "optionalScalarDoubleInput", - doc = "optionalScalarDoubleInput doc", - optional = true) - public Double optionalScalarDoubleInput; - - @Argument(fullName = "optionalListDoubleInput", - shortName = "optionalListDoubleInput", - doc = "optionalListDoubleInput doc", - optional = true) - public List optionalListDoubleInput; - -} +//package org.broadinstitute.hellbender.utils.help; +// +//import org.broadinstitute.barclay.argparser.Argument; +//import org.broadinstitute.barclay.argparser.CommandLineProgramProperties; +//import org.broadinstitute.barclay.argparser.PositionalArguments; +//import org.broadinstitute.barclay.argparser.WorkflowProperties; +//import org.broadinstitute.barclay.argparser.WorkflowInput; +//import org.broadinstitute.barclay.argparser.WorkflowOutput; +//import org.broadinstitute.barclay.help.DocumentedFeature; +//import org.broadinstitute.hellbender.cmdline.TestProgramGroup; +// +//import java.io.File; +//import java.util.List; +// +///** +// * NOTE: this file needs to live in a separate package from the doc tests, otherwise all of the docs tests +// * will pick it up as a command line program, which will change the outputs. +// * +// * CommandLineProgram test tool for testing WDL generation. Contains various combinations of +// * commandline argument and workflow input/outputs with companion resources: +// * +// * scalar/array +// * file/non-file +// * required/optional +// */ +//@CommandLineProgramProperties( +// summary = TestWDLTool.SUMMARY, +// oneLineSummary = TestWDLTool.ONE_LINE_SUMMARY, +// programGroup = TestProgramGroup.class) +//@WorkflowProperties(memory ="8G") +//@DocumentedFeature(groupName = TestWDLTool.GROUP_NAME) +//public class TestWDLTool { +// +// public static final String SUMMARY = "WDL Test Tool"; +// public static final String ONE_LINE_SUMMARY = "WDL Test Tool to test WDL Generation"; +// public static final String GROUP_NAME = "WDL feature group name"; +// +// @PositionalArguments(doc = "Positional args doc") +// @WorkflowInput(requiredCompanions={"posDictionary", "posIndex"}) +// public List positionalListFileInput; +// +// // required input Files +// +// @Argument(fullName = "requiredScalarFileInputNoCompanions", +// shortName = "requiredScalarFileInputNoCompanions", +// doc = "requiredScalarFileInputNoCompanions doc", +// optional = false) +// @WorkflowInput +// public File requiredScalarFileInputNoCompanions; +// +// @Argument(fullName = "requiredScalarFileInputRequiredCompanions", +// shortName = "requiredScalarFileInputRequiredCompanions", +// doc = "requiredScalarFileInputRequiredCompanions doc", +// optional = false) +// @WorkflowInput(requiredCompanions={"requiredScalarFileInputRequiredCompanionsDictionary", "requiredScalarFileInputRequiredCompanionsIndex"}, localizationOptional = true) +// public File requiredScalarFileInputRequiredCompanions; +// +// @Argument(fullName = "requiredScalarFileInputOptionalCompanions", +// shortName = "requiredScalarFileInputOptionalCompanions", +// doc = "requiredScalarFileInputOptionalCompanions doc", +// optional = false) +// @WorkflowInput(optionalCompanions={"requiredScalarFileInputOptionalCompanionsDictionary", "requiredScalarFileInputOptionalCompanionsIndex"}, localizationOptional = true) +// public File requiredScalarFileInputOptionalCompanions; +// +// @Argument(fullName = "requiredListFileInputNoCompanions", +// shortName = "requiredListFileInputNoCompanions", +// doc = "requiredListFileInputNoCompanions doc", +// optional = false) +// @WorkflowInput +// public List requiredListFileInputNoCompanions; +// +// @Argument(fullName = "requiredListFileInputRequiredCompanions", +// shortName = "requiredListFileInputRequiredCompanions", +// doc = "requiredListFileInputRequiredCompanions doc", +// optional = false) +// @WorkflowInput(requiredCompanions={"requiredListFileInputRequiredCompanionsDictionary", "requiredListFileInputRequiredCompanionsIndex"}, localizationOptional = true) +// public List requiredListFileInputRequiredCompanions; +// +// @Argument(fullName = "requiredListFileInputOptionalCompanions", +// shortName = "requiredListFileInputOptionalCompanions", +// doc = "requiredListFileInputOptionalCompanions doc", +// optional = false) +// @WorkflowInput(optionalCompanions={"requiredListFileInputOptionalCompanionsDictionary", "requiredListFileInputOptionalCompanionsIndex"}, localizationOptional = true) +// public List requiredListFileInputOptionalCompanions; +// +// @Argument(fullName = "requiredListFileInputMixedCompanions", +// shortName = "requiredListFileInputMixedCompanions", +// doc = "requiredListFileInputMixedCompanions doc", +// optional = false) +// @WorkflowInput( +// requiredCompanions = {"requiredListFileInputMixedCompanionsRequired"}, +// optionalCompanions = {"requiredListFileInputMixedCompanionsOptional"}) +// public List requiredListFileInputMixedCompanions; +// +// // required output Files +// +// @Argument(fullName = "requiredScalarFileOutputNoCompanions", +// shortName = "requiredScalarFileOutputNoCompanions", +// doc = "requiredScalarFileOutputNoCompanions doc", +// optional = false) +// @WorkflowOutput +// public File requiredScalarFileOutputNoCompanions; +// +// @Argument(fullName = "requiredScalarFileOutputRequiredCompanions", +// shortName = "requiredScalarFileOutputRequiredCompanions", +// doc = "requiredScalarFileOutputRequiredCompanions doc", +// optional = false) +// @WorkflowOutput(requiredCompanions={"requiredScalarFileOutputRequiredCompanionsDictionary", "requiredScalarFileOutputRequiredCompanionsIndex"}) +// public File requiredScalarFileOutputRequiredCompanions; +// +// @Argument(fullName = "requiredScalarFileOutputOptionalCompanions", +// shortName = "requiredScalarFileOutputOptionalCompanions", +// doc = "requiredScalarFileOutputOptionalCompanions doc", +// optional = false) +// @WorkflowOutput(optionalCompanions={"requiredScalarFileOutputOptionalCompanionsDictionary", "requiredScalarFileOutputOptionalCompanionsIndex"}) +// public File requiredScalarFileOutputOptionalCompanions; +// +// @Argument(fullName = "requiredListFileOutputNoCompanions", +// shortName = "requiredListFileOutputNoCompanions", +// doc = "requiredListFileOutputNoCompanions doc", +// optional = false) +// @WorkflowOutput +// public List requiredListFileOutputNoCompanions; +// +// @Argument(fullName = "requiredListFileOutputRequiredCompanions", +// shortName = "requiredListFileOutputRequiredCompanions", +// doc = "requiredListFileOutputRequiredCompanions doc", +// optional = false) +// @WorkflowOutput(requiredCompanions={"requiredListFileOutputRequiredCompanionsDictionary", "requiredListFileOutputRequiredCompanionsIndex"}) +// public List requiredListFileOutputRequiredCompanions; +// +// @Argument(fullName = "requiredListFileOutputOptionalCompanions", +// shortName = "requiredListFileOutputOptionalCompanions", +// doc = "requiredListFileOutputOptionalCompanions doc", +// optional = false) +// @WorkflowOutput(optionalCompanions={"requiredListFileOutputOptionalCompanionsDictionary", "requiredListFileOutputOptionalCompanionsIndex"}) +// public List requiredListFileOutputOptionalCompanions; +// +// @Argument(fullName = "requiredListFileOutputMixedCompanions", +// shortName = "requiredListFileOutputMixedCompanions", +// doc = "requiredListFileOutputMixedCompanions doc", +// optional = false) +// @WorkflowOutput( +// requiredCompanions = {"requiredListFileOutputMixedCompanionsRequired"}, +// optionalCompanions = {"requiredListFileOutputMixedCompanionsOptional"}) +// public List requiredListFileOutputMixedCompanions; +// +// // optional input Files +// +// @Argument(fullName = "optionalScalarFileInputNoCompanions", +// shortName = "optionalScalarFileInputNoCompanions", +// doc = "optionalScalarFileInputNoCompanions doc", +// optional = true) +// @WorkflowInput +// public File optionalScalarFileInputNoCompanions; +// +// @Argument(fullName = "optionalScalarFileInputOptionalCompanions", +// shortName = "optionalScalarFileInputOptionalCompanions", +// doc = "optionalScalarFileInputOptionalCompanions doc", +// optional = true) +// @WorkflowInput(optionalCompanions={"optionalScalarFileInputOptionalCompanionsDictionary", "optionalScalarFileInputOptionalCompanionsIndex"}) +// public File optionalScalarFileInputOptionalCompanions; +// +// @Argument(fullName = "optionalScalarFileInputRequiredCompanions", +// shortName = "optionalScalarFileInputRequiredCompanions", +// doc = "optionalScalarFileInputRequiredCompanions doc", +// optional = true) +// @WorkflowInput(requiredCompanions={"optionalScalarFileInputRequiredCompanionsDictionary", "optionalScalarFileInputRequiredCompanionsIndex"}) +// public File optionalScalarFileInputRequiredCompanions; +// +// @Argument(fullName = "optionalListFileInputNoCompanions", +// shortName = "optionalListFileInputNoCompanions", +// doc = "optionalListFileInputNoCompanions doc", +// optional = true) +// @WorkflowInput +// public List optionalListFileInputNoCompanions; +// +// @Argument(fullName = "optionalListFileInputRequiredCompanions", +// shortName = "optionalListFileInputRequiredCompanions", +// doc = "optionalListFileInputRequiredCompanions doc", +// optional = true) +// @WorkflowInput(requiredCompanions={"optionalListFileInputRequiredCompanionsDictionary", "optionalListFileInputRequiredCompanionsIndex"}) +// public List optionalListFileInputRequiredCompanions; +// +// @Argument(fullName = "optionalListFileInputOptionalCompanions", +// shortName = "optionalListFileInputOptionalCompanions", +// doc = "optionalListFileInputOptionalCompanions doc", +// optional = true) +// @WorkflowInput(optionalCompanions={"optionalListFileInputOptionalCompanionsDictionary", "optionalListFileInputOptionalCompanionsIndex"}) +// public List optionalListFileInputOptionalCompanions; +// +// @Argument(fullName = "optionalListFileInputMixedCompanions", +// shortName = "optionalListFileInputMixedCompanions", +// doc = "optionalListFileInputMixedCompanions doc", +// optional = true) +// @WorkflowInput( +// requiredCompanions = {"optionalListFileInputMixedCompanionsRequired"}, +// optionalCompanions = {"optionalListFileInputMixedCompanionsOptional"}) +// public List optionalListFileInputMixedCompanions; +// +// // optional output Files +// +// @Argument(fullName = "optionalScalarFileOutputNoCompanions", +// shortName = "optionalScalarFileOutputNoCompanions", +// doc = "optionalScalarFileOutputNoCompanions doc", +// optional = true) +// @WorkflowOutput +// public File optionalScalarFileOutputNoCompanions; +// +// @Argument(fullName = "optionalScalarFileOutputRequiredCompanions", +// shortName = "optionalScalarFileOutputRequiredCompanions", +// doc = "optionalScalarFileOutputRequiredCompanions doc", +// optional = true) +// @WorkflowOutput(requiredCompanions={"optionalScalarFileOutputRequiredCompanionsDictionary", "optionalScalarFileOutputRequiredCompanionsIndex"}) +// public File optionalScalarFileOutputRequiredCompanions; +// +// @Argument(fullName = "optionalScalarFileOutputOptionalCompanions", +// shortName = "optionalScalarFileOutputOptionalCompanions", +// doc = "optionalScalarFileOutputOptionalCompanions doc", +// optional = true) +// @WorkflowOutput(requiredCompanions={"optionalScalarFileOutputOptionalCompanionsDictionary", "optionalScalarFileOutputOptionalCompanionsIndex"}) +// public File optionalScalarFileOutputOptionalCompanions; +// +// @Argument(fullName = "optionalListFileOutputRequiredCompanions", +// shortName = "optionalListFileOutputRequiredCompanions", +// doc = "optionalListFileOutputRequiredCompanions doc", +// optional = true) +// @WorkflowOutput(requiredCompanions={"optionalListFileOutputRequiredCompanionsDictionary", "optionalListFileOutputRequiredCompanionsIndex"}) +// public List optionalListFileOutputRequiredCompanions; +// +// @Argument(fullName = "optionalListFileOutputMixedCompanions", +// shortName = "optionalListFileOutputMixedCompanions", +// doc = "optionalListFileOutputMixedCompanions doc", +// optional = true) +// @WorkflowOutput( +// requiredCompanions = {"optionalListFileOutputMixedCompanionsRequired"}, +// optionalCompanions = {"optionalListFileOutputMixedCompanionsOptional"}) +// public List optionalListFileOutputMixedCompanions; +// +// // non-File types +// +// @Argument(fullName = "optionalScalarStringInput", +// shortName = "optionalScalarStringInput", +// doc = "optionalScalarStringInput doc", +// optional = true) +// public String optionalScalarStringInput; +// +// @Argument(fullName = "optionalListStringInput", +// shortName = "optionalListStringInput", +// doc = "optionalListStringInput doc", +// optional = true) +// public List optionalListStringInput; +// +// @Argument(fullName = "optionalScalarIntegerPrimitiveInput", +// shortName = "optionalScalarIntegerPrimitiveInput", +// doc = "optionalScalarIntegerPrimitiveInput doc", +// optional = true) +// public int optionalScalarIntegerPrimitiveInput; +// +// @Argument(fullName = "optionalScalarIntegerInput", +// shortName = "optionalScalarIntegerInput", +// doc = "optionalScalarIntegerInput doc", +// optional = true) +// public Integer optionalScalarIntegerInput; +// +// @Argument(fullName = "optionalListIntegerInput", +// shortName = "optionalListIntegerInput", +// doc = "optionalListIntegerInput doc", +// optional = true) +// public List optionalListIntegerInput; +// +// @Argument(fullName = "optionalScalarLongPrimitiveInput", +// shortName = "optionalScalarLongPrimitiveInput", +// doc = "optionalScalarLongPrimitiveInput doc", +// optional = true) +// public long optionalScalarLongPrimitiveInput; +// +// @Argument(fullName = "optionalScalarLongInput", +// shortName = "optionalScalarLongInput", +// doc = "optionalScalarLongInput doc", +// optional = true) +// public Long optionalScalarLongInput; +// +// @Argument(fullName = "optionalListLongInput", +// shortName = "optionalListLongInput", +// doc = "optionalListLongInput doc", +// optional = true) +// public List optionalListLongInput; +// +// @Argument(fullName = "optionalScalarFloatPrimitiveInput", +// shortName = "optionalScalarFloatPrimitiveInput", +// doc = "optionalScalarFloatPrimitiveInput doc", +// optional = true) +// public float optionalScalarFloatPrimitiveInput; +// +// @Argument(fullName = "optionalScalarFloatInput", +// shortName = "optionalScalarFloatInput", +// doc = "optionalScalarFloatInput doc", +// optional = true) +// public Float optionalScalarFloatInput; +// +// @Argument(fullName = "optionalListFloatInput", +// shortName = "optionalListFloatInput", +// doc = "optionalListFloatInput doc", +// optional = true) +// public List optionalListFloatInput; +// +// @Argument(fullName = "optionalScalarDoublePrimitiveInput", +// shortName = "optionalScalarDoublePrimitiveInput", +// doc = "optionalScalarDoublePrimitiveInput doc", +// optional = true) +// public double optionalScalarDoublePrimitiveInput; +// +// @Argument(fullName = "optionalScalarDoubleInput", +// shortName = "optionalScalarDoubleInput", +// doc = "optionalScalarDoubleInput doc", +// optional = true) +// public Double optionalScalarDoubleInput; +// +// @Argument(fullName = "optionalListDoubleInput", +// shortName = "optionalListDoubleInput", +// doc = "optionalListDoubleInput doc", +// optional = true) +// public List optionalListDoubleInput; +// +//} diff --git a/src/test/java/org/broadinstitute/hellbender/utils/help/WDLGenerationIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/utils/help/WDLGenerationIntegrationTest.java index ba588f89faa..96b40786e48 100644 --- a/src/test/java/org/broadinstitute/hellbender/utils/help/WDLGenerationIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/utils/help/WDLGenerationIntegrationTest.java @@ -1,142 +1,142 @@ -package org.broadinstitute.hellbender.utils.help; - -import org.json.simple.parser.JSONParser; -import org.broadinstitute.barclay.argparser.ClassFinder; -import org.broadinstitute.hellbender.CommandLineProgramTest; -import org.broadinstitute.hellbender.cmdline.CommandLineProgram; -import org.json.simple.parser.ParseException; -import org.testng.Assert; -import org.testng.annotations.Test; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import org.broadinstitute.hellbender.testutils.IntegrationTestSpec; - -/** - * Smoke test to run doc gen on a subset of classes to make sure it doesn't regress. - */ -public class WDLGenerationIntegrationTest extends CommandLineProgramTest { - - final private static List wdlGenTestPackages; - static { - final ClassFinder classFinder = new ClassFinder(); - classFinder.find("org.broadinstitute.hellbender", CommandLineProgram.class); - wdlGenTestPackages = Collections.unmodifiableList( - classFinder.getClasses() - .stream() - .map(cl -> cl.getPackage().getName()) - .collect(Collectors.toSet()) // uniquify - .stream() - .collect(Collectors.toList()) - ); - } - - @Test - private void wdlGenSmokeTest() throws IOException, ParseException { - final File wdlTestTargetDir = createTempDir("wdlgentest"); - doWDLGenTest(wdlGenTestPackages, "src/main/java", wdlTestTargetDir); - - // load and parse every generated JSON file to make sure they're valid JSON - final File[] jsonFiles = wdlTestTargetDir.listFiles((File dir, String name) -> name.endsWith(".json")); - for (final File f : jsonFiles) { - assertValidJSONFile(f); - } - } - - // This test uses a test tool with all combinations of input/output, list/scalar, across all types, including - // companions, to ensure that the various templates use the template maps correctly. - @Test - private void wdlGenTemplateTest() throws IOException, ParseException { - final File expectedResultsDir = new File("src/test/resources/org/broadinstitute/hellbender/utils/WDLTestExpectedOutputs/"); - final File wdlTestTargetDir = createTempDir("wdlgentemplatetest"); - - doWDLGenTest( - Collections.singletonList("org.broadinstitute.hellbender.utils.help"), - "src/test/java", - wdlTestTargetDir); - - // index - final String indexHTML = "index.html"; - IntegrationTestSpec.assertEqualTextFiles( - new File(expectedResultsDir, "expected" + indexHTML), - new File(wdlTestTargetDir, indexHTML)); - - // wdls - final String defaultWDL = "TestWDLTool.wdl"; - IntegrationTestSpec.assertEqualTextFiles( - new File(expectedResultsDir, "expected" + defaultWDL), - new File(wdlTestTargetDir, defaultWDL)); - - final String allArgsWDL = "TestWDLToolAllArgs.wdl"; - IntegrationTestSpec.assertEqualTextFiles( - new File(expectedResultsDir, "expected" + allArgsWDL), - new File(wdlTestTargetDir, allArgsWDL)); - - final String allArgsTestWDL = "TestWDLToolAllArgsTest.wdl"; - IntegrationTestSpec.assertEqualTextFiles( - new File(expectedResultsDir, "expected" + allArgsTestWDL), - new File(wdlTestTargetDir, allArgsTestWDL)); - - // jsons - final String defaultWDLInputs = "TestWDLToolInputs.json"; - IntegrationTestSpec.assertEqualTextFiles( - new File(expectedResultsDir, "expected" + defaultWDLInputs), - new File(wdlTestTargetDir, defaultWDLInputs)); - assertValidJSONFile(new File(wdlTestTargetDir, defaultWDLInputs)); - - final String allArgsWDLInputs = "TestWDLToolAllArgsInputs.json"; - IntegrationTestSpec.assertEqualTextFiles( - new File(expectedResultsDir, "expected" + allArgsWDLInputs), - new File(wdlTestTargetDir, allArgsWDLInputs)); - assertValidJSONFile(new File(wdlTestTargetDir, allArgsWDLInputs)); - - final String allArgsTestWDLInputs = "TestWDLToolAllArgsTestInputs.json"; - IntegrationTestSpec.assertEqualTextFiles( - new File(expectedResultsDir, "expected" + allArgsTestWDLInputs), - new File(wdlTestTargetDir, allArgsTestWDLInputs)); - assertValidJSONFile(new File(wdlTestTargetDir, allArgsTestWDLInputs)); - } - - private void assertValidJSONFile(final File targetFile) throws IOException, ParseException { - try (FileReader fileReader = new FileReader(targetFile)) { - new JSONParser().parse(fileReader); - } - } - - // suppress deprecation warning on Java 11 since we're using deprecated javadoc APIs - @SuppressWarnings({"deprecation","removal"}) - private void doWDLGenTest(List testPackages, final String sourcePath, final File wdlTestTargetDir) { - - final String[] argArray = new String[]{ - "javadoc", - "-doclet", GATKWDLDoclet.class.getName(), - "-docletpath", System.getProperty("java.class.path"), - "-sourcepath", sourcePath, - "-settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/wdlTemplates", - "-d", wdlTestTargetDir.getAbsolutePath(), // directory must exist - "-output-file-extension", "wdl", - "-build-timestamp", "2016/11/11 11:11:11", - "-build-dir", ".", - "-absolute-version", "1.2.3.4", - "-verbose" - }; - - final List docArgList = new ArrayList<>(); - docArgList.addAll(Arrays.asList(argArray)); - docArgList.add("-cp"); - docArgList.add(System.getProperty("java.class.path")); - docArgList.addAll(testPackages); - - // Run javadoc in the current JVM with the custom WDL doclet. This is a smoke test; we just want to - // make sure it doesn't blow up (the gradle task gatkWDLGenValidation does womtool validation on the results). - Assert.assertEquals(com.sun.tools.javadoc.Main.execute(docArgList.toArray(new String[] {})), 0); - } - -} +//package org.broadinstitute.hellbender.utils.help; +// +//import org.json.simple.parser.JSONParser; +//import org.broadinstitute.barclay.argparser.ClassFinder; +//import org.broadinstitute.hellbender.CommandLineProgramTest; +//import org.broadinstitute.hellbender.cmdline.CommandLineProgram; +//import org.json.simple.parser.ParseException; +//import org.testng.Assert; +//import org.testng.annotations.Test; +// +//import java.io.File; +//import java.io.FileReader; +//import java.io.IOException; +//import java.util.ArrayList; +//import java.util.Arrays; +//import java.util.Collections; +//import java.util.List; +//import java.util.stream.Collectors; +// +//import org.broadinstitute.hellbender.testutils.IntegrationTestSpec; +// +///** +// * Smoke test to run doc gen on a subset of classes to make sure it doesn't regress. +// */ +//public class WDLGenerationIntegrationTest extends CommandLineProgramTest { +// +// final private static List wdlGenTestPackages; +// static { +// final ClassFinder classFinder = new ClassFinder(); +// classFinder.find("org.broadinstitute.hellbender", CommandLineProgram.class); +// wdlGenTestPackages = Collections.unmodifiableList( +// classFinder.getClasses() +// .stream() +// .map(cl -> cl.getPackage().getName()) +// .collect(Collectors.toSet()) // uniquify +// .stream() +// .collect(Collectors.toList()) +// ); +// } +// +// @Test +// private void wdlGenSmokeTest() throws IOException, ParseException { +// final File wdlTestTargetDir = createTempDir("wdlgentest"); +// doWDLGenTest(wdlGenTestPackages, "src/main/java", wdlTestTargetDir); +// +// // load and parse every generated JSON file to make sure they're valid JSON +// final File[] jsonFiles = wdlTestTargetDir.listFiles((File dir, String name) -> name.endsWith(".json")); +// for (final File f : jsonFiles) { +// assertValidJSONFile(f); +// } +// } +// +// // This test uses a test tool with all combinations of input/output, list/scalar, across all types, including +// // companions, to ensure that the various templates use the template maps correctly. +// @Test +// private void wdlGenTemplateTest() throws IOException, ParseException { +// final File expectedResultsDir = new File("src/test/resources/org/broadinstitute/hellbender/utils/WDLTestExpectedOutputs/"); +// final File wdlTestTargetDir = createTempDir("wdlgentemplatetest"); +// +// doWDLGenTest( +// Collections.singletonList("org.broadinstitute.hellbender.utils.help"), +// "src/test/java", +// wdlTestTargetDir); +// +// // index +// final String indexHTML = "index.html"; +// IntegrationTestSpec.assertEqualTextFiles( +// new File(expectedResultsDir, "expected" + indexHTML), +// new File(wdlTestTargetDir, indexHTML)); +// +// // wdls +// final String defaultWDL = "TestWDLTool.wdl"; +// IntegrationTestSpec.assertEqualTextFiles( +// new File(expectedResultsDir, "expected" + defaultWDL), +// new File(wdlTestTargetDir, defaultWDL)); +// +// final String allArgsWDL = "TestWDLToolAllArgs.wdl"; +// IntegrationTestSpec.assertEqualTextFiles( +// new File(expectedResultsDir, "expected" + allArgsWDL), +// new File(wdlTestTargetDir, allArgsWDL)); +// +// final String allArgsTestWDL = "TestWDLToolAllArgsTest.wdl"; +// IntegrationTestSpec.assertEqualTextFiles( +// new File(expectedResultsDir, "expected" + allArgsTestWDL), +// new File(wdlTestTargetDir, allArgsTestWDL)); +// +// // jsons +// final String defaultWDLInputs = "TestWDLToolInputs.json"; +// IntegrationTestSpec.assertEqualTextFiles( +// new File(expectedResultsDir, "expected" + defaultWDLInputs), +// new File(wdlTestTargetDir, defaultWDLInputs)); +// assertValidJSONFile(new File(wdlTestTargetDir, defaultWDLInputs)); +// +// final String allArgsWDLInputs = "TestWDLToolAllArgsInputs.json"; +// IntegrationTestSpec.assertEqualTextFiles( +// new File(expectedResultsDir, "expected" + allArgsWDLInputs), +// new File(wdlTestTargetDir, allArgsWDLInputs)); +// assertValidJSONFile(new File(wdlTestTargetDir, allArgsWDLInputs)); +// +// final String allArgsTestWDLInputs = "TestWDLToolAllArgsTestInputs.json"; +// IntegrationTestSpec.assertEqualTextFiles( +// new File(expectedResultsDir, "expected" + allArgsTestWDLInputs), +// new File(wdlTestTargetDir, allArgsTestWDLInputs)); +// assertValidJSONFile(new File(wdlTestTargetDir, allArgsTestWDLInputs)); +// } +// +// private void assertValidJSONFile(final File targetFile) throws IOException, ParseException { +// try (FileReader fileReader = new FileReader(targetFile)) { +// new JSONParser().parse(fileReader); +// } +// } +// +// // suppress deprecation warning on Java 11 since we're using deprecated javadoc APIs +// @SuppressWarnings({"deprecation","removal"}) +// private void doWDLGenTest(List testPackages, final String sourcePath, final File wdlTestTargetDir) { +// +// final String[] argArray = new String[]{ +// "javadoc", +// "-doclet", GATKWDLDoclet.class.getName(), +// "-docletpath", System.getProperty("java.class.path"), +// "-sourcepath", sourcePath, +// "-settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/wdlTemplates", +// "-d", wdlTestTargetDir.getAbsolutePath(), // directory must exist +// "-output-file-extension", "wdl", +// "-build-timestamp", "2016/11/11 11:11:11", +// "-build-dir", ".", +// "-absolute-version", "1.2.3.4", +// "-verbose" +// }; +// +// final List docArgList = new ArrayList<>(); +// docArgList.addAll(Arrays.asList(argArray)); +// docArgList.add("-cp"); +// docArgList.add(System.getProperty("java.class.path")); +// docArgList.addAll(testPackages); +// +// // Run javadoc in the current JVM with the custom WDL doclet. This is a smoke test; we just want to +// // make sure it doesn't blow up (the gradle task gatkWDLGenValidation does womtool validation on the results). +// Assert.assertEquals(com.sun.tools.javadoc.Main.execute(docArgList.toArray(new String[] {})), 0); +// } +// +//} diff --git a/src/test/java/org/broadinstitute/hellbender/utils/io/IOUtilsUnitTest.java b/src/test/java/org/broadinstitute/hellbender/utils/io/IOUtilsUnitTest.java index 6a4a4bd9f08..2ac6a803dc1 100644 --- a/src/test/java/org/broadinstitute/hellbender/utils/io/IOUtilsUnitTest.java +++ b/src/test/java/org/broadinstitute/hellbender/utils/io/IOUtilsUnitTest.java @@ -465,6 +465,11 @@ public void testAppendPathToDir() throws Exception { Assert.assertEquals(IOUtils.appendPathToDir("dir/", "/file"), "/file"); Assert.assertEquals(IOUtils.appendPathToDir("/path/to/dir", "anotherdir/file"), "/path/to/dir/anotherdir/file"); + // see https://github.com/eclipse/jetty.project/issues/8549 + if (isGATKDockerContainer()) { + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } // hdfs: URI MiniDFSCluster cluster = null; try { @@ -529,6 +534,11 @@ public void testUnsuccessfulCanReadFileCheck(final File file) { @Test public void testCreateDirectory() throws IOException { + // see https://github.com/eclipse/jetty.project/issues/8549 + if (isGATKDockerContainer()) { + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } // hdfs Path tempPath = IOUtils.getPath(MiniClusterUtils.getWorkingDir(MiniClusterUtils.getMiniCluster()).toUri().toString()) .resolve("temp"); diff --git a/src/test/java/org/broadinstitute/hellbender/utils/mcmc/PosteriorSummaryUtilsUnitTest.java b/src/test/java/org/broadinstitute/hellbender/utils/mcmc/PosteriorSummaryUtilsUnitTest.java deleted file mode 100644 index af755460107..00000000000 --- a/src/test/java/org/broadinstitute/hellbender/utils/mcmc/PosteriorSummaryUtilsUnitTest.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.broadinstitute.hellbender.utils.mcmc; - -import org.apache.commons.lang3.ArrayUtils; -import org.apache.commons.math3.distribution.BetaDistribution; -import org.apache.commons.math3.distribution.NormalDistribution; -import org.apache.commons.math3.random.RandomGenerator; -import org.apache.commons.math3.random.RandomGeneratorFactory; -import org.apache.spark.api.java.JavaSparkContext; -import org.broadinstitute.hellbender.GATKBaseTest; -import org.broadinstitute.hellbender.engine.spark.SparkContextFactory; -import org.testng.Assert; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Random; -import java.util.stream.Collectors; - -/** - * Tests for {@link PosteriorSummaryUtils}. Tests that posterior mode and highest-posterior-density credible interval - * are recovered for samples drawn from various posterior distributions. - * - * @author Samuel Lee <slee@broadinstitute.org> - */ -public final class PosteriorSummaryUtilsUnitTest extends GATKBaseTest { - private static final int RANDOM_SEED = 42; - private static final RandomGenerator rng = RandomGeneratorFactory.createRandomGenerator(new Random(RANDOM_SEED)); - - private static final List normalSamples = toList(new NormalDistribution(rng, 10., 1).sample(100)); - private static final List normalSamplesSmall = toList(new NormalDistribution(rng, 10., 1).sample(10)); - private static final List normalSamplesScaled = toList(new NormalDistribution(rng, 10., 0.01).sample(100)); - - private static final List betaSamples = toList(new BetaDistribution(rng, 10, 4).sample(1000)); - private static final List betaSamplesEdgeMode = toList(new BetaDistribution(rng, 10, 1).sample(1000)); - private static final List betaSamplesMAF = Arrays.stream(ArrayUtils.addAll( - new BetaDistribution(rng, 10, 6).sample(1000), - new BetaDistribution(rng, 6, 10).sample(1000))) - .boxed().filter(d -> d <= 0.5).collect(Collectors.toList()); //mimics minor-allele-fraction posterior - - private static final List identicalSamples = Collections.nCopies(1000, 1.); - private static final List withNaNSamples = toList(new double[]{Double.NEGATIVE_INFINITY, 0., 1.}); - - @DataProvider(name = "dataKernelDensityEstimation") - public Object[][] dataHPD() { - return new Object[][]{ - //samples, alpha, relative error tolerance, expected (calculated using Mathematica for Beta tests) - {normalSamples, 0.32, 0.05, new PosteriorSummary(10., 9., 11.)}, - {normalSamples, 0.05, 0.05, new PosteriorSummary(10., 8., 12.)}, - {normalSamplesSmall, 0.32, 0.15, new PosteriorSummary(10., 9., 11.)}, - {normalSamplesSmall, 0.05, 0.15, new PosteriorSummary(10., 8., 12.)}, - {normalSamplesScaled, 0.32, 0.05, new PosteriorSummary(10., 9.99, 10.01)}, - {normalSamplesScaled, 0.05, 0.05, new PosteriorSummary(10., 9.98, 10.02)}, - {betaSamples, 0.32, 0.05, new PosteriorSummary(0.75, 0.621, 0.854)}, - {betaSamples, 0.05, 0.05, new PosteriorSummary(0.75, 0.487, 0.925)}, - {betaSamplesEdgeMode, 0.32, 0.05, new PosteriorSummary(1.0, 0.8923, 1.)}, - {betaSamplesEdgeMode, 0.05, 0.05, new PosteriorSummary(1.0, 0.7411, 1.)}, - {betaSamplesMAF, 0.32, 0.05, new PosteriorSummary(0.415, 0.312, 0.5)}, - {betaSamplesMAF, 0.05, 0.05, new PosteriorSummary(0.415, 0.191, 0.5)}, - {identicalSamples, 0.32, 0.01, new PosteriorSummary(1., 1., 1.)}, - {withNaNSamples, 0.32, 0.01, new PosteriorSummary(Double.NaN, Double.NaN, Double.NaN)} - }; - } - - @Test(dataProvider = "dataKernelDensityEstimation") - public void testCalculateHighestPosteriorDensitySummary(final List samples, - final double credibleIntervalAlpha, - final double relativeError, - final PosteriorSummary expected) { - final JavaSparkContext ctx = SparkContextFactory.getTestSparkContext(); - final PosteriorSummary result = - PosteriorSummaryUtils.calculateHighestPosteriorDensitySummary(samples, credibleIntervalAlpha, ctx); - assertEquals(result, expected, relativeError); - } - - @Test(dataProvider = "dataKernelDensityEstimation") - public void testCalculatePosteriorMode(final List samples, - final double credibleIntervalAlpha, - final double relativeError, - final PosteriorSummary expected) { - final JavaSparkContext ctx = SparkContextFactory.getTestSparkContext(); - final double result = PosteriorSummaryUtils.calculatePosteriorMode(samples, ctx); - Assert.assertTrue(withinRelativeError(result, expected.getCenter(), relativeError)); - - } - - private static boolean withinRelativeError(final double x, final double xTrue, final double relativeError) { - if (Double.isNaN(xTrue)) { - return Double.isNaN(x); - } - return Math.abs(x - xTrue) < Math.abs(relativeError * xTrue); - } - - private static List toList(double[] array) { - return Arrays.stream(array).boxed().collect(Collectors.toList()); } - - private static void assertEquals(final PosteriorSummary result, final PosteriorSummary expected, final double relativeError) { - Assert.assertTrue(withinRelativeError(result.getCenter(), expected.getCenter(), relativeError)); - Assert.assertTrue(withinRelativeError(result.getLower(), expected.getLower(), relativeError)); - Assert.assertTrue(withinRelativeError(result.getUpper(), expected.getUpper(), relativeError)); - } -} \ No newline at end of file diff --git a/src/test/java/org/broadinstitute/hellbender/utils/spark/SparkUtilsUnitTest.java b/src/test/java/org/broadinstitute/hellbender/utils/spark/SparkUtilsUnitTest.java index 16995360956..8c36208d1cb 100644 --- a/src/test/java/org/broadinstitute/hellbender/utils/spark/SparkUtilsUnitTest.java +++ b/src/test/java/org/broadinstitute/hellbender/utils/spark/SparkUtilsUnitTest.java @@ -22,6 +22,7 @@ import org.broadinstitute.hellbender.utils.read.ReadQueryNameComparator; import org.broadinstitute.hellbender.testutils.MiniClusterUtils; import org.testng.Assert; +import org.testng.SkipException; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import scala.Tuple2; @@ -73,6 +74,11 @@ public void testConvertHeaderlessHadoopBamShardToBam() { @Test public void testPathExists() throws Exception { + // see https://github.com/eclipse/jetty.project/issues/8549 + if (isGATKDockerContainer()) { + // for the docker tests, the test dependencies are in a separate jar + throw new SkipException("skipping due to jetty jar parsing issues (https://github.com/eclipse/jetty.project/issues/8549)"); + } MiniClusterUtils.runOnIsolatedMiniCluster( cluster -> { //use the HDFS on the mini cluster final Path workingDirectory = MiniClusterUtils.getWorkingDir(cluster); diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.af.param index b45a7d96f63..bb6129c4004 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.070124 1.081592 1.099740 1.106582 1.112816 1.119808 1.130594 1.135492 1.150073 -BIAS_VARIANCE 0.388637 0.426262 0.437928 0.448314 0.464513 0.477831 0.482795 0.487486 0.492007 -OUTLIER_PROBABILITY 0.062308 0.070366 0.083632 0.092903 0.099303 0.105473 0.110069 0.119230 0.132290 +MEAN_BIAS 1.092482 1.106161 1.113179 1.124902 1.131327 1.144333 1.154568 1.164827 1.180697 +BIAS_VARIANCE 0.434015 0.446432 0.459002 0.467580 0.475156 0.484281 0.487932 0.492417 0.495571 +OUTLIER_PROBABILITY 0.057314 0.069014 0.076118 0.079128 0.082268 0.089037 0.093737 0.100190 0.110147 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.seg index 5a67d069c81..f878e6f373d 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.seg @@ -2,194 +2,194 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 138125 138148 0 2 NaN NaN NaN 0.468342 0.487890 0.497042 -20 139409 139576 0 3 NaN NaN NaN 0.463572 0.488142 0.497364 -20 168466 259156 0 12 NaN NaN NaN 0.472111 0.483950 0.494138 -20 259818 259818 0 1 NaN NaN NaN 0.443801 0.488459 0.498354 -20 259969 278806 0 2 NaN NaN NaN 0.442325 0.470467 0.496762 -20 368905 377226 0 3 NaN NaN NaN 0.456473 0.482737 0.498447 -20 389456 402921 0 4 NaN NaN NaN 0.455100 0.486244 0.496886 -20 425606 744415 0 4 NaN NaN NaN 0.455163 0.483849 0.496749 -20 744570 744570 0 1 NaN NaN NaN 0.464890 0.486580 0.497012 -20 746098 1285933 0 5 NaN NaN NaN 0.441010 0.484706 0.498340 -20 1424303 1424303 0 1 NaN NaN NaN 0.449355 0.486702 0.497371 -20 1426393 1458504 0 3 NaN NaN NaN 0.447496 0.485389 0.497493 -20 1517979 1552430 0 8 NaN NaN NaN 0.456186 0.487521 0.498754 -20 1559330 1592312 0 6 NaN NaN NaN 0.422084 0.486254 0.496836 -20 1600524 1600524 0 1 NaN NaN NaN 0.474424 0.489624 0.498575 -20 1610790 1610894 0 3 NaN NaN NaN 0.433739 0.483982 0.495920 -20 1615883 1616892 0 2 NaN NaN NaN 0.457933 0.485226 0.498071 -20 1895889 1896060 0 3 NaN NaN NaN 0.454878 0.479672 0.496963 -20 2056358 2056358 0 1 NaN NaN NaN 0.462289 0.484747 0.497444 -20 2315929 2517377 0 3 NaN NaN NaN 0.460933 0.487107 0.499312 -20 2517432 2517825 0 2 NaN NaN NaN 0.453503 0.490313 0.498821 -20 2552805 2552805 0 1 NaN NaN NaN 0.466926 0.487974 0.497018 -20 2593006 2621998 0 9 NaN NaN NaN 0.445679 0.486923 0.498480 -20 2633380 2779257 0 3 NaN NaN NaN 0.425762 0.481909 0.496109 -20 2796471 2796471 0 1 NaN NaN NaN 0.443308 0.482128 0.498896 -20 2818801 2996589 0 5 NaN NaN NaN 0.458859 0.490855 0.498773 -20 3002889 3199446 0 4 NaN NaN NaN 0.460050 0.489440 0.497987 -20 3624830 3640823 0 2 NaN NaN NaN 0.462718 0.484409 0.497018 -20 3641881 3653149 0 5 NaN NaN NaN 0.461182 0.484415 0.498307 -20 3654433 3686436 0 12 NaN NaN NaN 0.472959 0.491259 0.498054 -20 3721456 3731622 0 2 NaN NaN NaN 0.441148 0.476612 0.496803 -20 3732633 3838441 0 2 NaN NaN NaN 0.436229 0.483034 0.497759 -20 3870124 4055656 0 2 NaN NaN NaN 0.454476 0.487759 0.497583 -20 4155948 4162411 0 2 NaN NaN NaN 0.442848 0.488813 0.498585 -20 4202802 4705756 0 4 NaN NaN NaN 0.447581 0.486501 0.498165 -20 4843609 4843609 0 1 NaN NaN NaN 0.430102 0.470866 0.496755 -20 4880308 5261206 0 4 NaN NaN NaN 0.448203 0.488387 0.498642 -20 5273253 5273382 0 3 NaN NaN NaN 0.472879 0.488492 0.498262 -20 5283256 5482307 0 8 NaN NaN NaN 0.454268 0.489470 0.498141 -20 5528518 6064839 0 8 NaN NaN NaN 0.459994 0.485212 0.497703 -20 6065731 6100230 0 5 NaN NaN NaN 0.459268 0.490527 0.498889 -20 6194421 6195664 0 2 NaN NaN NaN 0.466049 0.487531 0.499059 -20 7866261 7999537 0 4 NaN NaN NaN 0.441573 0.479925 0.494714 -20 8626903 8626903 0 1 NaN NaN NaN 0.463021 0.490744 0.499274 -20 8665751 8703145 0 4 NaN NaN NaN 0.453360 0.486540 0.498113 -20 8707900 8707927 0 2 NaN NaN NaN 0.417761 0.478538 0.495056 -20 8737734 8769423 0 4 NaN NaN NaN 0.459640 0.485114 0.497287 -20 8770318 8770932 0 3 NaN NaN NaN 0.437661 0.487690 0.496813 -20 8773096 8773096 0 1 NaN NaN NaN 0.463463 0.488458 0.497713 -20 8773155 9417870 0 2 NaN NaN NaN 0.445135 0.479905 0.498432 -20 9424810 9510263 0 3 NaN NaN NaN 0.440448 0.488554 0.496925 -20 10024951 10024951 0 1 NaN NaN NaN 0.457144 0.490013 0.498595 -20 10026357 10032413 0 4 NaN NaN NaN 0.441702 0.483175 0.498743 -20 10329888 10393145 0 3 NaN NaN NaN 0.468849 0.490361 0.498691 -20 10438780 10438780 0 1 NaN NaN NaN 0.466338 0.486088 0.497808 -20 10629129 10629525 0 2 NaN NaN NaN 0.459745 0.483764 0.497861 -20 13054633 13060331 0 2 NaN NaN NaN 0.458392 0.488360 0.499373 -20 13071871 13071871 0 1 NaN NaN NaN 0.453752 0.487850 0.496788 -20 13074243 13074243 0 1 NaN NaN NaN 0.456355 0.495221 0.499621 -20 13090745 13260252 0 2 NaN NaN NaN 0.455981 0.485482 0.497963 -20 13769127 13769127 0 1 NaN NaN NaN 0.466940 0.482900 0.497722 -20 13798676 13830137 0 3 NaN NaN NaN 0.464393 0.486108 0.499040 -20 13845726 13845726 0 1 NaN NaN NaN 0.449658 0.483338 0.497048 -20 14306896 14306896 0 1 NaN NaN NaN 0.433363 0.482537 0.497557 -20 14306953 15874325 0 2 NaN NaN NaN 0.441054 0.478186 0.497090 -20 15967327 15967327 0 1 NaN NaN NaN 0.453562 0.488381 0.497066 -20 16730479 16730522 0 2 NaN NaN NaN 0.449904 0.485520 0.498266 -20 17459905 17460005 0 3 NaN NaN NaN 0.455078 0.487954 0.498746 -20 17474690 17594729 0 6 NaN NaN NaN 0.418766 0.490401 0.499496 -20 17595329 17596731 0 3 NaN NaN NaN 0.454120 0.483274 0.496088 -20 17597531 17597531 0 1 NaN NaN NaN 0.469970 0.484995 0.497426 -20 17600357 17600357 0 1 NaN NaN NaN 0.458954 0.487090 0.497683 -20 17602028 17602028 0 1 NaN NaN NaN 0.448643 0.484626 0.498452 -20 17992979 18022171 0 3 NaN NaN NaN 0.475244 0.492738 0.499047 -20 18142924 18142924 0 1 NaN NaN NaN 0.458255 0.487492 0.497199 -20 18286888 18446024 0 6 NaN NaN NaN 0.461906 0.490104 0.497977 -20 18806046 19970705 0 7 NaN NaN NaN 0.434425 0.478511 0.493315 -20 20032998 20033367 0 5 NaN NaN NaN 0.453245 0.485423 0.498910 -20 20033380 20033380 0 1 NaN NaN NaN 0.466972 0.490658 0.499216 -20 20037222 21336825 0 17 NaN NaN NaN 0.307016 0.338686 0.382876 -20 21897170 22714612 0 4 NaN NaN NaN 0.443723 0.489060 0.498620 -20 23345844 23424613 0 5 NaN NaN NaN 0.467190 0.491598 0.499331 -20 23425812 23529388 0 3 NaN NaN NaN 0.447116 0.484396 0.497814 -20 23529418 23807028 0 9 NaN NaN NaN 0.456677 0.487306 0.498864 -20 23842032 23842032 0 1 NaN NaN NaN 0.453003 0.489769 0.498408 -20 23860178 24200652 0 2 NaN NaN NaN 0.472732 0.487674 0.498199 -20 24939590 24939590 0 1 NaN NaN NaN 0.440508 0.475145 0.496103 -20 24993414 25011423 0 3 NaN NaN NaN 0.456649 0.486873 0.497360 -20 25038484 25059442 0 2 NaN NaN NaN 0.443923 0.487719 0.498223 -20 25190598 25255338 0 3 NaN NaN NaN 0.430500 0.474540 0.493732 -20 25255415 25255415 0 1 NaN NaN NaN 0.455203 0.488358 0.499046 -20 25257260 25261784 0 6 NaN NaN NaN 0.418214 0.478859 0.498724 -20 25262769 25262789 0 2 NaN NaN NaN 0.456230 0.481003 0.493796 -20 25263756 25263756 0 1 NaN NaN NaN 0.451728 0.490955 0.499095 -20 25264664 25282944 0 12 NaN NaN NaN 0.450888 0.483014 0.495581 -20 25288505 25295787 0 2 NaN NaN NaN 0.423609 0.473979 0.499340 -20 25320228 25398876 0 3 NaN NaN NaN 0.455185 0.479698 0.496038 -20 25434351 25470056 0 8 NaN NaN NaN 0.443830 0.474657 0.498968 -20 25597236 25838130 0 7 NaN NaN NaN 0.320993 0.451164 0.497076 -20 25838802 25841650 0 4 NaN NaN NaN 0.445044 0.478319 0.497313 -20 25846283 25900162 0 3 NaN NaN NaN 0.405458 0.475299 0.492568 -20 25900379 25965961 0 2 NaN NaN NaN 0.454761 0.490041 0.497542 -20 29449417 29449417 0 1 NaN NaN NaN 0.464282 0.485538 0.498433 -20 29516670 29572218 0 6 NaN NaN NaN 0.462344 0.487263 0.498472 -20 29632564 29632564 0 1 NaN NaN NaN 0.438678 0.474107 0.496931 -20 29633929 29648701 0 3 NaN NaN NaN 0.458813 0.486786 0.498088 -20 29873577 30037783 0 3 NaN NaN NaN 0.443520 0.485422 0.497750 -20 30053255 31025231 0 4 NaN NaN NaN 0.469532 0.488358 0.498654 -20 31647126 31677476 0 8 NaN NaN NaN 0.425888 0.469007 0.497880 -20 31811551 32710710 0 12 NaN NaN NaN 0.267753 0.325643 0.407239 -20 32990050 33063830 0 5 NaN NaN NaN 0.393932 0.479076 0.494825 -20 33068563 33879478 0 3 NaN NaN NaN 0.438881 0.482201 0.498997 -20 34218673 34312713 0 8 NaN NaN NaN 0.447297 0.482432 0.496999 -20 34319765 34324484 0 4 NaN NaN NaN 0.444920 0.486840 0.498638 -20 34328848 34328848 0 1 NaN NaN NaN 0.439274 0.492929 0.499573 -20 34443173 34782171 0 11 NaN NaN NaN 0.436542 0.485719 0.498581 -20 35491033 35559352 0 2 NaN NaN NaN 0.458781 0.489129 0.499453 -20 35710453 35710453 0 1 NaN NaN NaN 0.438939 0.475029 0.494706 -20 35740794 35740794 0 1 NaN NaN NaN 0.455539 0.484290 0.498440 -20 35748894 35869619 0 15 NaN NaN NaN 0.335015 0.399473 0.492717 -20 36022539 36718059 0 5 NaN NaN NaN 0.451514 0.482586 0.497865 -20 36790166 36793529 0 3 NaN NaN NaN 0.470440 0.489372 0.497947 -20 36841756 36919758 0 4 NaN NaN NaN 0.435676 0.486417 0.498073 -20 36932551 36937246 0 4 NaN NaN NaN 0.447373 0.482710 0.497359 -20 36946848 36959353 0 3 NaN NaN NaN 0.438993 0.483681 0.497788 -20 36965617 36965617 0 1 NaN NaN NaN 0.445996 0.485278 0.498080 -20 36989269 37279458 0 11 NaN NaN NaN 0.432149 0.487760 0.497674 -20 37377139 37396262 0 5 NaN NaN NaN 0.459971 0.482634 0.494451 -20 38354742 38354742 0 1 NaN NaN NaN 0.452231 0.485309 0.499521 -20 38898213 40076509 0 7 NaN NaN NaN 0.465551 0.488282 0.498891 -20 40179909 40626474 0 3 NaN NaN NaN 0.458050 0.492419 0.499201 -20 40714479 40743829 0 3 NaN NaN NaN 0.469377 0.489110 0.498899 -20 40981002 41076751 0 2 NaN NaN NaN 0.454693 0.486138 0.496948 -20 41962342 43944958 0 40 NaN NaN NaN 0.466911 0.487626 0.496635 -20 44144118 44638971 0 3 NaN NaN NaN 0.433381 0.479449 0.497572 -20 44639511 44645010 0 8 NaN NaN NaN 0.447072 0.488137 0.499124 -20 44650318 44650318 0 1 NaN NaN NaN 0.451077 0.486002 0.498594 -20 44806875 44806875 0 1 NaN NaN NaN 0.466133 0.488571 0.497943 -20 44983517 45092517 0 3 NaN NaN NaN 0.470610 0.491576 0.498659 -20 45092859 45092921 0 2 NaN NaN NaN 0.443911 0.484865 0.496511 -20 45093125 45629941 0 4 NaN NaN NaN 0.462561 0.485247 0.499234 -20 45789953 45789953 0 1 NaN NaN NaN 0.437757 0.487383 0.499322 -20 45797639 45797883 0 2 NaN NaN NaN 0.452503 0.481186 0.497738 -20 45797954 45808688 0 3 NaN NaN NaN 0.461999 0.484172 0.497302 -20 45809652 45816639 0 4 NaN NaN NaN 0.458834 0.486745 0.498932 -20 45816649 45891189 0 2 NaN NaN NaN 0.467855 0.489181 0.498072 -20 45923383 47253043 0 4 NaN NaN NaN 0.467400 0.486274 0.498754 -20 47256300 47258763 0 4 NaN NaN NaN 0.459589 0.487584 0.498902 -20 47261017 47361725 0 12 NaN NaN NaN 0.472546 0.489079 0.497476 -20 47569112 47615692 0 7 NaN NaN NaN 0.458203 0.489884 0.498302 -20 47621554 47713063 0 9 NaN NaN NaN 0.464863 0.487168 0.498322 -20 47739814 47850182 0 5 NaN NaN NaN 0.465808 0.489847 0.499370 -20 47852822 47859217 0 3 NaN NaN NaN 0.462934 0.489518 0.498779 -20 47865372 48131036 0 9 NaN NaN NaN 0.478657 0.490781 0.497149 -20 48257149 48259034 0 2 NaN NaN NaN 0.478141 0.492674 0.499594 -20 48300990 48300990 0 1 NaN NaN NaN 0.458709 0.489191 0.497772 -20 48301146 49191228 0 4 NaN NaN NaN 0.456599 0.487527 0.498764 -20 49195248 49195248 0 1 NaN NaN NaN 0.475620 0.491907 0.499009 -20 49196167 49236478 0 5 NaN NaN NaN 0.467189 0.488092 0.497929 -20 49237419 49575334 0 2 NaN NaN NaN 0.453628 0.487345 0.497869 -20 50287736 53691106 0 21 NaN NaN NaN 0.476587 0.493193 0.498821 -20 54935242 55108617 0 9 NaN NaN NaN 0.469070 0.481343 0.493208 -20 55111371 56886062 0 15 NaN NaN NaN 0.460013 0.481739 0.497648 -20 57009796 57024541 0 4 NaN NaN NaN 0.458242 0.483960 0.496285 -20 57024589 57266134 0 4 NaN NaN NaN 0.462099 0.486725 0.497783 -20 57266592 57470517 0 8 NaN NaN NaN 0.464631 0.482526 0.498516 -20 57478448 57569860 0 7 NaN NaN NaN 0.446729 0.477139 0.497462 -20 57570854 57572839 0 2 NaN NaN NaN 0.450692 0.486969 0.495919 -20 57599402 58571125 0 8 NaN NaN NaN 0.460926 0.484030 0.496289 -20 58581863 60582540 0 8 NaN NaN NaN 0.468861 0.493812 0.499244 -20 60712347 60740362 0 8 NaN NaN NaN 0.453828 0.484013 0.497038 -20 60740447 60886611 0 13 NaN NaN NaN 0.437957 0.489863 0.498275 -20 60897721 60992224 0 8 NaN NaN NaN 0.450777 0.481333 0.497468 -20 60992402 61039958 0 2 NaN NaN NaN 0.457454 0.480633 0.493837 -20 61041653 61273578 0 8 NaN NaN NaN 0.464628 0.482834 0.494479 -20 61289958 61441061 0 4 NaN NaN NaN 0.462993 0.485697 0.493498 -20 61444697 61444697 0 1 NaN NaN NaN 0.463046 0.491487 0.497298 -20 61444785 61453348 0 2 NaN NaN NaN 0.468776 0.489151 0.498133 -20 61453549 61834695 0 18 NaN NaN NaN 0.459954 0.486469 0.498365 -20 61869607 61869607 0 1 NaN NaN NaN 0.450519 0.487232 0.498693 -20 61870727 61873039 0 3 NaN NaN NaN 0.456340 0.490987 0.498384 -20 61875497 61881296 0 5 NaN NaN NaN 0.440393 0.491248 0.498015 -20 61987572 61987572 0 1 NaN NaN NaN 0.462888 0.488293 0.498256 -20 62191558 62193019 0 2 NaN NaN NaN 0.462006 0.492112 0.498613 -20 62193445 62229244 0 11 NaN NaN NaN 0.459319 0.479103 0.494250 -20 62245686 62303794 0 5 NaN NaN NaN 0.458014 0.486443 0.498345 -20 62305274 62698484 0 10 NaN NaN NaN 0.460717 0.487484 0.498717 -20 62701092 62737318 0 5 NaN NaN NaN 0.458713 0.486144 0.498121 -20 62836271 62836271 0 1 NaN NaN NaN 0.466369 0.485312 0.496825 -20 62836520 62854417 0 2 NaN NaN NaN 0.452358 0.492000 0.499273 -20 62868043 62871232 0 2 NaN NaN NaN 0.465692 0.489907 0.499055 +20 138125 138148 0 2 NaN NaN NaN 0.464407 0.486070 0.497579 +20 139409 139576 0 3 NaN NaN NaN 0.461122 0.485931 0.499176 +20 168466 259156 0 12 NaN NaN NaN 0.457895 0.491265 0.498872 +20 259818 259818 0 1 NaN NaN NaN 0.466382 0.491250 0.498654 +20 259969 278806 0 2 NaN NaN NaN 0.463206 0.490312 0.498144 +20 368905 377226 0 3 NaN NaN NaN 0.458044 0.487224 0.498757 +20 389456 402921 0 4 NaN NaN NaN 0.466234 0.489776 0.497812 +20 425606 744415 0 4 NaN NaN NaN 0.464461 0.486551 0.497698 +20 744570 744570 0 1 NaN NaN NaN 0.453157 0.481366 0.497870 +20 746098 1285933 0 5 NaN NaN NaN 0.462423 0.490947 0.498324 +20 1424303 1424303 0 1 NaN NaN NaN 0.468911 0.490827 0.497889 +20 1426393 1458504 0 3 NaN NaN NaN 0.466803 0.482278 0.495897 +20 1517979 1552430 0 8 NaN NaN NaN 0.470641 0.492234 0.499442 +20 1559330 1592312 0 6 NaN NaN NaN 0.430067 0.486737 0.498420 +20 1600524 1600524 0 1 NaN NaN NaN 0.465881 0.488372 0.498560 +20 1610790 1610894 0 3 NaN NaN NaN 0.441414 0.484672 0.499017 +20 1615883 1616892 0 2 NaN NaN NaN 0.454391 0.481182 0.497772 +20 1895889 1896060 0 3 NaN NaN NaN 0.461932 0.489455 0.498334 +20 2056358 2056358 0 1 NaN NaN NaN 0.459308 0.484849 0.498173 +20 2315929 2517377 0 3 NaN NaN NaN 0.446734 0.491616 0.498323 +20 2517432 2517825 0 2 NaN NaN NaN 0.450113 0.492662 0.498695 +20 2552805 2552805 0 1 NaN NaN NaN 0.446937 0.485765 0.498437 +20 2593006 2621998 0 9 NaN NaN NaN 0.460278 0.482027 0.496574 +20 2633380 2779257 0 3 NaN NaN NaN 0.438601 0.484985 0.498236 +20 2796471 2796471 0 1 NaN NaN NaN 0.451218 0.484158 0.497717 +20 2818801 2996589 0 5 NaN NaN NaN 0.456774 0.480657 0.496687 +20 3002889 3199446 0 4 NaN NaN NaN 0.456957 0.481845 0.497566 +20 3624830 3640823 0 2 NaN NaN NaN 0.441022 0.483394 0.496273 +20 3641881 3653149 0 5 NaN NaN NaN 0.441273 0.481576 0.496279 +20 3654433 3686436 0 12 NaN NaN NaN 0.458082 0.483582 0.495629 +20 3721456 3731622 0 2 NaN NaN NaN 0.467440 0.490354 0.498490 +20 3732633 3838441 0 2 NaN NaN NaN 0.445706 0.486568 0.498390 +20 3870124 4055656 0 2 NaN NaN NaN 0.456928 0.486150 0.499034 +20 4155948 4162411 0 2 NaN NaN NaN 0.475001 0.491001 0.497316 +20 4202802 4705756 0 4 NaN NaN NaN 0.459922 0.483416 0.492498 +20 4843609 4843609 0 1 NaN NaN NaN 0.465557 0.483322 0.497828 +20 4880308 5261206 0 4 NaN NaN NaN 0.465757 0.489166 0.498847 +20 5273253 5273382 0 3 NaN NaN NaN 0.454133 0.486813 0.498199 +20 5283256 5482307 0 8 NaN NaN NaN 0.446504 0.481487 0.495978 +20 5528518 6064839 0 8 NaN NaN NaN 0.459175 0.482503 0.496616 +20 6065731 6100230 0 5 NaN NaN NaN 0.459071 0.486316 0.498339 +20 6194421 6195664 0 2 NaN NaN NaN 0.425071 0.477271 0.492088 +20 7866261 7999537 0 4 NaN NaN NaN 0.436744 0.482666 0.498196 +20 8626903 8626903 0 1 NaN NaN NaN 0.440978 0.486508 0.497051 +20 8665751 8703145 0 4 NaN NaN NaN 0.459312 0.482962 0.495206 +20 8707900 8707927 0 2 NaN NaN NaN 0.438393 0.486206 0.496464 +20 8737734 8769423 0 4 NaN NaN NaN 0.454830 0.476714 0.497234 +20 8770318 8770932 0 3 NaN NaN NaN 0.449636 0.484128 0.496957 +20 8773096 8773096 0 1 NaN NaN NaN 0.445031 0.482924 0.498446 +20 8773155 9417870 0 2 NaN NaN NaN 0.463520 0.486597 0.497565 +20 9424810 9510263 0 3 NaN NaN NaN 0.460224 0.482838 0.497542 +20 10024951 10024951 0 1 NaN NaN NaN 0.452279 0.486484 0.498485 +20 10026357 10032413 0 4 NaN NaN NaN 0.434263 0.475963 0.493759 +20 10329888 10393145 0 3 NaN NaN NaN 0.434909 0.486369 0.498872 +20 10438780 10438780 0 1 NaN NaN NaN 0.475837 0.491947 0.499234 +20 10629129 10629525 0 2 NaN NaN NaN 0.456437 0.489532 0.499008 +20 13054633 13060331 0 2 NaN NaN NaN 0.454256 0.477287 0.496440 +20 13071871 13071871 0 1 NaN NaN NaN 0.459138 0.479761 0.498746 +20 13074243 13074243 0 1 NaN NaN NaN 0.467449 0.483747 0.495100 +20 13090745 13260252 0 2 NaN NaN NaN 0.451010 0.483723 0.498521 +20 13769127 13769127 0 1 NaN NaN NaN 0.460953 0.483593 0.497393 +20 13798676 13830137 0 3 NaN NaN NaN 0.470761 0.491039 0.499020 +20 13845726 13845726 0 1 NaN NaN NaN 0.458991 0.489243 0.498246 +20 14306896 14306896 0 1 NaN NaN NaN 0.462697 0.482747 0.497749 +20 14306953 15874325 0 2 NaN NaN NaN 0.471777 0.489701 0.498759 +20 15967327 15967327 0 1 NaN NaN NaN 0.460896 0.482684 0.498108 +20 16730479 16730522 0 2 NaN NaN NaN 0.472701 0.490168 0.499277 +20 17459905 17460005 0 3 NaN NaN NaN 0.438471 0.494247 0.499313 +20 17474690 17594729 0 6 NaN NaN NaN 0.405755 0.481667 0.494895 +20 17595329 17596731 0 3 NaN NaN NaN 0.455723 0.485909 0.498079 +20 17597531 17597531 0 1 NaN NaN NaN 0.456243 0.484270 0.499608 +20 17600357 17600357 0 1 NaN NaN NaN 0.460066 0.489594 0.496607 +20 17602028 17602028 0 1 NaN NaN NaN 0.457020 0.483003 0.496373 +20 17992979 18022171 0 3 NaN NaN NaN 0.445688 0.485691 0.498082 +20 18142924 18142924 0 1 NaN NaN NaN 0.459703 0.486154 0.497652 +20 18286888 18446024 0 6 NaN NaN NaN 0.446208 0.485565 0.497564 +20 18806046 19970705 0 7 NaN NaN NaN 0.418702 0.473775 0.495490 +20 20032998 20033367 0 5 NaN NaN NaN 0.424455 0.488391 0.499058 +20 20033380 20033380 0 1 NaN NaN NaN 0.462944 0.488471 0.498671 +20 20037222 21336825 0 17 NaN NaN NaN 0.304050 0.346376 0.394794 +20 21897170 22714612 0 4 NaN NaN NaN 0.457290 0.489059 0.499217 +20 23345844 23424613 0 5 NaN NaN NaN 0.437295 0.481003 0.497200 +20 23425812 23529388 0 3 NaN NaN NaN 0.452706 0.484566 0.498899 +20 23529418 23807028 0 9 NaN NaN NaN 0.453581 0.483115 0.494498 +20 23842032 23842032 0 1 NaN NaN NaN 0.437562 0.483631 0.497048 +20 23860178 24200652 0 2 NaN NaN NaN 0.456297 0.486667 0.498941 +20 24939590 24939590 0 1 NaN NaN NaN 0.447034 0.481283 0.496603 +20 24993414 25011423 0 3 NaN NaN NaN 0.451753 0.482944 0.497565 +20 25038484 25059442 0 2 NaN NaN NaN 0.440957 0.482353 0.495245 +20 25190598 25255338 0 3 NaN NaN NaN 0.467700 0.487215 0.497722 +20 25255415 25255415 0 1 NaN NaN NaN 0.447030 0.476191 0.497503 +20 25257260 25261784 0 6 NaN NaN NaN 0.440299 0.481490 0.498109 +20 25262769 25262789 0 2 NaN NaN NaN 0.458143 0.487150 0.498592 +20 25263756 25263756 0 1 NaN NaN NaN 0.452278 0.488451 0.496533 +20 25264664 25282944 0 12 NaN NaN NaN 0.458368 0.487880 0.498741 +20 25288505 25295787 0 2 NaN NaN NaN 0.451414 0.485110 0.498004 +20 25320228 25398876 0 3 NaN NaN NaN 0.447331 0.480219 0.497599 +20 25434351 25470056 0 8 NaN NaN NaN 0.448601 0.489158 0.498747 +20 25597236 25838130 0 7 NaN NaN NaN 0.389397 0.466843 0.492718 +20 25838802 25841650 0 4 NaN NaN NaN 0.473491 0.490042 0.498458 +20 25846283 25900162 0 3 NaN NaN NaN 0.432052 0.475427 0.497368 +20 25900379 25965961 0 2 NaN NaN NaN 0.453943 0.479595 0.498381 +20 29449417 29449417 0 1 NaN NaN NaN 0.447085 0.487201 0.499140 +20 29516670 29572218 0 6 NaN NaN NaN 0.466761 0.489625 0.497234 +20 29632564 29632564 0 1 NaN NaN NaN 0.459153 0.488990 0.497113 +20 29633929 29648701 0 3 NaN NaN NaN 0.450700 0.486758 0.498239 +20 29873577 30037783 0 3 NaN NaN NaN 0.461542 0.488383 0.497918 +20 30053255 31025231 0 4 NaN NaN NaN 0.417046 0.477463 0.498282 +20 31647126 31677476 0 8 NaN NaN NaN 0.436732 0.479856 0.496731 +20 31811551 32710710 0 12 NaN NaN NaN 0.289504 0.321465 0.364668 +20 32990050 33063830 0 5 NaN NaN NaN 0.426077 0.479029 0.498662 +20 33068563 33879478 0 3 NaN NaN NaN 0.459169 0.491222 0.498511 +20 34218673 34312713 0 8 NaN NaN NaN 0.455638 0.486018 0.497565 +20 34319765 34324484 0 4 NaN NaN NaN 0.476236 0.492410 0.499058 +20 34328848 34328848 0 1 NaN NaN NaN 0.465145 0.489464 0.498062 +20 34443173 34782171 0 11 NaN NaN NaN 0.454545 0.486928 0.497617 +20 35491033 35559352 0 2 NaN NaN NaN 0.437221 0.475433 0.494420 +20 35710453 35710453 0 1 NaN NaN NaN 0.440980 0.481082 0.496704 +20 35740794 35740794 0 1 NaN NaN NaN 0.461184 0.488450 0.497873 +20 35748894 35869619 0 15 NaN NaN NaN 0.345601 0.399604 0.492575 +20 36022539 36718059 0 5 NaN NaN NaN 0.466266 0.487012 0.498169 +20 36790166 36793529 0 3 NaN NaN NaN 0.464594 0.484363 0.497311 +20 36841756 36919758 0 4 NaN NaN NaN 0.475975 0.492286 0.498968 +20 36932551 36937246 0 4 NaN NaN NaN 0.470434 0.493272 0.497778 +20 36946848 36959353 0 3 NaN NaN NaN 0.465418 0.487228 0.498530 +20 36965617 36965617 0 1 NaN NaN NaN 0.416402 0.488857 0.498547 +20 36989269 37279458 0 11 NaN NaN NaN 0.470659 0.487779 0.494168 +20 37377139 37396262 0 5 NaN NaN NaN 0.458424 0.487488 0.495674 +20 38354742 38354742 0 1 NaN NaN NaN 0.454108 0.483353 0.499402 +20 38898213 40076509 0 7 NaN NaN NaN 0.447008 0.483202 0.497320 +20 40179909 40626474 0 3 NaN NaN NaN 0.471387 0.487519 0.498714 +20 40714479 40743829 0 3 NaN NaN NaN 0.476941 0.494495 0.498685 +20 40981002 41076751 0 2 NaN NaN NaN 0.458540 0.487028 0.496517 +20 41962342 43944958 0 40 NaN NaN NaN 0.473302 0.491109 0.498286 +20 44144118 44638971 0 3 NaN NaN NaN 0.464721 0.487006 0.497128 +20 44639511 44645010 0 8 NaN NaN NaN 0.470040 0.488928 0.497723 +20 44650318 44650318 0 1 NaN NaN NaN 0.463754 0.489499 0.497115 +20 44806875 44806875 0 1 NaN NaN NaN 0.462006 0.486080 0.498316 +20 44983517 45092517 0 3 NaN NaN NaN 0.467053 0.491367 0.495998 +20 45092859 45092921 0 2 NaN NaN NaN 0.453263 0.479677 0.496586 +20 45093125 45629941 0 4 NaN NaN NaN 0.458446 0.485933 0.497562 +20 45789953 45789953 0 1 NaN NaN NaN 0.453517 0.487099 0.498494 +20 45797639 45797883 0 2 NaN NaN NaN 0.441544 0.487608 0.498836 +20 45797954 45808688 0 3 NaN NaN NaN 0.452646 0.486699 0.498181 +20 45809652 45816639 0 4 NaN NaN NaN 0.471200 0.492912 0.498757 +20 45816649 45891189 0 2 NaN NaN NaN 0.461405 0.488350 0.495849 +20 45923383 47253043 0 4 NaN NaN NaN 0.460551 0.489527 0.499063 +20 47256300 47258763 0 4 NaN NaN NaN 0.451655 0.481536 0.497646 +20 47261017 47361725 0 12 NaN NaN NaN 0.471686 0.488044 0.498559 +20 47569112 47615692 0 7 NaN NaN NaN 0.467308 0.487975 0.496869 +20 47621554 47713063 0 9 NaN NaN NaN 0.462921 0.487406 0.497686 +20 47739814 47850182 0 5 NaN NaN NaN 0.465915 0.486673 0.497344 +20 47852822 47859217 0 3 NaN NaN NaN 0.441528 0.485213 0.498505 +20 47865372 48131036 0 9 NaN NaN NaN 0.458035 0.488366 0.497891 +20 48257149 48259034 0 2 NaN NaN NaN 0.456168 0.482560 0.497847 +20 48300990 48300990 0 1 NaN NaN NaN 0.439052 0.487982 0.497607 +20 48301146 49191228 0 4 NaN NaN NaN 0.462891 0.486785 0.497767 +20 49195248 49195248 0 1 NaN NaN NaN 0.460212 0.486067 0.498486 +20 49196167 49236478 0 5 NaN NaN NaN 0.461609 0.488748 0.496163 +20 49237419 49575334 0 2 NaN NaN NaN 0.426356 0.479625 0.497564 +20 50287736 53691106 0 21 NaN NaN NaN 0.459925 0.487000 0.496720 +20 54935242 55108617 0 9 NaN NaN NaN 0.456686 0.486608 0.498358 +20 55111371 56886062 0 15 NaN NaN NaN 0.475776 0.493004 0.499227 +20 57009796 57024541 0 4 NaN NaN NaN 0.452654 0.482674 0.497665 +20 57024589 57266134 0 4 NaN NaN NaN 0.473275 0.488409 0.499132 +20 57266592 57470517 0 8 NaN NaN NaN 0.469937 0.489358 0.499090 +20 57478448 57569860 0 7 NaN NaN NaN 0.452146 0.488930 0.497382 +20 57570854 57572839 0 2 NaN NaN NaN 0.452491 0.483795 0.498573 +20 57599402 58571125 0 8 NaN NaN NaN 0.460808 0.480546 0.492648 +20 58581863 60582540 0 8 NaN NaN NaN 0.459929 0.487883 0.498276 +20 60712347 60740362 0 8 NaN NaN NaN 0.455112 0.484063 0.498388 +20 60740447 60886611 0 13 NaN NaN NaN 0.478498 0.492252 0.499334 +20 60897721 60992224 0 8 NaN NaN NaN 0.461806 0.488967 0.498954 +20 60992402 61039958 0 2 NaN NaN NaN 0.461005 0.488151 0.498545 +20 61041653 61273578 0 8 NaN NaN NaN 0.457569 0.482513 0.497947 +20 61289958 61441061 0 4 NaN NaN NaN 0.465706 0.485892 0.497771 +20 61444697 61444697 0 1 NaN NaN NaN 0.471853 0.492488 0.498701 +20 61444785 61453348 0 2 NaN NaN NaN 0.472790 0.490997 0.498827 +20 61453549 61834695 0 18 NaN NaN NaN 0.461142 0.494401 0.498638 +20 61869607 61869607 0 1 NaN NaN NaN 0.459515 0.483016 0.496899 +20 61870727 61873039 0 3 NaN NaN NaN 0.460018 0.487014 0.496166 +20 61875497 61881296 0 5 NaN NaN NaN 0.463407 0.489213 0.496283 +20 61987572 61987572 0 1 NaN NaN NaN 0.464694 0.490781 0.498078 +20 62191558 62193019 0 2 NaN NaN NaN 0.453222 0.486798 0.499500 +20 62193445 62229244 0 11 NaN NaN NaN 0.458416 0.489111 0.496635 +20 62245686 62303794 0 5 NaN NaN NaN 0.449289 0.484567 0.498853 +20 62305274 62698484 0 10 NaN NaN NaN 0.464029 0.491714 0.497155 +20 62701092 62737318 0 5 NaN NaN NaN 0.455620 0.489770 0.497906 +20 62836271 62836271 0 1 NaN NaN NaN 0.450621 0.481579 0.496660 +20 62836520 62854417 0 2 NaN NaN NaN 0.456501 0.488762 0.498790 +20 62868043 62871232 0 2 NaN NaN NaN 0.431664 0.490538 0.497807 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.af.param index d544966d3a0..ebe0465040e 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.114452 1.117621 1.129473 1.134714 1.140738 1.149446 1.152084 1.158532 1.179227 -BIAS_VARIANCE 0.459764 0.470122 0.476033 0.481435 0.487104 0.493330 0.495130 0.496575 0.498652 -OUTLIER_PROBABILITY 0.019421 0.025365 0.028088 0.033099 0.036928 0.042074 0.044188 0.046482 0.051940 +MEAN_BIAS 1.116663 1.123408 1.127238 1.130430 1.140573 1.156446 1.161426 1.170822 1.176871 +BIAS_VARIANCE 0.470922 0.474828 0.481765 0.486072 0.492303 0.493527 0.495814 0.497711 0.498807 +OUTLIER_PROBABILITY 0.014787 0.020051 0.024841 0.028065 0.029756 0.035209 0.036907 0.040733 0.046803 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.seg index 2a2e5c8cd01..6d3c1d452e0 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.seg @@ -2,291 +2,291 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 138125 138148 0 2 NaN NaN NaN 0.461495 0.486586 0.495971 -20 139409 139576 0 3 NaN NaN NaN 0.457106 0.490447 0.497756 -20 168466 259156 0 13 NaN NaN NaN 0.438194 0.487797 0.497137 -20 259818 259818 0 1 NaN NaN NaN 0.463151 0.485806 0.496516 -20 259969 278806 0 2 NaN NaN NaN 0.467323 0.486237 0.498999 -20 316911 316911 0 1 NaN NaN NaN 0.444589 0.487032 0.497350 -20 355319 360306 0 4 NaN NaN NaN 0.459787 0.488222 0.498614 -20 368905 377226 0 3 NaN NaN NaN 0.448203 0.484784 0.498867 -20 389456 402921 0 4 NaN NaN NaN 0.427039 0.472039 0.497827 -20 425606 425606 0 1 NaN NaN NaN 0.462482 0.487882 0.499682 -20 428767 744415 0 8 NaN NaN NaN 0.458817 0.485392 0.498526 -20 744570 744570 0 1 NaN NaN NaN 0.453362 0.491202 0.498361 -20 746098 1285933 0 6 NaN NaN NaN 0.443552 0.479144 0.497847 -20 1417397 1417397 0 1 NaN NaN NaN 0.465216 0.492858 0.497158 -20 1424303 1424303 0 1 NaN NaN NaN 0.451516 0.489583 0.498006 -20 1426393 1458504 0 3 NaN NaN NaN 0.444724 0.490110 0.498439 -20 1510769 1510769 0 1 NaN NaN NaN 0.448679 0.480813 0.497390 -20 1517979 1538249 0 4 NaN NaN NaN 0.441654 0.487064 0.494957 -20 1540032 1540032 0 1 NaN NaN NaN 0.466514 0.489499 0.499436 -20 1546911 1552430 0 3 NaN NaN NaN 0.472781 0.490907 0.499012 -20 1592265 1592284 0 2 NaN NaN NaN 0.411058 0.484047 0.497601 -20 1600524 1610894 0 4 NaN NaN NaN 0.440072 0.475314 0.497061 -20 1615883 1880912 0 6 NaN NaN NaN 0.458562 0.485821 0.498416 -20 1895630 1895658 0 2 NaN NaN NaN 0.465785 0.490763 0.497241 -20 1895889 1896244 0 2 NaN NaN NaN 0.458394 0.490895 0.497191 -20 2036954 2139080 0 4 NaN NaN NaN 0.471073 0.491601 0.499304 -20 2315929 2357863 0 3 NaN NaN NaN 0.437637 0.482853 0.498049 -20 2482325 2517825 0 3 NaN NaN NaN 0.460982 0.487372 0.497402 -20 2542747 2552805 0 2 NaN NaN NaN 0.478454 0.491667 0.498104 -20 2593006 2621998 0 10 NaN NaN NaN 0.454661 0.482552 0.497483 -20 2624956 2655019 0 3 NaN NaN NaN 0.463236 0.493277 0.499011 -20 2777828 2779257 0 2 NaN NaN NaN 0.458007 0.486852 0.496191 -20 2796471 2818801 0 2 NaN NaN NaN 0.463575 0.485742 0.497221 -20 2945759 3005413 0 7 NaN NaN NaN 0.459580 0.479914 0.498429 -20 3007228 3007492 0 2 NaN NaN NaN 0.457235 0.482270 0.498636 -20 3013228 3054033 0 2 NaN NaN NaN 0.450466 0.488737 0.499291 -20 3147024 3624830 0 5 NaN NaN NaN 0.463730 0.488657 0.498177 -20 3640823 3640823 0 1 NaN NaN NaN 0.445832 0.489942 0.497602 -20 3641881 3675333 0 11 NaN NaN NaN 0.460004 0.491351 0.499311 -20 3675498 3686436 0 8 NaN NaN NaN 0.444577 0.484619 0.496582 -20 3701867 3732633 0 4 NaN NaN NaN 0.439605 0.483720 0.497538 -20 3838441 3838441 0 1 NaN NaN NaN 0.445389 0.483743 0.495827 -20 3858985 4055656 0 3 NaN NaN NaN 0.460231 0.483993 0.498156 -20 4138585 4162411 0 4 NaN NaN NaN 0.456772 0.485809 0.496872 -20 4167234 4843609 0 9 NaN NaN NaN 0.463707 0.485354 0.498185 -20 4880308 5035125 0 2 NaN NaN NaN 0.450729 0.483379 0.495339 -20 5063643 5063643 0 1 NaN NaN NaN 0.449495 0.481651 0.498033 -20 5068730 5068730 0 1 NaN NaN NaN 0.460739 0.487729 0.497662 -20 5159344 5482307 0 16 NaN NaN NaN 0.446787 0.482013 0.497459 -20 5528518 5634575 0 5 NaN NaN NaN 0.445468 0.487589 0.498464 -20 5640886 5738376 0 4 NaN NaN NaN 0.472502 0.489930 0.496824 -20 5903517 6065731 0 6 NaN NaN NaN 0.451124 0.480429 0.497446 -20 6090623 6100391 0 6 NaN NaN NaN 0.440128 0.488071 0.498816 -20 6194421 6195664 0 2 NaN NaN NaN 0.442623 0.488158 0.498583 -20 6302114 6798939 0 3 NaN NaN NaN 0.460676 0.489967 0.498317 -20 7866261 8581713 0 5 NaN NaN NaN 0.452547 0.483234 0.496623 -20 8625108 8625108 0 1 NaN NaN NaN 0.452791 0.489254 0.496359 -20 8625250 8639443 0 4 NaN NaN NaN 0.455115 0.486786 0.498942 -20 8665751 8703145 0 5 NaN NaN NaN 0.457266 0.488231 0.498819 -20 8707900 8707927 0 2 NaN NaN NaN 0.438621 0.483079 0.497429 -20 8708166 8708166 0 1 NaN NaN NaN 0.463730 0.489468 0.498005 -20 8737734 8737734 0 1 NaN NaN NaN 0.448614 0.481475 0.496503 -20 8741188 8741188 0 1 NaN NaN NaN 0.440744 0.493251 0.498765 -20 8742326 8742326 0 1 NaN NaN NaN 0.455732 0.486215 0.497727 -20 8755243 8770932 0 4 NaN NaN NaN 0.464721 0.492985 0.498633 -20 8773096 8773155 0 2 NaN NaN NaN 0.458675 0.487494 0.499268 -20 9108585 9376019 0 4 NaN NaN NaN 0.450741 0.484600 0.496658 -20 9417870 9510263 0 4 NaN NaN NaN 0.422167 0.489492 0.498541 -20 9624587 10004147 0 3 NaN NaN NaN 0.473963 0.495402 0.499337 -20 10012714 10012751 0 2 NaN NaN NaN 0.464607 0.485268 0.498826 -20 10024951 10024951 0 1 NaN NaN NaN 0.442116 0.485541 0.496405 -20 10026357 10032413 0 4 NaN NaN NaN 0.442301 0.486008 0.498128 -20 10329888 10393145 0 4 NaN NaN NaN 0.466342 0.485582 0.498147 -20 10426975 10439002 0 3 NaN NaN NaN 0.465790 0.489121 0.498439 -20 10629129 10629525 0 2 NaN NaN NaN 0.450508 0.484274 0.496989 -20 11224228 12113410 0 5 NaN NaN NaN 0.448545 0.487756 0.498697 -20 13054307 13060331 0 5 NaN NaN NaN 0.471982 0.493321 0.498821 -20 13071871 13074243 0 3 NaN NaN NaN 0.460286 0.489120 0.496994 -20 13090745 13227837 0 3 NaN NaN NaN 0.458387 0.490954 0.499151 -20 13239860 13260252 0 2 NaN NaN NaN 0.441327 0.486123 0.498177 -20 13709407 13709407 0 1 NaN NaN NaN 0.453267 0.485396 0.498634 -20 13769127 13769127 0 1 NaN NaN NaN 0.457894 0.486339 0.494944 -20 13798676 13830137 0 4 NaN NaN NaN 0.454999 0.487237 0.497362 -20 13845726 13845726 0 1 NaN NaN NaN 0.442650 0.476418 0.497272 -20 13872093 13885105 0 2 NaN NaN NaN 0.464260 0.489631 0.498332 -20 13921411 13992299 0 2 NaN NaN NaN 0.469876 0.487975 0.498977 -20 14273462 14273462 0 1 NaN NaN NaN 0.454916 0.482945 0.497211 -20 14306896 14306896 0 1 NaN NaN NaN 0.468405 0.484200 0.498064 -20 14306953 14306953 0 1 NaN NaN NaN 0.451838 0.487037 0.496673 -20 14319063 14319063 0 1 NaN NaN NaN 0.468196 0.489307 0.498561 -20 14910634 14910665 0 2 NaN NaN NaN 0.455713 0.489899 0.498300 -20 15131723 15411848 0 2 NaN NaN NaN 0.471409 0.492049 0.499465 -20 15874325 15967327 0 2 NaN NaN NaN 0.456657 0.488739 0.498887 -20 16729262 16730522 0 3 NaN NaN NaN 0.419879 0.486833 0.498166 -20 17028059 17460132 0 5 NaN NaN NaN 0.426074 0.476069 0.496986 -20 17474690 17594729 0 9 NaN NaN NaN 0.432543 0.487223 0.497847 -20 17595329 17595329 0 1 NaN NaN NaN 0.459883 0.483145 0.497857 -20 17596155 17596155 0 1 NaN NaN NaN 0.454981 0.485687 0.498049 -20 17596731 17597331 0 2 NaN NaN NaN 0.439089 0.478715 0.496620 -20 17597531 17597531 0 1 NaN NaN NaN 0.442801 0.482092 0.496995 -20 17600357 17990713 0 2 NaN NaN NaN 0.433438 0.489705 0.498414 -20 17992979 18022171 0 5 NaN NaN NaN 0.424613 0.485183 0.498021 -20 18142924 18175556 0 3 NaN NaN NaN 0.471841 0.486996 0.496445 -20 18192433 18241880 0 2 NaN NaN NaN 0.445918 0.484416 0.495957 -20 18286888 18286888 0 1 NaN NaN NaN 0.442022 0.487689 0.497337 -20 18287104 18327570 0 3 NaN NaN NaN 0.461973 0.487462 0.499440 -20 18429497 18429509 0 2 NaN NaN NaN 0.462733 0.487091 0.498128 -20 18432690 18446024 0 4 NaN NaN NaN 0.463701 0.487131 0.497696 -20 18806046 18806046 0 1 NaN NaN NaN 0.470064 0.488650 0.496929 -20 18810705 19261623 0 2 NaN NaN NaN 0.446201 0.482335 0.496780 -20 19345285 19345285 0 1 NaN NaN NaN 0.461914 0.486002 0.496913 -20 19560664 19914520 0 4 NaN NaN NaN 0.423834 0.480872 0.497875 -20 19941538 19951660 0 3 NaN NaN NaN 0.409420 0.475386 0.495371 -20 19970705 19970705 0 1 NaN NaN NaN 0.465563 0.489973 0.498771 -20 19987674 19987674 0 1 NaN NaN NaN 0.467961 0.486354 0.498565 -20 20007325 20033137 0 3 NaN NaN NaN 0.455258 0.483639 0.497586 -20 20033242 20033423 0 5 NaN NaN NaN 0.456157 0.490079 0.497267 -20 20037222 20152462 0 8 NaN NaN NaN 0.399155 0.464774 0.497539 -20 20168497 20265171 0 4 NaN NaN NaN 0.443963 0.490900 0.498392 -20 20269631 21147009 0 9 NaN NaN NaN 0.390829 0.480957 0.498572 -20 21147407 21868713 0 6 NaN NaN NaN 0.435233 0.471410 0.495991 -20 21897170 22714612 0 6 NaN NaN NaN 0.458054 0.476678 0.495549 -20 23345844 23425812 0 8 NaN NaN NaN 0.441810 0.484328 0.498765 -20 23426972 23426972 0 1 NaN NaN NaN 0.474889 0.489325 0.497504 -20 23528536 23529388 0 2 NaN NaN NaN 0.449147 0.485496 0.498120 -20 23529418 23731560 0 10 NaN NaN NaN 0.433579 0.479738 0.493930 -20 23756529 23756529 0 1 NaN NaN NaN 0.428622 0.478433 0.497523 -20 23756613 23756613 0 1 NaN NaN NaN 0.448964 0.488363 0.498243 -20 23761395 23761395 0 1 NaN NaN NaN 0.449295 0.484874 0.496965 -20 23805832 23807028 0 2 NaN NaN NaN 0.462527 0.488073 0.495620 -20 23842032 23842078 0 2 NaN NaN NaN 0.458261 0.486393 0.499212 -20 23860178 24200699 0 4 NaN NaN NaN 0.458117 0.481519 0.496914 -20 24201344 24201393 0 2 NaN NaN NaN 0.470051 0.485255 0.498310 -20 24790712 24790712 0 1 NaN NaN NaN 0.465488 0.486772 0.498106 -20 24911562 24938195 0 3 NaN NaN NaN 0.451128 0.484099 0.498091 -20 24939590 24959386 0 2 NaN NaN NaN 0.459693 0.487544 0.496006 -20 24993414 25011423 0 4 NaN NaN NaN 0.455045 0.485156 0.497168 -20 25038484 25059442 0 2 NaN NaN NaN 0.448530 0.482632 0.496936 -20 25190598 25196520 0 2 NaN NaN NaN 0.441364 0.488867 0.498955 -20 25252161 25255338 0 2 NaN NaN NaN 0.465126 0.487505 0.497912 -20 25257260 25261784 0 6 NaN NaN NaN 0.453951 0.484679 0.496946 -20 25262769 25262789 0 2 NaN NaN NaN 0.452966 0.489449 0.498299 -20 25263756 25263756 0 1 NaN NaN NaN 0.434767 0.478663 0.496270 -20 25264664 25282944 0 13 NaN NaN NaN 0.388087 0.473774 0.496993 -20 25286059 25286059 0 1 NaN NaN NaN 0.458137 0.489603 0.499117 -20 25288505 25324410 0 5 NaN NaN NaN 0.461822 0.491138 0.499235 -20 25336445 25398876 0 5 NaN NaN NaN 0.406955 0.472452 0.498211 -20 25424713 25424713 0 1 NaN NaN NaN 0.468250 0.490894 0.498720 -20 25434351 25470056 0 11 NaN NaN NaN 0.427766 0.483422 0.498475 -20 25597236 25604655 0 2 NaN NaN NaN 0.463410 0.489653 0.495903 -20 25622858 25622858 0 1 NaN NaN NaN 0.454156 0.488898 0.498166 -20 25629114 25666807 0 3 NaN NaN NaN 0.441505 0.476521 0.492230 -20 25699941 25700293 0 4 NaN NaN NaN 0.449375 0.484819 0.496340 -20 25754173 25755672 0 2 NaN NaN NaN 0.428449 0.478110 0.496348 -20 25756059 25837915 0 2 NaN NaN NaN 0.472357 0.489183 0.497799 -20 25838130 25838130 0 1 NaN NaN NaN 0.478539 0.490490 0.498095 -20 25838802 25841650 0 4 NaN NaN NaN 0.463860 0.485930 0.498646 -20 25846283 25900162 0 3 NaN NaN NaN 0.383021 0.461568 0.483214 -20 25900379 26134237 0 4 NaN NaN NaN 0.473814 0.490025 0.498743 -20 26138206 29449417 0 2 NaN NaN NaN 0.468111 0.491429 0.498098 -20 29449678 29449678 0 1 NaN NaN NaN 0.451866 0.488259 0.496688 -20 29516670 29516670 0 1 NaN NaN NaN 0.457096 0.485447 0.494573 -20 29517417 29520510 0 3 NaN NaN NaN 0.451934 0.486084 0.498433 -20 29521061 29632564 0 4 NaN NaN NaN 0.445392 0.480222 0.498108 -20 29633929 29648701 0 3 NaN NaN NaN 0.465282 0.484919 0.497970 -20 29847211 29847211 0 1 NaN NaN NaN 0.457433 0.488237 0.498853 -20 29847618 29872796 0 2 NaN NaN NaN 0.471115 0.487864 0.499027 -20 29873577 29873577 0 1 NaN NaN NaN 0.444686 0.484249 0.496769 -20 29899208 29899208 0 1 NaN NaN NaN 0.454852 0.487017 0.498025 -20 29977156 29977156 0 1 NaN NaN NaN 0.446794 0.487598 0.497218 -20 29986332 30035869 0 2 NaN NaN NaN 0.470789 0.490070 0.498263 -20 30037783 30037783 0 1 NaN NaN NaN 0.434266 0.486019 0.498150 -20 30053255 31025163 0 2 NaN NaN NaN 0.465697 0.485741 0.496971 -20 31647126 31676804 0 8 NaN NaN NaN 0.444530 0.479199 0.496528 -20 31811551 31826027 0 4 NaN NaN NaN 0.394819 0.469950 0.491270 -20 31828265 31897554 0 2 NaN NaN NaN 0.427049 0.483290 0.498352 -20 31956468 32289763 0 2 NaN NaN NaN 0.463618 0.486060 0.497876 -20 32325329 32330930 0 2 NaN NaN NaN 0.452085 0.491094 0.498530 -20 32340077 32710710 0 8 NaN NaN NaN 0.403502 0.469435 0.493744 -20 32935192 33006597 0 6 NaN NaN NaN 0.455757 0.491221 0.498616 -20 33030405 33031276 0 2 NaN NaN NaN 0.453932 0.480978 0.497020 -20 33037336 33150503 0 7 NaN NaN NaN 0.410605 0.475371 0.498178 -20 33178782 33279604 0 5 NaN NaN NaN 0.451747 0.485581 0.497574 -20 33283649 33879478 0 2 NaN NaN NaN 0.445047 0.477625 0.495349 -20 33882720 33882791 0 2 NaN NaN NaN 0.464764 0.489134 0.497856 -20 34218673 34243017 0 4 NaN NaN NaN 0.464521 0.484707 0.496388 -20 34269577 34269577 0 1 NaN NaN NaN 0.463661 0.487835 0.497770 -20 34271574 34271574 0 1 NaN NaN NaN 0.461294 0.486101 0.495383 -20 34289005 34289005 0 1 NaN NaN NaN 0.465362 0.491553 0.498976 -20 34304783 34312834 0 6 NaN NaN NaN 0.455327 0.484563 0.499003 -20 34314114 34314114 0 1 NaN NaN NaN 0.454291 0.490179 0.498600 -20 34314140 34324484 0 9 NaN NaN NaN 0.450332 0.485946 0.497477 -20 34324648 34335861 0 3 NaN NaN NaN 0.435694 0.489045 0.498116 -20 34339854 34431377 0 4 NaN NaN NaN 0.452092 0.490279 0.498339 -20 34443173 34446395 0 2 NaN NaN NaN 0.452656 0.491916 0.498965 -20 34457513 34457513 0 1 NaN NaN NaN 0.459512 0.484271 0.495413 -20 34492974 34492974 0 1 NaN NaN NaN 0.445650 0.488525 0.498350 -20 34499996 34505054 0 3 NaN NaN NaN 0.460593 0.482712 0.495322 -20 34525807 34525807 0 1 NaN NaN NaN 0.461335 0.487325 0.498689 -20 34535373 34581979 0 5 NaN NaN NaN 0.465054 0.491238 0.498646 -20 34589995 34766745 0 8 NaN NaN NaN 0.446354 0.484902 0.497389 -20 34775551 34782171 0 2 NaN NaN NaN 0.452909 0.484514 0.497843 -20 34974252 34974252 0 1 NaN NaN NaN 0.458514 0.483049 0.495218 -20 35068018 35740794 0 10 NaN NaN NaN 0.464611 0.484844 0.497905 -20 35748894 35869619 0 21 NaN NaN NaN 0.355384 0.429946 0.495302 -20 36022539 36288284 0 3 NaN NaN NaN 0.450517 0.475972 0.498783 -20 36337303 36607077 0 3 NaN NaN NaN 0.450674 0.485199 0.498106 -20 36615416 36793501 0 8 NaN NaN NaN 0.460372 0.485668 0.499477 -20 36793529 36793529 0 1 NaN NaN NaN 0.466968 0.488682 0.496430 -20 36841756 36919758 0 4 NaN NaN NaN 0.461619 0.488032 0.497374 -20 36932551 36944379 0 5 NaN NaN NaN 0.469842 0.489702 0.499035 -20 36946848 36953097 0 3 NaN NaN NaN 0.461027 0.488350 0.498938 -20 36958262 36958262 0 1 NaN NaN NaN 0.468382 0.486931 0.496832 -20 36959318 36965617 0 4 NaN NaN NaN 0.464622 0.490855 0.497594 -20 36989269 37291486 0 19 NaN NaN NaN 0.441101 0.476280 0.494393 -20 37366218 37396262 0 9 NaN NaN NaN 0.448302 0.485851 0.495925 -20 37404951 38354742 0 4 NaN NaN NaN 0.439011 0.480113 0.498857 -20 38483658 39501689 0 3 NaN NaN NaN 0.459348 0.485904 0.499248 -20 39501744 40126679 0 12 NaN NaN NaN 0.446913 0.478544 0.497996 -20 40179909 40179920 0 2 NaN NaN NaN 0.464615 0.489131 0.498518 -20 40234917 43803708 0 48 NaN NaN NaN 0.472699 0.490850 0.496812 -20 43803725 43881630 0 10 NaN NaN NaN 0.465858 0.490590 0.497707 -20 43920730 44645010 0 19 NaN NaN NaN 0.474869 0.488565 0.496091 -20 44650318 44650318 0 1 NaN NaN NaN 0.468292 0.490065 0.496810 -20 44806875 44806875 0 1 NaN NaN NaN 0.437187 0.488111 0.497875 -20 44812893 44983517 0 2 NaN NaN NaN 0.462277 0.486693 0.498852 -20 44987318 45023247 0 2 NaN NaN NaN 0.457689 0.488415 0.497906 -20 45092517 45092921 0 3 NaN NaN NaN 0.444307 0.481060 0.496729 -20 45093125 45789953 0 5 NaN NaN NaN 0.464691 0.487053 0.497813 -20 45797639 45816649 0 12 NaN NaN NaN 0.461226 0.483966 0.496963 -20 45891189 45891189 0 1 NaN NaN NaN 0.466247 0.490875 0.497410 -20 45923383 47253043 0 12 NaN NaN NaN 0.448801 0.482245 0.496619 -20 47256300 47258763 0 4 NaN NaN NaN 0.448856 0.485901 0.498971 -20 47261017 47361725 0 14 NaN NaN NaN 0.454719 0.486133 0.497414 -20 47569112 47589122 0 6 NaN NaN NaN 0.462051 0.487741 0.497936 -20 47591082 47639464 0 12 NaN NaN NaN 0.456223 0.486110 0.497065 -20 47648353 47850182 0 12 NaN NaN NaN 0.466968 0.489930 0.498332 -20 47852822 47859217 0 2 NaN NaN NaN 0.442895 0.480146 0.495860 -20 47865372 48129706 0 10 NaN NaN NaN 0.462516 0.491146 0.499206 -20 48129987 48129987 0 1 NaN NaN NaN 0.458388 0.488777 0.498550 -20 48130628 48259034 0 5 NaN NaN NaN 0.459605 0.486460 0.498175 -20 48300990 48300990 0 1 NaN NaN NaN 0.421951 0.476334 0.496456 -20 48301146 48701527 0 4 NaN NaN NaN 0.465790 0.486542 0.497922 -20 48720687 49225953 0 9 NaN NaN NaN 0.455809 0.485532 0.497780 -20 49227294 49575334 0 5 NaN NaN NaN 0.463268 0.486052 0.495299 -20 50078910 54464410 0 39 NaN NaN NaN 0.473551 0.488399 0.498098 -20 54935242 54941140 0 5 NaN NaN NaN 0.471659 0.488217 0.498127 -20 54945783 55803149 0 13 NaN NaN NaN 0.471819 0.486891 0.497614 -20 56064267 56064267 0 1 NaN NaN NaN 0.460881 0.490538 0.497503 -20 56071296 56136536 0 4 NaN NaN NaN 0.463449 0.488820 0.498069 -20 56137184 57024589 0 17 NaN NaN NaN 0.478774 0.493065 0.497898 -20 57045667 57045765 0 2 NaN NaN NaN 0.455902 0.482100 0.495597 -20 57266134 57470517 0 9 NaN NaN NaN 0.463290 0.484055 0.498070 -20 57478448 57569860 0 7 NaN NaN NaN 0.442290 0.484602 0.496214 -20 57570854 57768399 0 7 NaN NaN NaN 0.456789 0.482995 0.495408 -20 57768743 58578068 0 8 NaN NaN NaN 0.458088 0.485747 0.497221 -20 58581863 60582540 0 10 NaN NaN NaN 0.469340 0.492176 0.499473 -20 60584328 60584328 0 1 NaN NaN NaN 0.469606 0.486805 0.498725 -20 60712284 60712284 0 1 NaN NaN NaN 0.446165 0.486713 0.498804 -20 60712347 60735098 0 9 NaN NaN NaN 0.443020 0.485701 0.497612 -20 60739079 60739079 0 1 NaN NaN NaN 0.450782 0.488893 0.499415 -20 60740362 60740362 0 1 NaN NaN NaN 0.461641 0.482177 0.496910 -20 60740447 60886611 0 16 NaN NaN NaN 0.467222 0.488749 0.498571 -20 60897721 60992224 0 10 NaN NaN NaN 0.464816 0.490179 0.497396 -20 60992402 61039958 0 2 NaN NaN NaN 0.456024 0.484596 0.496870 -20 61040125 61040125 0 1 NaN NaN NaN 0.439679 0.485863 0.498157 -20 61040313 61040313 0 1 NaN NaN NaN 0.470694 0.487907 0.498310 -20 61041653 61150928 0 3 NaN NaN NaN 0.450856 0.475944 0.493915 -20 61150959 61162037 0 2 NaN NaN NaN 0.452293 0.488516 0.498202 -20 61162100 61162100 0 1 NaN NaN NaN 0.453462 0.486560 0.498397 -20 61167883 61443547 0 8 NaN NaN NaN 0.463078 0.488833 0.498867 -20 61444697 61444697 0 1 NaN NaN NaN 0.453540 0.490078 0.499349 -20 61444785 61453348 0 2 NaN NaN NaN 0.460340 0.492539 0.499071 -20 61453549 61527563 0 14 NaN NaN NaN 0.468970 0.489146 0.498941 -20 61528074 61528074 0 1 NaN NaN NaN 0.460803 0.486210 0.498698 -20 61528271 61528306 0 2 NaN NaN NaN 0.464593 0.488835 0.498574 -20 61541028 61542001 0 2 NaN NaN NaN 0.462040 0.486408 0.498898 -20 61588159 61834695 0 4 NaN NaN NaN 0.464531 0.485480 0.495528 -20 61869607 61869607 0 1 NaN NaN NaN 0.448257 0.482176 0.498549 -20 61870727 61875909 0 5 NaN NaN NaN 0.447468 0.481850 0.496815 -20 61879009 61879009 0 1 NaN NaN NaN 0.439564 0.483909 0.498593 -20 61880274 62234240 0 21 NaN NaN NaN 0.461432 0.482246 0.496660 -20 62245686 62305274 0 5 NaN NaN NaN 0.464720 0.490891 0.498386 -20 62324289 62698484 0 10 NaN NaN NaN 0.464121 0.486941 0.497742 -20 62701092 62720193 0 5 NaN NaN NaN 0.471197 0.491010 0.498038 -20 62729431 62836271 0 3 NaN NaN NaN 0.456016 0.488800 0.497346 -20 62836520 62854417 0 2 NaN NaN NaN 0.469090 0.489481 0.497984 -20 62868043 62904542 0 3 NaN NaN NaN 0.453158 0.481396 0.497848 +20 138125 138148 0 2 NaN NaN NaN 0.460434 0.490184 0.499296 +20 139409 139576 0 3 NaN NaN NaN 0.453976 0.486981 0.498205 +20 168466 259156 0 13 NaN NaN NaN 0.454587 0.492084 0.499293 +20 259818 259818 0 1 NaN NaN NaN 0.447380 0.482895 0.498186 +20 259969 278806 0 2 NaN NaN NaN 0.448854 0.483264 0.495394 +20 316911 316911 0 1 NaN NaN NaN 0.472993 0.494986 0.498601 +20 355319 360306 0 4 NaN NaN NaN 0.463678 0.486573 0.497766 +20 368905 377226 0 3 NaN NaN NaN 0.447725 0.479829 0.497487 +20 389456 402921 0 4 NaN NaN NaN 0.457089 0.485645 0.497324 +20 425606 425606 0 1 NaN NaN NaN 0.448019 0.482467 0.498973 +20 428767 744415 0 8 NaN NaN NaN 0.465704 0.488948 0.497850 +20 744570 744570 0 1 NaN NaN NaN 0.462078 0.487091 0.498351 +20 746098 1285933 0 6 NaN NaN NaN 0.464773 0.485290 0.496726 +20 1417397 1417397 0 1 NaN NaN NaN 0.451706 0.484873 0.498250 +20 1424303 1424303 0 1 NaN NaN NaN 0.460276 0.489536 0.499400 +20 1426393 1458504 0 3 NaN NaN NaN 0.467522 0.485276 0.498588 +20 1510769 1510769 0 1 NaN NaN NaN 0.448234 0.477227 0.494773 +20 1517979 1538249 0 4 NaN NaN NaN 0.444083 0.473807 0.496519 +20 1540032 1540032 0 1 NaN NaN NaN 0.469498 0.488371 0.499077 +20 1546911 1552430 0 3 NaN NaN NaN 0.465833 0.482744 0.495503 +20 1592265 1592284 0 2 NaN NaN NaN 0.388623 0.471636 0.498685 +20 1600524 1610894 0 4 NaN NaN NaN 0.470144 0.488336 0.497910 +20 1615883 1880912 0 6 NaN NaN NaN 0.455607 0.486071 0.497994 +20 1895630 1895658 0 2 NaN NaN NaN 0.463521 0.485156 0.497243 +20 1895889 1896244 0 2 NaN NaN NaN 0.430605 0.483477 0.497440 +20 2036954 2139080 0 4 NaN NaN NaN 0.459054 0.491162 0.498942 +20 2315929 2357863 0 3 NaN NaN NaN 0.445993 0.480480 0.497003 +20 2482325 2517825 0 3 NaN NaN NaN 0.458293 0.486506 0.497311 +20 2542747 2552805 0 2 NaN NaN NaN 0.454241 0.483899 0.498694 +20 2593006 2621998 0 10 NaN NaN NaN 0.449364 0.482314 0.495168 +20 2624956 2655019 0 3 NaN NaN NaN 0.450557 0.489741 0.499140 +20 2777828 2779257 0 2 NaN NaN NaN 0.459450 0.487771 0.498640 +20 2796471 2818801 0 2 NaN NaN NaN 0.468498 0.483997 0.497081 +20 2945759 3005413 0 7 NaN NaN NaN 0.463499 0.487026 0.498142 +20 3007228 3007492 0 2 NaN NaN NaN 0.387339 0.477685 0.498292 +20 3013228 3054033 0 2 NaN NaN NaN 0.453197 0.482918 0.497871 +20 3147024 3624830 0 5 NaN NaN NaN 0.445961 0.486933 0.497118 +20 3640823 3640823 0 1 NaN NaN NaN 0.462666 0.490137 0.499568 +20 3641881 3675333 0 11 NaN NaN NaN 0.447027 0.488941 0.498221 +20 3675498 3686436 0 8 NaN NaN NaN 0.451301 0.481394 0.493853 +20 3701867 3732633 0 4 NaN NaN NaN 0.436802 0.478649 0.499094 +20 3838441 3838441 0 1 NaN NaN NaN 0.439626 0.482882 0.498844 +20 3858985 4055656 0 3 NaN NaN NaN 0.452064 0.483880 0.495925 +20 4138585 4162411 0 4 NaN NaN NaN 0.426056 0.478765 0.497846 +20 4167234 4843609 0 9 NaN NaN NaN 0.464091 0.488069 0.498543 +20 4880308 5035125 0 2 NaN NaN NaN 0.464237 0.487172 0.498629 +20 5063643 5063643 0 1 NaN NaN NaN 0.446118 0.483328 0.499048 +20 5068730 5068730 0 1 NaN NaN NaN 0.454063 0.479350 0.498764 +20 5159344 5482307 0 16 NaN NaN NaN 0.447803 0.478233 0.498210 +20 5528518 5634575 0 5 NaN NaN NaN 0.445101 0.483955 0.496934 +20 5640886 5738376 0 4 NaN NaN NaN 0.457593 0.487804 0.498419 +20 5903517 6065731 0 6 NaN NaN NaN 0.456486 0.479566 0.497433 +20 6090623 6100391 0 6 NaN NaN NaN 0.464884 0.488306 0.498172 +20 6194421 6195664 0 2 NaN NaN NaN 0.466463 0.489674 0.499360 +20 6302114 6798939 0 3 NaN NaN NaN 0.474227 0.491760 0.498414 +20 7866261 8581713 0 5 NaN NaN NaN 0.452260 0.482317 0.496949 +20 8625108 8625108 0 1 NaN NaN NaN 0.437420 0.481791 0.497503 +20 8625250 8639443 0 4 NaN NaN NaN 0.455576 0.485347 0.494478 +20 8665751 8703145 0 5 NaN NaN NaN 0.452752 0.474301 0.495632 +20 8707900 8707927 0 2 NaN NaN NaN 0.458551 0.490155 0.498624 +20 8708166 8708166 0 1 NaN NaN NaN 0.474001 0.490070 0.498034 +20 8737734 8737734 0 1 NaN NaN NaN 0.450880 0.478930 0.496333 +20 8741188 8741188 0 1 NaN NaN NaN 0.444763 0.482739 0.497864 +20 8742326 8742326 0 1 NaN NaN NaN 0.455033 0.489396 0.498763 +20 8755243 8770932 0 4 NaN NaN NaN 0.443649 0.482461 0.497819 +20 8773096 8773155 0 2 NaN NaN NaN 0.464203 0.492723 0.498360 +20 9108585 9376019 0 4 NaN NaN NaN 0.431972 0.484491 0.497038 +20 9417870 9510263 0 4 NaN NaN NaN 0.457622 0.480088 0.497002 +20 9624587 10004147 0 3 NaN NaN NaN 0.444964 0.477956 0.498422 +20 10012714 10012751 0 2 NaN NaN NaN 0.446668 0.483037 0.498349 +20 10024951 10024951 0 1 NaN NaN NaN 0.449815 0.484226 0.496840 +20 10026357 10032413 0 4 NaN NaN NaN 0.445564 0.482176 0.497082 +20 10329888 10393145 0 4 NaN NaN NaN 0.453621 0.482595 0.495123 +20 10426975 10439002 0 3 NaN NaN NaN 0.466376 0.492280 0.498704 +20 10629129 10629525 0 2 NaN NaN NaN 0.452277 0.482736 0.497512 +20 11224228 12113410 0 5 NaN NaN NaN 0.474877 0.493979 0.498719 +20 13054307 13060331 0 5 NaN NaN NaN 0.447051 0.490676 0.498846 +20 13071871 13074243 0 3 NaN NaN NaN 0.458712 0.488512 0.498533 +20 13090745 13227837 0 3 NaN NaN NaN 0.461960 0.485010 0.497171 +20 13239860 13260252 0 2 NaN NaN NaN 0.470416 0.491244 0.497974 +20 13709407 13709407 0 1 NaN NaN NaN 0.467603 0.487859 0.496119 +20 13769127 13769127 0 1 NaN NaN NaN 0.443801 0.482756 0.499202 +20 13798676 13830137 0 4 NaN NaN NaN 0.430177 0.482163 0.497342 +20 13845726 13845726 0 1 NaN NaN NaN 0.457690 0.486277 0.498221 +20 13872093 13885105 0 2 NaN NaN NaN 0.446412 0.480469 0.498772 +20 13921411 13992299 0 2 NaN NaN NaN 0.463438 0.486779 0.498300 +20 14273462 14273462 0 1 NaN NaN NaN 0.453439 0.486598 0.498438 +20 14306896 14306896 0 1 NaN NaN NaN 0.445844 0.489930 0.499003 +20 14306953 14306953 0 1 NaN NaN NaN 0.428035 0.480821 0.498546 +20 14319063 14319063 0 1 NaN NaN NaN 0.458149 0.485913 0.497507 +20 14910634 14910665 0 2 NaN NaN NaN 0.462191 0.486162 0.498319 +20 15131723 15411848 0 2 NaN NaN NaN 0.466228 0.491627 0.498656 +20 15874325 15967327 0 2 NaN NaN NaN 0.414514 0.483757 0.498364 +20 16729262 16730522 0 3 NaN NaN NaN 0.457663 0.488414 0.498545 +20 17028059 17460132 0 5 NaN NaN NaN 0.448718 0.490855 0.497000 +20 17474690 17594729 0 9 NaN NaN NaN 0.461752 0.492474 0.499182 +20 17595329 17595329 0 1 NaN NaN NaN 0.461384 0.490787 0.499284 +20 17596155 17596155 0 1 NaN NaN NaN 0.442160 0.473962 0.496629 +20 17596731 17597331 0 2 NaN NaN NaN 0.448900 0.479448 0.496122 +20 17597531 17597531 0 1 NaN NaN NaN 0.467745 0.489836 0.499099 +20 17600357 17990713 0 2 NaN NaN NaN 0.468554 0.490784 0.499002 +20 17992979 18022171 0 5 NaN NaN NaN 0.447403 0.482054 0.492927 +20 18142924 18175556 0 3 NaN NaN NaN 0.463277 0.480896 0.496716 +20 18192433 18241880 0 2 NaN NaN NaN 0.471613 0.485885 0.498777 +20 18286888 18286888 0 1 NaN NaN NaN 0.473563 0.490120 0.498881 +20 18287104 18327570 0 3 NaN NaN NaN 0.461803 0.483616 0.496188 +20 18429497 18429509 0 2 NaN NaN NaN 0.471049 0.490184 0.497396 +20 18432690 18446024 0 4 NaN NaN NaN 0.469614 0.488824 0.499135 +20 18806046 18806046 0 1 NaN NaN NaN 0.446312 0.488777 0.498021 +20 18810705 19261623 0 2 NaN NaN NaN 0.429752 0.469653 0.493572 +20 19345285 19345285 0 1 NaN NaN NaN 0.445614 0.487575 0.499035 +20 19560664 19914520 0 4 NaN NaN NaN 0.470360 0.485394 0.498109 +20 19941538 19951660 0 3 NaN NaN NaN 0.458458 0.484192 0.496369 +20 19970705 19970705 0 1 NaN NaN NaN 0.444941 0.488480 0.498224 +20 19987674 19987674 0 1 NaN NaN NaN 0.473440 0.491694 0.499193 +20 20007325 20033137 0 3 NaN NaN NaN 0.458911 0.490568 0.497655 +20 20033242 20033423 0 5 NaN NaN NaN 0.442468 0.485616 0.497530 +20 20037222 20152462 0 8 NaN NaN NaN 0.383598 0.461904 0.491987 +20 20168497 20265171 0 4 NaN NaN NaN 0.428327 0.479169 0.495846 +20 20269631 21147009 0 9 NaN NaN NaN 0.388698 0.485046 0.499103 +20 21147407 21868713 0 6 NaN NaN NaN 0.457290 0.484072 0.498454 +20 21897170 22714612 0 6 NaN NaN NaN 0.428639 0.473095 0.496358 +20 23345844 23425812 0 8 NaN NaN NaN 0.440309 0.479568 0.495233 +20 23426972 23426972 0 1 NaN NaN NaN 0.467893 0.492212 0.498504 +20 23528536 23529388 0 2 NaN NaN NaN 0.453514 0.485877 0.499502 +20 23529418 23731560 0 10 NaN NaN NaN 0.449138 0.480797 0.493702 +20 23756529 23756529 0 1 NaN NaN NaN 0.440413 0.482807 0.495772 +20 23756613 23756613 0 1 NaN NaN NaN 0.459569 0.482890 0.497768 +20 23761395 23761395 0 1 NaN NaN NaN 0.452716 0.480842 0.498523 +20 23805832 23807028 0 2 NaN NaN NaN 0.456561 0.482990 0.499324 +20 23842032 23842078 0 2 NaN NaN NaN 0.424279 0.478273 0.498161 +20 23860178 24200699 0 4 NaN NaN NaN 0.464521 0.484810 0.498636 +20 24201344 24201393 0 2 NaN NaN NaN 0.454831 0.487916 0.498275 +20 24790712 24790712 0 1 NaN NaN NaN 0.437908 0.492416 0.499044 +20 24911562 24938195 0 3 NaN NaN NaN 0.436223 0.485302 0.497863 +20 24939590 24959386 0 2 NaN NaN NaN 0.439154 0.482131 0.497391 +20 24993414 25011423 0 4 NaN NaN NaN 0.452759 0.485907 0.499301 +20 25038484 25059442 0 2 NaN NaN NaN 0.421380 0.473399 0.497600 +20 25190598 25196520 0 2 NaN NaN NaN 0.464501 0.491177 0.498881 +20 25252161 25255338 0 2 NaN NaN NaN 0.470785 0.489356 0.497686 +20 25257260 25261784 0 6 NaN NaN NaN 0.389955 0.476901 0.496871 +20 25262769 25262789 0 2 NaN NaN NaN 0.467130 0.492101 0.498184 +20 25263756 25263756 0 1 NaN NaN NaN 0.458307 0.479487 0.498208 +20 25264664 25282944 0 13 NaN NaN NaN 0.458384 0.489131 0.498005 +20 25286059 25286059 0 1 NaN NaN NaN 0.464842 0.487563 0.498688 +20 25288505 25324410 0 5 NaN NaN NaN 0.441620 0.479227 0.497516 +20 25336445 25398876 0 5 NaN NaN NaN 0.447225 0.484852 0.498139 +20 25424713 25424713 0 1 NaN NaN NaN 0.464878 0.489213 0.497500 +20 25434351 25470056 0 11 NaN NaN NaN 0.465879 0.485623 0.498066 +20 25597236 25604655 0 2 NaN NaN NaN 0.446418 0.487250 0.497854 +20 25622858 25622858 0 1 NaN NaN NaN 0.468142 0.488721 0.497516 +20 25629114 25666807 0 3 NaN NaN NaN 0.407661 0.480397 0.493583 +20 25699941 25700293 0 4 NaN NaN NaN 0.452132 0.486489 0.499276 +20 25754173 25755672 0 2 NaN NaN NaN 0.421888 0.477235 0.497405 +20 25756059 25837915 0 2 NaN NaN NaN 0.477208 0.490059 0.499041 +20 25838130 25838130 0 1 NaN NaN NaN 0.450676 0.481665 0.496069 +20 25838802 25841650 0 4 NaN NaN NaN 0.467296 0.486735 0.497338 +20 25846283 25900162 0 3 NaN NaN NaN 0.400701 0.474501 0.495136 +20 25900379 26134237 0 4 NaN NaN NaN 0.459843 0.489669 0.496762 +20 26138206 29449417 0 2 NaN NaN NaN 0.460606 0.489562 0.499293 +20 29449678 29449678 0 1 NaN NaN NaN 0.461306 0.490108 0.497953 +20 29516670 29516670 0 1 NaN NaN NaN 0.445434 0.482388 0.497332 +20 29517417 29520510 0 3 NaN NaN NaN 0.443656 0.479848 0.497554 +20 29521061 29632564 0 4 NaN NaN NaN 0.460992 0.484146 0.496888 +20 29633929 29648701 0 3 NaN NaN NaN 0.466731 0.487119 0.498520 +20 29847211 29847211 0 1 NaN NaN NaN 0.452252 0.488039 0.498887 +20 29847618 29872796 0 2 NaN NaN NaN 0.468938 0.491683 0.499366 +20 29873577 29873577 0 1 NaN NaN NaN 0.455265 0.485851 0.497294 +20 29899208 29899208 0 1 NaN NaN NaN 0.450682 0.484555 0.496711 +20 29977156 29977156 0 1 NaN NaN NaN 0.458957 0.488063 0.498671 +20 29986332 30035869 0 2 NaN NaN NaN 0.453485 0.485547 0.498590 +20 30037783 30037783 0 1 NaN NaN NaN 0.475835 0.490036 0.498666 +20 30053255 31025163 0 2 NaN NaN NaN 0.437103 0.483602 0.495639 +20 31647126 31676804 0 8 NaN NaN NaN 0.428218 0.481079 0.497932 +20 31811551 31826027 0 4 NaN NaN NaN 0.438438 0.480786 0.496517 +20 31828265 31897554 0 2 NaN NaN NaN 0.454624 0.487380 0.498324 +20 31956468 32289763 0 2 NaN NaN NaN 0.424312 0.485560 0.498265 +20 32325329 32330930 0 2 NaN NaN NaN 0.454202 0.484338 0.498448 +20 32340077 32710710 0 8 NaN NaN NaN 0.362933 0.444359 0.490223 +20 32935192 33006597 0 6 NaN NaN NaN 0.452374 0.485703 0.498309 +20 33030405 33031276 0 2 NaN NaN NaN 0.463400 0.488831 0.498944 +20 33037336 33150503 0 7 NaN NaN NaN 0.380579 0.476931 0.496612 +20 33178782 33279604 0 5 NaN NaN NaN 0.465602 0.484205 0.497259 +20 33283649 33879478 0 2 NaN NaN NaN 0.461913 0.489222 0.498212 +20 33882720 33882791 0 2 NaN NaN NaN 0.456287 0.487289 0.497666 +20 34218673 34243017 0 4 NaN NaN NaN 0.451490 0.481328 0.496312 +20 34269577 34269577 0 1 NaN NaN NaN 0.463039 0.488272 0.499196 +20 34271574 34271574 0 1 NaN NaN NaN 0.452613 0.488914 0.496909 +20 34289005 34289005 0 1 NaN NaN NaN 0.452237 0.491220 0.499022 +20 34304783 34312834 0 6 NaN NaN NaN 0.377342 0.481372 0.495939 +20 34314114 34314114 0 1 NaN NaN NaN 0.467645 0.492923 0.499112 +20 34314140 34324484 0 9 NaN NaN NaN 0.451978 0.485820 0.497268 +20 34324648 34335861 0 3 NaN NaN NaN 0.473362 0.488136 0.497394 +20 34339854 34431377 0 4 NaN NaN NaN 0.448856 0.482765 0.497493 +20 34443173 34446395 0 2 NaN NaN NaN 0.448091 0.482762 0.496340 +20 34457513 34457513 0 1 NaN NaN NaN 0.462159 0.488392 0.497900 +20 34492974 34492974 0 1 NaN NaN NaN 0.455535 0.490870 0.498482 +20 34499996 34505054 0 3 NaN NaN NaN 0.446249 0.479420 0.498256 +20 34525807 34525807 0 1 NaN NaN NaN 0.442364 0.481195 0.498689 +20 34535373 34581979 0 5 NaN NaN NaN 0.456539 0.486439 0.497588 +20 34589995 34766745 0 8 NaN NaN NaN 0.437184 0.489427 0.498905 +20 34775551 34782171 0 2 NaN NaN NaN 0.469808 0.489869 0.499042 +20 34974252 34974252 0 1 NaN NaN NaN 0.445748 0.481609 0.492556 +20 35068018 35740794 0 10 NaN NaN NaN 0.464681 0.487597 0.498203 +20 35748894 35869619 0 21 NaN NaN NaN 0.369695 0.423835 0.479538 +20 36022539 36288284 0 3 NaN NaN NaN 0.434927 0.487231 0.497979 +20 36337303 36607077 0 3 NaN NaN NaN 0.449672 0.483354 0.496946 +20 36615416 36793501 0 8 NaN NaN NaN 0.432721 0.482939 0.499334 +20 36793529 36793529 0 1 NaN NaN NaN 0.440256 0.484254 0.497543 +20 36841756 36919758 0 4 NaN NaN NaN 0.469843 0.489908 0.498566 +20 36932551 36944379 0 5 NaN NaN NaN 0.462033 0.486311 0.498534 +20 36946848 36953097 0 3 NaN NaN NaN 0.450135 0.483083 0.498330 +20 36958262 36958262 0 1 NaN NaN NaN 0.453375 0.484553 0.498961 +20 36959318 36965617 0 4 NaN NaN NaN 0.413945 0.472093 0.497277 +20 36989269 37291486 0 19 NaN NaN NaN 0.411379 0.473824 0.492787 +20 37366218 37396262 0 9 NaN NaN NaN 0.456673 0.491919 0.499590 +20 37404951 38354742 0 4 NaN NaN NaN 0.440430 0.472428 0.497850 +20 38483658 39501689 0 3 NaN NaN NaN 0.452357 0.482185 0.494986 +20 39501744 40126679 0 12 NaN NaN NaN 0.446647 0.487710 0.498695 +20 40179909 40179920 0 2 NaN NaN NaN 0.465611 0.487282 0.497982 +20 40234917 43803708 0 48 NaN NaN NaN 0.456142 0.488258 0.498201 +20 43803725 43881630 0 10 NaN NaN NaN 0.464148 0.486133 0.499149 +20 43920730 44645010 0 19 NaN NaN NaN 0.463745 0.481262 0.493393 +20 44650318 44650318 0 1 NaN NaN NaN 0.442719 0.473708 0.497030 +20 44806875 44806875 0 1 NaN NaN NaN 0.454028 0.489757 0.497468 +20 44812893 44983517 0 2 NaN NaN NaN 0.420470 0.487612 0.498797 +20 44987318 45023247 0 2 NaN NaN NaN 0.452640 0.479764 0.498640 +20 45092517 45092921 0 3 NaN NaN NaN 0.448411 0.491257 0.499235 +20 45093125 45789953 0 5 NaN NaN NaN 0.462363 0.491570 0.498117 +20 45797639 45816649 0 12 NaN NaN NaN 0.464985 0.487772 0.497823 +20 45891189 45891189 0 1 NaN NaN NaN 0.456895 0.486319 0.498029 +20 45923383 47253043 0 12 NaN NaN NaN 0.437330 0.486640 0.498939 +20 47256300 47258763 0 4 NaN NaN NaN 0.448233 0.480363 0.496259 +20 47261017 47361725 0 14 NaN NaN NaN 0.457149 0.488718 0.497551 +20 47569112 47589122 0 6 NaN NaN NaN 0.464327 0.487752 0.499047 +20 47591082 47639464 0 12 NaN NaN NaN 0.467733 0.486825 0.498215 +20 47648353 47850182 0 12 NaN NaN NaN 0.452828 0.483399 0.498619 +20 47852822 47859217 0 2 NaN NaN NaN 0.462212 0.492586 0.498053 +20 47865372 48129706 0 10 NaN NaN NaN 0.465947 0.490095 0.498235 +20 48129987 48129987 0 1 NaN NaN NaN 0.460453 0.490726 0.499314 +20 48130628 48259034 0 5 NaN NaN NaN 0.459919 0.490614 0.498955 +20 48300990 48300990 0 1 NaN NaN NaN 0.452984 0.484971 0.497330 +20 48301146 48701527 0 4 NaN NaN NaN 0.474371 0.488398 0.497599 +20 48720687 49225953 0 9 NaN NaN NaN 0.457860 0.482330 0.497673 +20 49227294 49575334 0 5 NaN NaN NaN 0.475173 0.491330 0.499207 +20 50078910 54464410 0 39 NaN NaN NaN 0.469053 0.488314 0.498636 +20 54935242 54941140 0 5 NaN NaN NaN 0.456144 0.484160 0.498089 +20 54945783 55803149 0 13 NaN NaN NaN 0.462125 0.488177 0.497216 +20 56064267 56064267 0 1 NaN NaN NaN 0.444666 0.482527 0.497378 +20 56071296 56136536 0 4 NaN NaN NaN 0.465843 0.488155 0.497390 +20 56137184 57024589 0 17 NaN NaN NaN 0.459149 0.484309 0.496623 +20 57045667 57045765 0 2 NaN NaN NaN 0.443906 0.479921 0.497793 +20 57266134 57470517 0 9 NaN NaN NaN 0.472568 0.492878 0.498200 +20 57478448 57569860 0 7 NaN NaN NaN 0.454338 0.485450 0.498503 +20 57570854 57768399 0 7 NaN NaN NaN 0.468466 0.488630 0.499160 +20 57768743 58578068 0 8 NaN NaN NaN 0.479529 0.492119 0.498696 +20 58581863 60582540 0 10 NaN NaN NaN 0.466288 0.489301 0.499123 +20 60584328 60584328 0 1 NaN NaN NaN 0.464335 0.489799 0.496885 +20 60712284 60712284 0 1 NaN NaN NaN 0.442181 0.485124 0.498852 +20 60712347 60735098 0 9 NaN NaN NaN 0.478940 0.492581 0.499016 +20 60739079 60739079 0 1 NaN NaN NaN 0.455358 0.485029 0.497990 +20 60740362 60740362 0 1 NaN NaN NaN 0.457997 0.487558 0.498100 +20 60740447 60886611 0 16 NaN NaN NaN 0.464101 0.484383 0.497441 +20 60897721 60992224 0 10 NaN NaN NaN 0.460464 0.485621 0.498462 +20 60992402 61039958 0 2 NaN NaN NaN 0.443693 0.484444 0.495282 +20 61040125 61040125 0 1 NaN NaN NaN 0.459168 0.483449 0.497955 +20 61040313 61040313 0 1 NaN NaN NaN 0.472881 0.491679 0.498592 +20 61041653 61150928 0 3 NaN NaN NaN 0.459862 0.490558 0.498679 +20 61150959 61162037 0 2 NaN NaN NaN 0.461984 0.490706 0.497922 +20 61162100 61162100 0 1 NaN NaN NaN 0.462580 0.489902 0.499510 +20 61167883 61443547 0 8 NaN NaN NaN 0.466374 0.489014 0.498194 +20 61444697 61444697 0 1 NaN NaN NaN 0.470155 0.485852 0.498770 +20 61444785 61453348 0 2 NaN NaN NaN 0.465422 0.491863 0.499370 +20 61453549 61527563 0 14 NaN NaN NaN 0.470363 0.489367 0.497731 +20 61528074 61528074 0 1 NaN NaN NaN 0.425956 0.488365 0.497173 +20 61528271 61528306 0 2 NaN NaN NaN 0.446290 0.481513 0.498134 +20 61541028 61542001 0 2 NaN NaN NaN 0.431168 0.478006 0.489505 +20 61588159 61834695 0 4 NaN NaN NaN 0.454649 0.486121 0.497582 +20 61869607 61869607 0 1 NaN NaN NaN 0.457406 0.480959 0.498766 +20 61870727 61875909 0 5 NaN NaN NaN 0.468459 0.487113 0.496821 +20 61879009 61879009 0 1 NaN NaN NaN 0.461557 0.484165 0.495584 +20 61880274 62234240 0 21 NaN NaN NaN 0.468643 0.490869 0.498391 +20 62245686 62305274 0 5 NaN NaN NaN 0.443920 0.476067 0.497015 +20 62324289 62698484 0 10 NaN NaN NaN 0.455244 0.484321 0.498762 +20 62701092 62720193 0 5 NaN NaN NaN 0.444600 0.487363 0.498842 +20 62729431 62836271 0 3 NaN NaN NaN 0.414653 0.475402 0.495953 +20 62836520 62854417 0 2 NaN NaN NaN 0.457524 0.488430 0.498349 +20 62868043 62904542 0 3 NaN NaN NaN 0.416166 0.476612 0.495896 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.af.param index 4ecb3b3a561..c1095d09ceb 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.071919 1.083975 1.094159 1.107253 1.114895 1.126273 1.131272 1.146231 1.159403 -BIAS_VARIANCE 0.411686 0.418478 0.431803 0.440233 0.451278 0.460688 0.476434 0.486997 0.495994 -OUTLIER_PROBABILITY 0.050319 0.058925 0.064151 0.067747 0.070172 0.077448 0.084848 0.089142 0.098892 +MEAN_BIAS 1.092310 1.098678 1.111646 1.117541 1.120565 1.125976 1.133225 1.136642 1.148982 +BIAS_VARIANCE 0.451935 0.459585 0.465554 0.471289 0.475876 0.479446 0.482660 0.491585 0.495789 +OUTLIER_PROBABILITY 0.045637 0.051060 0.054284 0.057989 0.064227 0.068471 0.077494 0.083395 0.093476 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.seg index 4785253fc27..1cc21a3ed90 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.seg @@ -2,89 +2,89 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 68100 363520 28 20 0.616858 0.645817 0.674736 0.447788 0.481028 0.497632 -20 368404 377586 3 3 0.455567 0.553719 0.619254 0.466718 0.492327 0.497891 -20 389132 398077 4 3 0.580702 0.639602 0.734505 0.445849 0.481161 0.498706 -20 398078 1373576 94 11 0.636273 0.656804 0.674736 0.458694 0.490526 0.499272 -20 1424143 1426618 2 2 0.558403 0.686476 0.821470 0.458244 0.483936 0.498648 -20 1432887 1515339 16 2 0.664547 0.697313 0.747386 0.438730 0.483349 0.493308 -20 1517550 1559592 7 8 0.664479 0.733470 0.804384 0.437448 0.483021 0.498283 -20 1600264 1896353 7 9 0.504773 0.588939 0.638667 0.411974 0.472609 0.498112 -20 1901790 2474793 51 2 0.610221 0.628385 0.643121 0.456590 0.487358 0.497464 -20 2517017 2518214 2 3 0.466824 0.581057 0.727678 0.465307 0.490760 0.498456 -20 2538851 2597102 13 2 0.679380 0.737303 0.802924 0.462295 0.487364 0.498186 -20 2597467 2622249 5 8 0.586969 0.673810 0.758800 0.450553 0.484032 0.498764 -20 2633368 3680358 256 21 0.620770 0.627961 0.638491 0.451140 0.481890 0.497300 -20 3681738 3686841 4 6 0.513418 0.599017 0.663398 0.440501 0.483976 0.498477 -20 3686842 4866807 95 13 0.598378 0.621248 0.637607 0.441344 0.479451 0.498791 -20 4879950 4880610 1 1 -38.354541 -19.841739 1.879385 0.453875 0.484130 0.496080 +20 68100 363520 28 20 0.616858 0.645817 0.674736 0.409789 0.471381 0.498710 +20 368404 377586 3 3 0.455567 0.553719 0.619254 0.444268 0.484721 0.498171 +20 389132 398077 4 3 0.580702 0.639602 0.734505 0.457889 0.491709 0.498982 +20 398078 1373576 94 11 0.636273 0.656804 0.674736 0.459475 0.483937 0.496808 +20 1424143 1426618 2 2 0.558403 0.686476 0.821470 0.444009 0.485036 0.497889 +20 1432887 1515339 16 2 0.664547 0.697313 0.747386 0.434855 0.475514 0.496759 +20 1517550 1559592 7 8 0.664479 0.733470 0.804384 0.383600 0.461272 0.495372 +20 1600264 1896353 7 9 0.504773 0.588939 0.638667 0.458351 0.480160 0.495468 +20 1901790 2474793 51 2 0.610221 0.628385 0.643121 0.464564 0.482640 0.496452 +20 2517017 2518214 2 3 0.466824 0.581057 0.727678 0.442603 0.485772 0.497383 +20 2538851 2597102 13 2 0.679380 0.737303 0.802924 0.436187 0.476695 0.497050 +20 2597467 2622249 5 8 0.586969 0.673810 0.758800 0.450158 0.478906 0.497040 +20 2633368 3680358 256 21 0.620770 0.627961 0.638491 0.450843 0.479585 0.495897 +20 3681738 3686841 4 6 0.513418 0.599017 0.663398 0.464355 0.490281 0.497014 +20 3686842 4866807 95 13 0.598378 0.621248 0.637607 0.461567 0.493639 0.499383 +20 4879950 4880610 1 1 -38.354541 -19.841739 1.879385 0.432495 0.482473 0.496767 20 4882837 5171132 27 0 0.610876 0.647102 0.682110 NaN NaN NaN -20 5282435 5297334 3 5 0.451959 0.554162 0.660650 0.464823 0.489456 0.496935 -20 5454040 8746257 127 26 0.647893 0.660167 0.671549 0.431505 0.486266 0.498351 -20 8754935 8771160 5 5 0.754330 0.823035 0.912155 0.459762 0.484310 0.497243 -20 8772985 9416547 29 2 0.858519 0.883094 0.926069 0.451955 0.489006 0.498764 -20 9417398 9425142 3 3 0.573965 0.670621 0.746411 0.439868 0.485263 0.498747 -20 9433743 10025443 24 2 0.832737 0.877060 0.915016 0.447487 0.482660 0.496834 -20 10025971 10032789 3 4 0.850305 0.956211 1.045650 0.402745 0.482583 0.493137 -20 10033509 13055397 58 4 0.858814 0.887775 0.902961 0.462677 0.489072 0.498997 -20 13071480 13091116 3 3 0.863603 0.960950 1.085440 0.452368 0.486677 0.497540 -20 13097902 16729903 128 10 0.858418 0.873171 0.891151 0.458769 0.484539 0.497666 -20 16730297 16730907 1 2 0.786506 0.989487 1.137585 0.470538 0.490279 0.498069 +20 5282435 5297334 3 5 0.451959 0.554162 0.660650 0.440798 0.483426 0.497444 +20 5454040 8746257 127 26 0.647893 0.660167 0.671549 0.401577 0.478646 0.495989 +20 8754935 8771160 5 5 0.754330 0.823035 0.912155 0.461202 0.487140 0.499448 +20 8772985 9416547 29 2 0.858519 0.883094 0.926069 0.457733 0.483351 0.498120 +20 9417398 9425142 3 3 0.573965 0.670621 0.746411 0.441158 0.487900 0.498664 +20 9433743 10025443 24 2 0.832737 0.877060 0.915016 0.470050 0.489653 0.497616 +20 10025971 10032789 3 4 0.850305 0.956211 1.045650 0.416258 0.476656 0.497775 +20 10033509 13055397 58 4 0.858814 0.887775 0.902961 0.435063 0.479230 0.496810 +20 13071480 13091116 3 3 0.863603 0.960950 1.085440 0.456907 0.488265 0.497822 +20 13097902 16729903 128 10 0.858418 0.873171 0.891151 0.435937 0.480662 0.497917 +20 16730297 16730907 1 2 0.786506 0.989487 1.137585 0.462517 0.483981 0.497330 20 16731489 17462967 13 0 0.888570 0.931614 0.963131 NaN NaN NaN -20 17474468 17492965 4 4 0.765912 0.858438 0.931668 0.445874 0.487314 0.496564 -20 17495115 17601704 14 3 0.855885 0.903735 0.954234 0.460581 0.486884 0.497342 -20 17601852 17602264 1 1 0.785991 0.961659 1.108774 0.465876 0.490820 0.498947 +20 17474468 17492965 4 4 0.765912 0.858438 0.931668 0.462784 0.484380 0.498417 +20 17495115 17601704 14 3 0.855885 0.903735 0.954234 0.444740 0.481472 0.491304 +20 17601852 17602264 1 1 0.785991 0.961659 1.108774 0.465607 0.487797 0.498672 20 17602460 17971079 31 0 0.866080 0.903972 0.937876 NaN NaN NaN -20 18005029 18022619 2 2 0.795920 0.931541 1.041274 0.457887 0.481805 0.494794 -20 18037928 18429964 34 3 0.919930 0.944497 0.972318 0.444253 0.481164 0.494322 -20 18432248 18433633 2 2 0.778596 0.948346 1.059295 0.448132 0.486763 0.498181 -20 18434125 18795182 47 2 0.831734 0.871539 0.893205 0.458188 0.485824 0.495650 -20 18805660 19560970 5 4 0.784477 0.880833 0.993205 0.430713 0.472450 0.495326 -20 19565364 20031518 44 3 0.951942 0.981857 1.011919 0.457509 0.482547 0.498375 -20 20032685 20051900 5 8 1.056331 1.144170 1.202413 0.431841 0.483315 0.497405 -20 20054695 21117443 68 6 0.919610 0.944809 0.962379 0.445861 0.480921 0.495268 -20 21125956 21143319 2 3 0.746576 0.885838 1.011789 0.440571 0.488567 0.499114 -20 21143320 21335762 29 1 0.915857 0.946611 0.977729 0.457365 0.484383 0.499236 -20 21336467 21337020 1 1 1.049420 1.168026 1.278388 0.453967 0.489176 0.498439 +20 18005029 18022619 2 2 0.795920 0.931541 1.041274 0.433740 0.481543 0.497831 +20 18037928 18429964 34 3 0.919930 0.944497 0.972318 0.436358 0.480910 0.497113 +20 18432248 18433633 2 2 0.778596 0.948346 1.059295 0.459969 0.481866 0.498046 +20 18434125 18795182 47 2 0.831734 0.871539 0.893205 0.460556 0.490242 0.498278 +20 18805660 19560970 5 4 0.784477 0.880833 0.993205 0.417590 0.475906 0.497200 +20 19565364 20031518 44 3 0.951942 0.981857 1.011919 0.445241 0.484677 0.497625 +20 20032685 20051900 5 8 1.056331 1.144170 1.202413 0.405932 0.485601 0.496053 +20 20054695 21117443 68 6 0.919610 0.944809 0.962379 0.387876 0.473482 0.498818 +20 21125956 21143319 2 3 0.746576 0.885838 1.011789 0.437016 0.487228 0.498208 +20 21143320 21335762 29 1 0.915857 0.946611 0.977729 0.441617 0.477593 0.497587 +20 21336467 21337020 1 1 1.049420 1.168026 1.278388 0.458295 0.490273 0.499093 20 21337021 23335353 23 0 0.843591 0.873977 0.898971 NaN NaN NaN -20 23344770 23347986 2 2 0.754716 0.889823 1.036976 0.440731 0.483960 0.498460 -20 23349148 23476803 23 3 0.923513 0.962569 1.015895 0.468827 0.490500 0.497061 -20 23528151 23529802 2 3 0.751213 0.863958 1.016981 0.436880 0.480488 0.495974 -20 23530800 23804992 16 5 0.925557 0.984711 1.032753 0.449843 0.478344 0.497631 -20 23805596 23807549 2 2 1.000609 1.122151 1.251156 0.463043 0.480164 0.497427 -20 23856574 25058753 44 6 1.007022 1.031021 1.066713 0.450253 0.483631 0.497611 -20 25059122 25059830 1 1 0.924371 1.074894 1.231265 0.440738 0.483023 0.496292 -20 25059831 25250095 19 1 1.042005 1.075242 1.125932 0.466639 0.489368 0.497765 -20 25251768 25269459 12 16 1.045976 1.096869 1.125607 0.276196 0.356818 0.482869 -20 25270235 25283234 9 8 0.971934 1.056236 1.125711 0.447577 0.484028 0.497112 -20 25283935 25426879 19 4 1.023388 1.058247 1.124318 0.420743 0.475115 0.494665 -20 25433836 25439484 3 4 1.089659 1.188626 1.278029 0.472319 0.490192 0.498962 -20 25441907 25520944 21 4 1.049891 1.081117 1.117048 0.431667 0.477774 0.492514 -20 25596310 25829597 8 5 1.113431 1.213732 1.321630 0.409198 0.474988 0.496722 +20 23344770 23347986 2 2 0.754716 0.889823 1.036976 0.451827 0.486870 0.498835 +20 23349148 23476803 23 3 0.923513 0.962569 1.015895 0.470283 0.488686 0.496804 +20 23528151 23529802 2 3 0.751213 0.863958 1.016981 0.430882 0.478451 0.494496 +20 23530800 23804992 16 5 0.925557 0.984711 1.032753 0.442622 0.482650 0.494298 +20 23805596 23807549 2 2 1.000609 1.122151 1.251156 0.431926 0.475602 0.497183 +20 23856574 25058753 44 6 1.007022 1.031021 1.066713 0.419597 0.470506 0.494977 +20 25059122 25059830 1 1 0.924371 1.074894 1.231265 0.440977 0.487037 0.497514 +20 25059831 25250095 19 1 1.042005 1.075242 1.125932 0.458144 0.485891 0.498323 +20 25251768 25269459 12 16 1.045976 1.096869 1.125607 0.300267 0.396284 0.497883 +20 25270235 25283234 9 8 0.971934 1.056236 1.125711 0.463458 0.485461 0.495536 +20 25283935 25426879 19 4 1.023388 1.058247 1.124318 0.415201 0.479079 0.494780 +20 25433836 25439484 3 4 1.089659 1.188626 1.278029 0.447954 0.489290 0.497590 +20 25441907 25520944 21 4 1.049891 1.081117 1.117048 0.461965 0.487943 0.497185 +20 25596310 25829597 8 5 1.113431 1.213732 1.321630 0.403474 0.461151 0.493035 20 26061550 26072430 3 0 0.367641 0.515342 0.634110 NaN NaN NaN -20 26083858 30126381 33 5 1.126152 1.152054 1.187677 0.458538 0.487852 0.497252 -20 30132499 31021972 161 1 1.778447 1.796121 1.818081 0.465590 0.489225 0.497884 -20 31021984 31025393 1 2 -41.644357 -19.617064 3.691117 0.465850 0.492405 0.499414 +20 26083858 30126381 33 5 1.126152 1.152054 1.187677 0.459142 0.485827 0.498167 +20 30132499 31021972 161 1 1.778447 1.796121 1.818081 0.453168 0.486421 0.499158 +20 31021984 31025393 1 2 -41.644357 -19.617064 3.691117 0.467031 0.490179 0.497997 20 31034848 31644756 121 0 1.707959 1.722598 1.734877 NaN NaN NaN -20 31646933 31657031 7 5 1.507781 1.555989 1.618804 0.444886 0.478005 0.496415 +20 31646933 31657031 7 5 1.507781 1.555989 1.618804 0.449831 0.478359 0.497385 20 31657443 31673054 9 0 1.581746 1.640515 1.722870 NaN NaN NaN -20 31673576 31677616 3 3 1.438886 1.537880 1.604160 0.469526 0.489298 0.498899 +20 31673576 31677616 3 3 1.438886 1.537880 1.604160 0.449716 0.483926 0.495909 20 31678263 31805721 17 0 1.630800 1.668371 1.724806 NaN NaN NaN -20 31811366 31828443 9 5 1.556041 1.616400 1.675757 0.352401 0.443150 0.496094 -20 31828940 32700168 105 1 1.629432 1.650935 1.663871 0.447432 0.483274 0.498539 -20 32847930 34218538 301 6 1.107186 1.114977 1.126401 0.332683 0.464406 0.489034 -20 34218539 34782534 94 23 1.132510 1.151938 1.172347 0.338286 0.463567 0.497305 -20 34783000 35555907 102 1 1.082704 1.097204 1.120763 0.448223 0.483323 0.498074 -20 35558912 35559530 1 1 0.853674 1.090897 1.288792 0.455707 0.487730 0.498486 -20 35563181 35757820 38 4 0.948333 0.974652 1.008372 0.464030 0.489280 0.497779 -20 35765963 35769967 2 2 0.868623 0.960101 1.080009 0.452696 0.484278 0.497855 -20 35771870 35833556 14 3 0.934589 0.993416 1.059647 0.447575 0.490760 0.499072 -20 35835425 35838822 2 4 0.736938 0.846223 0.971703 0.417625 0.470545 0.491784 -20 35841912 36784743 74 9 0.907187 0.929155 0.948146 0.408467 0.480739 0.495337 -20 36789571 36846128 5 6 0.812387 0.874448 0.956137 0.409074 0.479615 0.497213 -20 36846395 37272803 90 12 0.942329 0.966290 0.982398 0.459506 0.484659 0.497142 -20 37274440 37279609 6 7 0.788135 0.914467 1.002640 0.454924 0.483874 0.497529 -20 37353117 37667438 46 5 0.924444 0.945050 0.977642 0.455376 0.485197 0.497905 -20 39316268 45878435 698 77 0.115573 0.126588 0.138203 0.473228 0.491137 0.498528 -20 45890779 45891424 1 1 -0.268258 -0.088095 0.101311 0.465602 0.493225 0.498821 -20 45904807 62905205 1317 245 0.092592 0.100428 0.105982 0.485187 0.495274 0.499313 +20 31811366 31828443 9 5 1.556041 1.616400 1.675757 0.384104 0.440858 0.495959 +20 31828940 32700168 105 1 1.629432 1.650935 1.663871 0.471075 0.491959 0.498668 +20 32847930 34218538 301 6 1.107186 1.114977 1.126401 0.432530 0.485085 0.499278 +20 34218539 34782534 94 23 1.132510 1.151938 1.172347 0.392348 0.481583 0.497366 +20 34783000 35555907 102 1 1.082704 1.097204 1.120763 0.437582 0.489327 0.497035 +20 35558912 35559530 1 1 0.853674 1.090897 1.288792 0.445938 0.485191 0.495392 +20 35563181 35757820 38 4 0.948333 0.974652 1.008372 0.444197 0.475088 0.496887 +20 35765963 35769967 2 2 0.868623 0.960101 1.080009 0.450706 0.475335 0.495864 +20 35771870 35833556 14 3 0.934589 0.993416 1.059647 0.457173 0.489366 0.498523 +20 35835425 35838822 2 4 0.736938 0.846223 0.971703 0.453829 0.485948 0.498814 +20 35841912 36784743 74 9 0.907187 0.929155 0.948146 0.435112 0.480162 0.497193 +20 36789571 36846128 5 6 0.812387 0.874448 0.956137 0.456018 0.484753 0.498036 +20 36846395 37272803 90 12 0.942329 0.966290 0.982398 0.467053 0.487589 0.498108 +20 37274440 37279609 6 7 0.788135 0.914467 1.002640 0.441471 0.476914 0.495875 +20 37353117 37667438 46 5 0.924444 0.945050 0.977642 0.441712 0.484168 0.497860 +20 39316268 45878435 698 77 0.115573 0.126588 0.138203 0.472154 0.493084 0.499358 +20 45890779 45891424 1 1 -0.268258 -0.088095 0.101311 0.454396 0.485635 0.498555 +20 45904807 62905205 1317 245 0.092592 0.100428 0.105982 0.483032 0.492206 0.498982 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.af.param index 5fdb1e53c19..e6ef049c3c2 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.101501 1.111624 1.117474 1.127434 1.134135 1.139207 1.144321 1.159496 1.171021 -BIAS_VARIANCE 0.439194 0.451545 0.458149 0.463372 0.471589 0.479536 0.483401 0.485951 0.491700 -OUTLIER_PROBABILITY 0.003480 0.005827 0.009182 0.011244 0.014605 0.017407 0.020466 0.024670 0.028342 +MEAN_BIAS 1.107480 1.127598 1.130514 1.139511 1.142812 1.148875 1.156153 1.165459 1.169052 +BIAS_VARIANCE 0.452167 0.463604 0.476934 0.482244 0.485483 0.490797 0.492643 0.494530 0.498252 +OUTLIER_PROBABILITY 0.005022 0.010228 0.012933 0.015383 0.017580 0.020834 0.025056 0.034416 0.041315 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.seg index 163bd74cf93..c5525185d8b 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.seg @@ -3,125 +3,125 @@ @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 20 68100 126585 4 0 0.524470 0.601407 0.706644 NaN NaN NaN -20 137935 139917 2 5 0.785879 0.898611 1.016510 0.458031 0.482672 0.498802 -20 168276 363520 22 15 0.583876 0.625972 0.667696 0.451096 0.482099 0.498741 -20 368404 377586 3 3 0.461714 0.553914 0.626951 0.443169 0.479346 0.497185 -20 389132 398077 4 3 0.566831 0.656941 0.737884 0.454010 0.489712 0.498826 -20 398078 422417 13 1 0.608469 0.656020 0.689490 0.444038 0.488994 0.498704 -20 422418 428970 3 2 0.653730 0.744561 0.857407 0.450532 0.485500 0.497520 -20 464335 1209491 51 6 0.625960 0.646304 0.665655 0.455987 0.484154 0.498488 -20 1210274 1215085 3 2 0.415255 0.496718 0.602324 0.467127 0.490451 0.497934 -20 1218438 1373576 24 1 0.670675 0.701721 0.741305 0.466832 0.487369 0.499110 -20 1424143 1426618 2 2 0.549623 0.670839 0.798850 0.454399 0.484792 0.496795 -20 1432887 1515339 16 2 0.653477 0.694731 0.731888 0.464329 0.483343 0.496628 -20 1517550 1552935 6 6 0.728388 0.778619 0.853447 0.427385 0.475752 0.494109 -20 1558733 1617403 5 6 0.434020 0.509677 0.596605 0.426049 0.471795 0.494150 -20 1629447 2474793 54 6 0.597024 0.617708 0.654253 0.449793 0.486371 0.498833 -20 2517017 2518214 2 2 0.483187 0.624226 0.713785 0.462400 0.477034 0.495237 -20 2538851 2597102 13 3 0.699476 0.728465 0.778510 0.461209 0.484082 0.497802 -20 2597467 2622249 5 8 0.569809 0.655909 0.738855 0.464151 0.487026 0.499240 -20 2633368 2796137 50 1 0.570440 0.597928 0.616003 0.456669 0.486679 0.497837 -20 2796138 2796673 1 1 0.467547 0.638188 0.769026 0.456267 0.492618 0.498553 -20 2796731 3196210 84 10 0.622314 0.642648 0.661420 0.440870 0.490205 0.498278 -20 3198912 3199530 1 1 0.409606 0.604688 0.747195 0.445957 0.484184 0.498070 -20 3202236 3680358 120 12 0.632795 0.647795 0.665503 0.447971 0.484350 0.498621 -20 3681738 3686841 4 6 0.526923 0.597767 0.674034 0.463716 0.491703 0.498661 +20 137935 139917 2 5 0.785879 0.898611 1.016510 0.445793 0.485867 0.498427 +20 168276 363520 22 15 0.583876 0.625972 0.667696 0.458232 0.488759 0.499237 +20 368404 377586 3 3 0.461714 0.553914 0.626951 0.438345 0.481932 0.497096 +20 389132 398077 4 3 0.566831 0.656941 0.737884 0.463090 0.491570 0.499148 +20 398078 422417 13 1 0.608469 0.656020 0.689490 0.452115 0.493336 0.498722 +20 422418 428970 3 2 0.653730 0.744561 0.857407 0.475196 0.489912 0.498860 +20 464335 1209491 51 6 0.625960 0.646304 0.665655 0.464880 0.490417 0.498328 +20 1210274 1215085 3 2 0.415255 0.496718 0.602324 0.460029 0.484509 0.496862 +20 1218438 1373576 24 1 0.670675 0.701721 0.741305 0.434863 0.478191 0.496487 +20 1424143 1426618 2 2 0.549623 0.670839 0.798850 0.465797 0.489200 0.498222 +20 1432887 1515339 16 2 0.653477 0.694731 0.731888 0.436415 0.476516 0.497533 +20 1517550 1552935 6 6 0.728388 0.778619 0.853447 0.449801 0.481660 0.496806 +20 1558733 1617403 5 6 0.434020 0.509677 0.596605 0.446609 0.477000 0.498868 +20 1629447 2474793 54 6 0.597024 0.617708 0.654253 0.426963 0.481804 0.494611 +20 2517017 2518214 2 2 0.483187 0.624226 0.713785 0.445836 0.485371 0.497777 +20 2538851 2597102 13 3 0.699476 0.728465 0.778510 0.464870 0.488898 0.497643 +20 2597467 2622249 5 8 0.569809 0.655909 0.738855 0.459638 0.490843 0.499251 +20 2633368 2796137 50 1 0.570440 0.597928 0.616003 0.450413 0.488519 0.498891 +20 2796138 2796673 1 1 0.467547 0.638188 0.769026 0.452887 0.486223 0.497524 +20 2796731 3196210 84 10 0.622314 0.642648 0.661420 0.444392 0.480503 0.497243 +20 3198912 3199530 1 1 0.409606 0.604688 0.747195 0.459946 0.486965 0.497928 +20 3202236 3680358 120 12 0.632795 0.647795 0.665503 0.447657 0.479447 0.492065 +20 3681738 3686841 4 6 0.526923 0.597767 0.674034 0.459753 0.485331 0.496566 20 3686842 3719616 3 0 0.536630 0.653823 0.739464 NaN NaN NaN -20 3721211 3721811 1 1 0.432850 0.597559 0.746468 0.464964 0.488067 0.497583 -20 3722680 4055845 60 5 0.603406 0.625085 0.653040 0.460892 0.487675 0.498089 -20 4155452 4162680 3 3 0.436800 0.537025 0.647765 0.441819 0.488251 0.498867 -20 4162681 4866807 28 8 0.579587 0.618340 0.662348 0.463075 0.491977 0.498911 -20 4879950 4880610 1 1 -37.542394 0.615667 0.804203 0.467812 0.489467 0.499040 -20 4882837 5897817 53 12 0.621204 0.645923 0.672654 0.453715 0.480379 0.497693 -20 5902730 5905947 2 2 0.558012 0.672789 0.758048 0.441726 0.483849 0.496172 -20 5918930 8609330 78 13 0.644667 0.664414 0.675468 0.470237 0.484593 0.498104 -20 8626498 8639603 6 3 0.688078 0.738301 0.809159 0.459411 0.494015 0.499189 -20 8665328 8771160 23 14 0.693840 0.739937 0.766986 0.446536 0.487213 0.496601 -20 8772985 9416547 29 3 0.854021 0.881668 0.918282 0.472807 0.489842 0.497948 -20 9417398 9425142 3 3 0.568999 0.663009 0.771887 0.443315 0.487139 0.499397 +20 3721211 3721811 1 1 0.432850 0.597559 0.746468 0.460657 0.488252 0.499192 +20 3722680 4055845 60 5 0.603406 0.625085 0.653040 0.456796 0.489967 0.497601 +20 4155452 4162680 3 3 0.436800 0.537025 0.647765 0.449710 0.486831 0.498523 +20 4162681 4866807 28 8 0.579587 0.618340 0.662348 0.454679 0.484096 0.497551 +20 4879950 4880610 1 1 -37.542394 0.615667 0.804203 0.442931 0.487704 0.498279 +20 4882837 5897817 53 12 0.621204 0.645923 0.672654 0.443534 0.481419 0.498393 +20 5902730 5905947 2 2 0.558012 0.672789 0.758048 0.452608 0.477251 0.497889 +20 5918930 8609330 78 13 0.644667 0.664414 0.675468 0.450091 0.481151 0.495678 +20 8626498 8639603 6 3 0.688078 0.738301 0.809159 0.460188 0.484696 0.498440 +20 8665328 8771160 23 14 0.693840 0.739937 0.766986 0.418592 0.486230 0.497522 +20 8772985 9416547 29 3 0.854021 0.881668 0.918282 0.457301 0.486102 0.497722 +20 9417398 9425142 3 3 0.568999 0.663009 0.771887 0.450309 0.483783 0.498145 20 9433743 9499127 12 0 0.844885 0.894935 0.932438 NaN NaN NaN -20 9510038 9510719 1 1 -42.234544 0.781574 0.983984 0.453249 0.484564 0.497427 -20 9519858 10025443 11 2 0.816088 0.870296 0.920325 0.458572 0.483918 0.496565 -20 10025971 10032789 3 4 0.849116 0.925941 1.054150 0.416059 0.472763 0.495752 -20 10033509 10628978 37 3 0.847368 0.873779 0.899660 0.461706 0.485788 0.497144 -20 10628979 10629540 1 2 0.630511 0.828540 0.982925 0.451605 0.484933 0.499082 -20 10629541 13055397 20 1 0.849101 0.889400 0.926613 0.464925 0.486610 0.496707 -20 13071480 13091116 3 4 0.874972 0.944811 1.020779 0.461463 0.484479 0.497773 -20 13097902 13768250 40 1 0.854831 0.879653 0.906136 0.424272 0.479853 0.495924 -20 13768984 13769550 1 1 -3.480082 0.651350 0.843135 0.473802 0.485727 0.499085 -20 13773555 14067121 34 4 0.796034 0.818948 0.850134 0.438230 0.479576 0.498372 -20 14305952 14308404 1 2 -29.708743 0.886004 1.204083 0.463854 0.485867 0.497632 -20 14473874 16721902 50 3 0.897186 0.915981 0.937491 0.443318 0.488175 0.499073 -20 16728796 16730907 3 3 1.046724 1.147365 1.233400 0.427898 0.481790 0.496883 +20 9510038 9510719 1 1 -42.234544 0.781574 0.983984 0.431922 0.474307 0.491828 +20 9519858 10025443 11 2 0.816088 0.870296 0.920325 0.458978 0.485296 0.497405 +20 10025971 10032789 3 4 0.849116 0.925941 1.054150 0.437493 0.480054 0.499230 +20 10033509 10628978 37 3 0.847368 0.873779 0.899660 0.449639 0.487719 0.497859 +20 10628979 10629540 1 2 0.630511 0.828540 0.982925 0.462413 0.490165 0.498911 +20 10629541 13055397 20 1 0.849101 0.889400 0.926613 0.423254 0.481949 0.497124 +20 13071480 13091116 3 4 0.874972 0.944811 1.020779 0.408779 0.484474 0.497597 +20 13097902 13768250 40 1 0.854831 0.879653 0.906136 0.440968 0.484188 0.496410 +20 13768984 13769550 1 1 -3.480082 0.651350 0.843135 0.455241 0.484641 0.497044 +20 13773555 14067121 34 4 0.796034 0.818948 0.850134 0.436796 0.488863 0.499117 +20 14305952 14308404 1 2 -29.708743 0.886004 1.204083 0.457324 0.489595 0.498755 +20 14473874 16721902 50 3 0.897186 0.915981 0.937491 0.465750 0.483117 0.494326 +20 16728796 16730907 3 3 1.046724 1.147365 1.233400 0.429276 0.483001 0.495996 20 16731489 17462967 13 0 0.885677 0.927447 0.962016 NaN NaN NaN -20 17474468 17492965 4 5 0.767899 0.848583 0.914066 0.444561 0.475834 0.493753 -20 17495115 17971079 46 3 0.884311 0.906667 0.930729 0.457639 0.487817 0.496349 -20 18005029 18022619 2 2 0.745948 0.881739 1.066532 0.466782 0.490738 0.497924 -20 18037928 18429964 34 6 0.909837 0.938251 0.983586 0.457683 0.488208 0.497766 -20 18432248 18433633 2 2 0.797740 0.906709 1.047442 0.461686 0.488618 0.498365 -20 18434125 18795182 47 2 0.843838 0.869582 0.891032 0.421064 0.480900 0.496960 -20 18805660 19560970 5 4 0.838289 0.888106 0.939910 0.391508 0.471715 0.494492 -20 19565364 19937701 16 1 0.938640 0.997341 1.050233 0.462606 0.489236 0.498040 -20 19941094 19956681 4 3 0.801671 0.899010 0.994614 0.452674 0.486359 0.496118 -20 19970400 19971205 1 1 0.676305 0.828829 1.005478 0.465164 0.486897 0.499308 -20 19972562 20031518 23 1 0.952952 0.984219 1.020643 0.467670 0.489415 0.498455 -20 20032685 20050660 4 9 1.043540 1.136218 1.215523 0.435481 0.483225 0.498008 +20 17474468 17492965 4 5 0.767899 0.848583 0.914066 0.454999 0.485977 0.496023 +20 17495115 17971079 46 3 0.884311 0.906667 0.930729 0.459715 0.489877 0.497739 +20 18005029 18022619 2 2 0.745948 0.881739 1.066532 0.462521 0.487925 0.498529 +20 18037928 18429964 34 6 0.909837 0.938251 0.983586 0.448821 0.486737 0.498635 +20 18432248 18433633 2 2 0.797740 0.906709 1.047442 0.447009 0.482801 0.498572 +20 18434125 18795182 47 2 0.843838 0.869582 0.891032 0.474411 0.488506 0.498345 +20 18805660 19560970 5 4 0.838289 0.888106 0.939910 0.457942 0.490592 0.496397 +20 19565364 19937701 16 1 0.938640 0.997341 1.050233 0.449407 0.488675 0.497119 +20 19941094 19956681 4 3 0.801671 0.899010 0.994614 0.453786 0.481332 0.495590 +20 19970400 19971205 1 1 0.676305 0.828829 1.005478 0.465328 0.487769 0.496609 +20 19972562 20031518 23 1 0.952952 0.984219 1.020643 0.459628 0.488902 0.499259 +20 20032685 20050660 4 9 1.043540 1.136218 1.215523 0.408692 0.473176 0.496212 20 20051247 20066430 5 0 0.949809 1.022599 1.079028 NaN NaN NaN -20 20071237 20168952 8 6 0.982955 1.045001 1.100870 0.437489 0.476862 0.498173 +20 20071237 20168952 8 6 0.982955 1.045001 1.100870 0.447426 0.486084 0.498203 20 20171735 20232659 6 0 0.868100 0.940002 0.994605 NaN NaN NaN -20 20243349 20244026 1 1 0.592460 0.869890 1.027119 0.460877 0.486567 0.497700 -20 20245809 21117443 49 1 0.902107 0.925627 0.942873 0.451987 0.482172 0.496747 -20 21125956 21143319 2 3 0.758861 0.877973 0.982262 0.444945 0.486592 0.498343 -20 21143320 21335762 29 1 0.918967 0.950775 0.975699 0.450446 0.488195 0.497834 -20 21336467 21337020 1 1 0.951806 1.119504 1.347018 0.433674 0.485857 0.497618 +20 20243349 20244026 1 1 0.592460 0.869890 1.027119 0.438122 0.484322 0.498544 +20 20245809 21117443 49 1 0.902107 0.925627 0.942873 0.408751 0.485730 0.497850 +20 21125956 21143319 2 3 0.758861 0.877973 0.982262 0.401704 0.468562 0.493244 +20 21143320 21335762 29 1 0.918967 0.950775 0.975699 0.438312 0.479148 0.497020 +20 21336467 21337020 1 1 0.951806 1.119504 1.347018 0.432382 0.474451 0.493147 20 21337021 23335353 23 0 0.839495 0.886394 0.931221 NaN NaN NaN -20 23344770 23347986 2 2 0.784379 0.895208 0.996667 0.457406 0.486262 0.496485 -20 23349148 23476803 23 3 0.930992 0.973755 1.008134 0.456870 0.480390 0.497556 -20 23528151 23549339 6 8 0.918465 0.996926 1.107777 0.447500 0.481803 0.495308 -20 23583896 23804992 12 4 0.888770 0.959020 1.015016 0.448333 0.490936 0.498522 -20 23805596 23807549 2 2 0.974566 1.124046 1.262117 0.456094 0.487877 0.497049 -20 23856574 25058753 44 9 1.019328 1.037878 1.070047 0.435547 0.481043 0.496653 -20 25059122 25059830 1 1 0.929910 1.107691 1.338866 0.439596 0.473385 0.494929 -20 25059831 25250095 19 2 1.047704 1.076587 1.107808 0.451161 0.487525 0.495906 -20 25251768 25269459 12 15 1.032362 1.081958 1.157877 0.328503 0.432552 0.497541 -20 25270235 25398090 24 12 0.991888 1.033597 1.086257 0.388162 0.473173 0.492448 -20 25398490 25399083 1 1 1.218677 1.390608 1.553730 0.445157 0.482511 0.498461 -20 25405596 25470212 15 11 1.072084 1.114885 1.172830 0.414419 0.487009 0.498430 +20 23344770 23347986 2 2 0.784379 0.895208 0.996667 0.460554 0.484914 0.496191 +20 23349148 23476803 23 3 0.930992 0.973755 1.008134 0.450212 0.480663 0.497300 +20 23528151 23549339 6 8 0.918465 0.996926 1.107777 0.434165 0.469544 0.496407 +20 23583896 23804992 12 4 0.888770 0.959020 1.015016 0.455701 0.483432 0.499233 +20 23805596 23807549 2 2 0.974566 1.124046 1.262117 0.437890 0.478817 0.495153 +20 23856574 25058753 44 9 1.019328 1.037878 1.070047 0.449475 0.486774 0.497735 +20 25059122 25059830 1 1 0.929910 1.107691 1.338866 0.410701 0.477186 0.496561 +20 25059831 25250095 19 2 1.047704 1.076587 1.107808 0.442719 0.486679 0.497750 +20 25251768 25269459 12 15 1.032362 1.081958 1.157877 0.367954 0.476942 0.498365 +20 25270235 25398090 24 12 0.991888 1.033597 1.086257 0.362618 0.489197 0.497602 +20 25398490 25399083 1 1 1.218677 1.390608 1.553730 0.437730 0.476120 0.495946 +20 25405596 25470212 15 11 1.072084 1.114885 1.172830 0.438331 0.484138 0.495441 20 25470260 25520944 12 0 1.021558 1.075534 1.145459 NaN NaN NaN -20 25596310 25829597 8 6 1.098352 1.234171 1.333143 0.368155 0.434792 0.491948 +20 25596310 25829597 8 6 1.098352 1.234171 1.333143 0.397657 0.462887 0.497475 20 26061550 26072430 3 0 0.346585 0.476691 0.592981 NaN NaN NaN -20 26083858 30126381 33 7 1.128613 1.155134 1.189744 0.423524 0.480248 0.498177 -20 30132499 31644756 283 1 1.742213 1.754708 1.770965 0.452846 0.489331 0.498481 -20 31646933 31657031 7 5 1.486861 1.580170 1.653185 0.463974 0.487154 0.499090 -20 31657443 31673054 9 1 1.587447 1.648094 1.701662 0.467945 0.486271 0.499540 -20 31673576 31677070 2 2 1.367535 1.437547 1.576903 0.464843 0.486571 0.495059 +20 26083858 30126381 33 7 1.128613 1.155134 1.189744 0.433831 0.483528 0.496667 +20 30132499 31644756 283 1 1.742213 1.754708 1.770965 0.436856 0.475611 0.496588 +20 31646933 31657031 7 5 1.486861 1.580170 1.653185 0.444664 0.471426 0.495946 +20 31657443 31673054 9 1 1.587447 1.648094 1.701662 0.457106 0.488117 0.497674 +20 31673576 31677070 2 2 1.367535 1.437547 1.576903 0.454234 0.482689 0.498518 20 31677071 31805721 18 0 1.636028 1.675802 1.722761 NaN NaN NaN -20 31811366 31828443 9 5 1.547919 1.623082 1.678306 0.399502 0.485225 0.497984 -20 31828940 32700168 105 1 1.627604 1.651674 1.666737 0.452951 0.486761 0.498920 +20 31811366 31828443 9 5 1.547919 1.623082 1.678306 0.406299 0.471450 0.496816 +20 31828940 32700168 105 1 1.627604 1.651674 1.666737 0.450647 0.488298 0.497500 20 32847930 32981939 14 0 0.981523 1.032955 1.097114 NaN NaN NaN -20 32996206 32996850 1 1 -44.144161 -23.442478 6.075372 0.451163 0.486603 0.497835 -20 33000070 34218538 286 6 1.106545 1.121904 1.136853 0.412121 0.474008 0.497931 -20 34218539 34243516 10 4 1.059556 1.117523 1.199210 0.448864 0.482595 0.494705 -20 34246603 34302563 22 2 1.156840 1.183857 1.209517 0.430640 0.488297 0.497836 -20 34304411 34501521 25 16 1.133764 1.161469 1.186708 0.448843 0.479987 0.495198 -20 34501704 34505357 2 2 1.023992 1.129776 1.243862 0.465768 0.486219 0.497196 -20 34505358 35065005 53 8 1.093915 1.118065 1.140264 0.430981 0.478559 0.497583 -20 35067906 35068523 1 1 0.841778 1.092655 1.330495 0.454404 0.483187 0.498185 -20 35070879 35468094 64 1 1.090973 1.110308 1.127704 0.458199 0.488719 0.499301 -20 35490811 35491997 1 1 0.881239 1.050916 1.252413 0.475227 0.492415 0.499002 +20 32996206 32996850 1 1 -44.144161 -23.442478 6.075372 0.441531 0.486796 0.498200 +20 33000070 34218538 286 6 1.106545 1.121904 1.136853 0.376880 0.464391 0.495483 +20 34218539 34243516 10 4 1.059556 1.117523 1.199210 0.425429 0.472382 0.492492 +20 34246603 34302563 22 2 1.156840 1.183857 1.209517 0.459783 0.485626 0.498282 +20 34304411 34501521 25 16 1.133764 1.161469 1.186708 0.446864 0.490285 0.499201 +20 34501704 34505357 2 2 1.023992 1.129776 1.243862 0.457191 0.492502 0.498569 +20 34505358 35065005 53 8 1.093915 1.118065 1.140264 0.462744 0.486942 0.498102 +20 35067906 35068523 1 1 0.841778 1.092655 1.330495 0.448476 0.485228 0.498517 +20 35070879 35468094 64 1 1.090973 1.110308 1.127704 0.450405 0.484837 0.498576 +20 35490811 35491997 1 1 0.881239 1.050916 1.252413 0.461223 0.485843 0.497804 20 35504327 35555907 18 0 0.992799 1.064285 1.109742 NaN NaN NaN -20 35558912 35559530 1 1 0.920315 1.079069 1.257841 0.422901 0.486827 0.497734 -20 35563181 35757820 38 4 0.936493 0.973360 1.002878 0.456153 0.485114 0.497181 -20 35765963 35769967 2 2 0.774601 0.951250 1.057507 0.452966 0.486821 0.498353 -20 35771870 35833556 14 4 0.942110 0.983035 1.026967 0.464561 0.489627 0.499305 -20 35835425 35838822 2 4 0.738773 0.890097 1.000615 0.423247 0.474563 0.496526 -20 35841912 36784743 74 11 0.909883 0.932272 0.944864 0.432027 0.489073 0.498199 -20 36789571 36846128 5 6 0.809076 0.875575 0.946742 0.440550 0.478764 0.494482 -20 36846395 36946389 16 5 0.901904 0.935909 0.990166 0.455391 0.478252 0.496626 -20 36946564 36963147 8 5 0.851695 0.915816 0.982273 0.463448 0.490635 0.498627 -20 36963749 37268279 65 6 0.951057 0.971139 0.999376 0.449183 0.482902 0.497956 -20 37272097 37279609 7 11 0.829791 0.897668 0.977499 0.454187 0.480527 0.492579 -20 37353117 37667438 46 6 0.920441 0.944903 0.968250 0.455150 0.487227 0.497249 -20 39316268 45878435 698 90 0.116500 0.125577 0.134277 0.473332 0.491645 0.498786 -20 45890779 45891424 1 1 -0.195750 -0.083534 0.091984 0.447779 0.488067 0.498147 -20 45904807 62905205 1317 284 0.092283 0.099282 0.107203 0.488598 0.494875 0.499061 +20 35558912 35559530 1 1 0.920315 1.079069 1.257841 0.434159 0.476086 0.495184 +20 35563181 35757820 38 4 0.936493 0.973360 1.002878 0.455034 0.485798 0.498183 +20 35765963 35769967 2 2 0.774601 0.951250 1.057507 0.426728 0.480781 0.496349 +20 35771870 35833556 14 4 0.942110 0.983035 1.026967 0.467737 0.488991 0.496488 +20 35835425 35838822 2 4 0.738773 0.890097 1.000615 0.418123 0.476152 0.495263 +20 35841912 36784743 74 11 0.909883 0.932272 0.944864 0.433347 0.482283 0.497554 +20 36789571 36846128 5 6 0.809076 0.875575 0.946742 0.453502 0.488412 0.499434 +20 36846395 36946389 16 5 0.901904 0.935909 0.990166 0.433242 0.475947 0.494414 +20 36946564 36963147 8 5 0.851695 0.915816 0.982273 0.454641 0.491101 0.498921 +20 36963749 37268279 65 6 0.951057 0.971139 0.999376 0.465846 0.485789 0.497945 +20 37272097 37279609 7 11 0.829791 0.897668 0.977499 0.441992 0.487394 0.499113 +20 37353117 37667438 46 6 0.920441 0.944903 0.968250 0.449098 0.480317 0.495612 +20 39316268 45878435 698 90 0.116500 0.125577 0.134277 0.476517 0.491417 0.499391 +20 45890779 45891424 1 1 -0.195750 -0.083534 0.091984 0.468558 0.481017 0.496755 +20 45904807 62905205 1317 284 0.092283 0.099282 0.107203 0.484183 0.492933 0.498847 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.af.igv.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.af.igv.seg index 727cdadd21f..10e268ac898 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.af.igv.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.af.igv.seg @@ -1,10 +1,10 @@ Sample Chromosome Start End Num_Probes Segment_Mean -SM-74P4M-1 20 138125 1552430 49 0.313709 -SM-74P4M-1 20 1559330 2779257 34 0.340767 -SM-74P4M-1 20 2796471 3838441 33 0.333826 -SM-74P4M-1 20 3870124 17460005 94 0.310069 -SM-74P4M-1 20 17474690 25841650 131 0.254511 -SM-74P4M-1 20 25846283 31025231 23 0.330888 -SM-74P4M-1 20 31647126 33879478 28 0.222819 -SM-74P4M-1 20 34218673 37396262 79 0.292410 -SM-74P4M-1 20 38354742 62871232 356 0.494893 +SM-74P4M-1 20 138125 1552430 49 0.310482 +SM-74P4M-1 20 1559330 2779257 34 0.331388 +SM-74P4M-1 20 2796471 3838441 33 0.330721 +SM-74P4M-1 20 3870124 13060331 76 0.315462 +SM-74P4M-1 20 13071871 25841650 149 0.262686 +SM-74P4M-1 20 25846283 31025231 23 0.340765 +SM-74P4M-1 20 31647126 34782171 52 0.242045 +SM-74P4M-1 20 35491033 37396262 55 0.301540 +SM-74P4M-1 20 38354742 62871232 356 0.496904 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.igv.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.igv.seg index f0376bdda14..37cb07c9193 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.igv.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.igv.seg @@ -2,9 +2,9 @@ Sample Chromosome Start End Num_Probes Segment_Mean SM-74P4M-1 20 138125 1552430 0 NaN SM-74P4M-1 20 1559330 2779257 0 NaN SM-74P4M-1 20 2796471 3838441 0 NaN -SM-74P4M-1 20 3870124 17460005 0 NaN -SM-74P4M-1 20 17474690 25841650 0 NaN +SM-74P4M-1 20 3870124 13060331 0 NaN +SM-74P4M-1 20 13071871 25841650 0 NaN SM-74P4M-1 20 25846283 31025231 0 NaN -SM-74P4M-1 20 31647126 33879478 0 NaN -SM-74P4M-1 20 34218673 37396262 0 NaN +SM-74P4M-1 20 31647126 34782171 0 NaN +SM-74P4M-1 20 35491033 37396262 0 NaN SM-74P4M-1 20 38354742 62871232 0 NaN diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.seg index 494695f2f5e..2db501a0499 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.seg @@ -5,9 +5,9 @@ CONTIG START END NUM_POINTS_COPY_RATIO MEAN_LOG2_COPY_RATIO 20 138125 1552430 0 NaN 20 1559330 2779257 0 NaN 20 2796471 3838441 0 NaN -20 3870124 17460005 0 NaN -20 17474690 25841650 0 NaN +20 3870124 13060331 0 NaN +20 13071871 25841650 0 NaN 20 25846283 31025231 0 NaN -20 31647126 33879478 0 NaN -20 34218673 37396262 0 NaN +20 31647126 34782171 0 NaN +20 35491033 37396262 0 NaN 20 38354742 62871232 0 NaN diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.af.param index c01d4e5c8e2..04f1b0882cd 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.064979 1.069976 1.072287 1.074434 1.075888 1.077744 1.079786 1.081268 1.087864 -BIAS_VARIANCE 0.023228 0.025380 0.028014 0.030125 0.031415 0.032020 0.034953 0.036126 0.038595 -OUTLIER_PROBABILITY 0.053104 0.068030 0.072079 0.077273 0.083907 0.086835 0.092636 0.101832 0.116526 +MEAN_BIAS 1.065001 1.070465 1.073150 1.077038 1.078562 1.082153 1.087074 1.089658 1.091769 +BIAS_VARIANCE 0.026059 0.027576 0.029252 0.030330 0.032522 0.034146 0.034816 0.036562 0.039798 +OUTLIER_PROBABILITY 0.055326 0.064962 0.071506 0.074164 0.081333 0.085060 0.089944 0.095421 0.103508 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.seg index 9d423b511c8..f59b83c9932 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.seg @@ -2,49 +2,49 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 138125 139576 0 5 NaN NaN NaN 0.308293 0.339029 0.375295 -20 168466 377226 0 18 NaN NaN NaN 0.327036 0.348428 0.368614 -20 389456 402921 0 4 NaN NaN NaN 0.326848 0.352694 0.391841 -20 425606 1458504 0 14 NaN NaN NaN 0.314029 0.333098 0.347429 -20 1517979 1552430 0 8 NaN NaN NaN 0.308972 0.342341 0.366315 -20 1559330 1592312 0 6 NaN NaN NaN 0.444949 0.481833 0.496871 -20 1600524 1616892 0 6 NaN NaN NaN 0.326215 0.365393 0.397058 -20 1895889 1896060 0 3 NaN NaN NaN 0.452867 0.482624 0.497125 -20 2056358 2517825 0 6 NaN NaN NaN 0.351681 0.393595 0.448896 -20 2552805 2621998 0 10 NaN NaN NaN 0.320245 0.343728 0.374045 -20 2633380 2779257 0 3 NaN NaN NaN 0.419440 0.471906 0.493589 -20 2796471 3838441 0 33 NaN NaN NaN 0.323449 0.332979 0.346263 -20 3870124 4055656 0 2 NaN NaN NaN 0.435462 0.492200 0.498869 -20 4155948 4843609 0 7 NaN NaN NaN 0.367923 0.396476 0.435051 -20 4880308 5482307 0 15 NaN NaN NaN 0.327069 0.350866 0.375718 -20 5528518 6100230 0 13 NaN NaN NaN 0.336238 0.350827 0.371627 -20 6194421 6195664 0 2 NaN NaN NaN 0.438623 0.489070 0.497910 -20 7866261 8703145 0 9 NaN NaN NaN 0.314281 0.334591 0.369431 -20 8707900 8707927 0 2 NaN NaN NaN 0.390812 0.444791 0.490994 -20 8737734 8770932 0 7 NaN NaN NaN 0.278027 0.310407 0.356609 -20 8773096 10032413 0 11 NaN NaN NaN 0.285616 0.309854 0.336216 -20 10329888 10629525 0 6 NaN NaN NaN 0.295792 0.344451 0.488663 -20 13054633 13060331 0 2 NaN NaN NaN 0.350108 0.446891 0.492924 -20 13071871 16730522 0 15 NaN NaN NaN 0.288995 0.308153 0.334858 -20 17459905 17460005 0 3 NaN NaN NaN 0.351944 0.390735 0.477194 -20 17474690 18446024 0 22 NaN NaN NaN 0.288469 0.304401 0.322490 -20 18806046 22714612 0 34 NaN NaN NaN 0.251695 0.269344 0.282756 -20 23345844 25011423 0 24 NaN NaN NaN 0.255886 0.269573 0.283058 -20 25038484 25255415 0 6 NaN NaN NaN 0.228550 0.243600 0.267038 -20 25257260 25282944 0 21 NaN NaN NaN 0.238815 0.249759 0.265142 -20 25288505 25398876 0 5 NaN NaN NaN 0.257330 0.459628 0.494389 -20 25434351 25470056 0 8 NaN NaN NaN 0.236346 0.260178 0.280356 -20 25597236 25838130 0 7 NaN NaN NaN 0.245072 0.277076 0.322202 -20 25838802 25841650 0 4 NaN NaN NaN 0.378249 0.429661 0.493250 -20 25846283 25900162 0 3 NaN NaN NaN 0.453579 0.481617 0.497553 -20 25900379 30037783 0 16 NaN NaN NaN 0.339240 0.455992 0.497208 -20 30053255 31025231 0 4 NaN NaN NaN 0.432501 0.486036 0.498669 -20 31647126 31677476 0 8 NaN NaN NaN 0.186306 0.203736 0.228313 -20 31811551 33879478 0 20 NaN NaN NaN 0.238200 0.249918 0.269297 -20 34218673 34782171 0 24 NaN NaN NaN 0.268272 0.280104 0.295469 -20 35491033 35869619 0 19 NaN NaN NaN 0.283399 0.300067 0.318457 -20 36022539 36937246 0 16 NaN NaN NaN 0.287923 0.304225 0.319391 -20 36946848 36965617 0 4 NaN NaN NaN 0.347528 0.431325 0.489126 -20 36989269 37279458 0 11 NaN NaN NaN 0.304763 0.330131 0.362966 -20 37377139 37396262 0 5 NaN NaN NaN 0.350772 0.372221 0.411310 -20 38354742 62871232 0 356 NaN NaN NaN 0.485004 0.495130 0.498904 +20 138125 139576 0 5 NaN NaN NaN 0.307582 0.346773 0.438145 +20 168466 377226 0 18 NaN NaN NaN 0.330926 0.347455 0.367309 +20 389456 402921 0 4 NaN NaN NaN 0.318461 0.352416 0.395247 +20 425606 1458504 0 14 NaN NaN NaN 0.308598 0.335077 0.363829 +20 1517979 1552430 0 8 NaN NaN NaN 0.311232 0.343111 0.373709 +20 1559330 1592312 0 6 NaN NaN NaN 0.447784 0.484865 0.497913 +20 1600524 1616892 0 6 NaN NaN NaN 0.336560 0.362889 0.396577 +20 1895889 1896060 0 3 NaN NaN NaN 0.460422 0.486434 0.498040 +20 2056358 2517825 0 6 NaN NaN NaN 0.353765 0.385550 0.448352 +20 2552805 2621998 0 10 NaN NaN NaN 0.311485 0.345045 0.369987 +20 2633380 2779257 0 3 NaN NaN NaN 0.435613 0.479867 0.496273 +20 2796471 3838441 0 33 NaN NaN NaN 0.325125 0.334590 0.351038 +20 3870124 4055656 0 2 NaN NaN NaN 0.442941 0.478607 0.498017 +20 4155948 4843609 0 7 NaN NaN NaN 0.377582 0.399804 0.432501 +20 4880308 5482307 0 15 NaN NaN NaN 0.329403 0.351695 0.371260 +20 5528518 6100230 0 13 NaN NaN NaN 0.333372 0.350985 0.371450 +20 6194421 6195664 0 2 NaN NaN NaN 0.374732 0.463121 0.494839 +20 7866261 8703145 0 9 NaN NaN NaN 0.309391 0.343965 0.369563 +20 8707900 8707927 0 2 NaN NaN NaN 0.407690 0.463100 0.495038 +20 8737734 8770932 0 7 NaN NaN NaN 0.277306 0.307132 0.346704 +20 8773096 10032413 0 11 NaN NaN NaN 0.274085 0.305374 0.329942 +20 10329888 10629525 0 6 NaN NaN NaN 0.301127 0.338250 0.482567 +20 13054633 13060331 0 2 NaN NaN NaN 0.384441 0.478201 0.496186 +20 13071871 16730522 0 15 NaN NaN NaN 0.289290 0.309515 0.322158 +20 17459905 17460005 0 3 NaN NaN NaN 0.363929 0.400084 0.456407 +20 17474690 18446024 0 22 NaN NaN NaN 0.283351 0.300435 0.319628 +20 18806046 22714612 0 34 NaN NaN NaN 0.257412 0.268365 0.283623 +20 23345844 25011423 0 24 NaN NaN NaN 0.259794 0.272567 0.286583 +20 25038484 25255415 0 6 NaN NaN NaN 0.228080 0.250970 0.274484 +20 25257260 25282944 0 21 NaN NaN NaN 0.234277 0.251599 0.265177 +20 25288505 25398876 0 5 NaN NaN NaN 0.246085 0.274298 0.308657 +20 25434351 25470056 0 8 NaN NaN NaN 0.239093 0.255439 0.285947 +20 25597236 25838130 0 7 NaN NaN NaN 0.248991 0.278405 0.316273 +20 25838802 25841650 0 4 NaN NaN NaN 0.401315 0.463642 0.494459 +20 25846283 25900162 0 3 NaN NaN NaN 0.459655 0.485372 0.498836 +20 25900379 30037783 0 16 NaN NaN NaN 0.356864 0.458995 0.493495 +20 30053255 31025231 0 4 NaN NaN NaN 0.453880 0.490586 0.498220 +20 31647126 31677476 0 8 NaN NaN NaN 0.183849 0.205084 0.227366 +20 31811551 33879478 0 20 NaN NaN NaN 0.234299 0.244505 0.263952 +20 34218673 34782171 0 24 NaN NaN NaN 0.265194 0.282690 0.301982 +20 35491033 35869619 0 19 NaN NaN NaN 0.287529 0.305609 0.319915 +20 36022539 36937246 0 16 NaN NaN NaN 0.291775 0.304733 0.314173 +20 36946848 36965617 0 4 NaN NaN NaN 0.337974 0.452887 0.488730 +20 36989269 37279458 0 11 NaN NaN NaN 0.307611 0.334935 0.358422 +20 37377139 37396262 0 5 NaN NaN NaN 0.335320 0.369374 0.412040 +20 38354742 62871232 0 356 NaN NaN NaN 0.490904 0.495706 0.498569 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.af.param index b902d4b5ecc..62e366134cb 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.060195 1.070838 1.072904 1.075003 1.078570 1.080291 1.082617 1.085703 1.091312 -BIAS_VARIANCE 0.023671 0.026876 0.028157 0.029099 0.029852 0.031301 0.031531 0.033205 0.034780 -OUTLIER_PROBABILITY 0.032842 0.038724 0.039614 0.042207 0.047856 0.054548 0.057929 0.061304 0.069610 +MEAN_BIAS 1.071219 1.074761 1.079743 1.084029 1.087154 1.089152 1.090474 1.093839 1.098595 +BIAS_VARIANCE 0.027265 0.028460 0.030686 0.032551 0.033488 0.035178 0.037179 0.038672 0.039563 +OUTLIER_PROBABILITY 0.033591 0.038581 0.040129 0.042728 0.045875 0.048124 0.052671 0.055083 0.057366 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.seg index b18f53170eb..69f57fb4052 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.seg @@ -2,12 +2,12 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 138125 1552430 0 49 NaN NaN NaN 0.298624 0.313709 0.326040 -20 1559330 2779257 0 34 NaN NaN NaN 0.320567 0.340767 0.361811 -20 2796471 3838441 0 33 NaN NaN NaN 0.319240 0.333826 0.348229 -20 3870124 17460005 0 94 NaN NaN NaN 0.301268 0.310069 0.321773 -20 17474690 25841650 0 131 NaN NaN NaN 0.248601 0.254511 0.262415 -20 25846283 31025231 0 23 NaN NaN NaN 0.268522 0.330888 0.392249 -20 31647126 33879478 0 28 NaN NaN NaN 0.206467 0.222819 0.239564 -20 34218673 37396262 0 79 NaN NaN NaN 0.282908 0.292410 0.301721 -20 38354742 62871232 0 356 NaN NaN NaN 0.489260 0.494893 0.499112 +20 138125 1552430 0 49 NaN NaN NaN 0.301656 0.310482 0.321020 +20 1559330 2779257 0 34 NaN NaN NaN 0.321121 0.331388 0.351097 +20 2796471 3838441 0 33 NaN NaN NaN 0.311604 0.330721 0.346451 +20 3870124 13060331 0 76 NaN NaN NaN 0.295467 0.315462 0.329249 +20 13071871 25841650 0 149 NaN NaN NaN 0.253458 0.262686 0.277703 +20 25846283 31025231 0 23 NaN NaN NaN 0.283981 0.340765 0.421111 +20 31647126 34782171 0 52 NaN NaN NaN 0.222884 0.242045 0.262660 +20 35491033 37396262 0 55 NaN NaN NaN 0.289958 0.301540 0.314308 +20 38354742 62871232 0 356 NaN NaN NaN 0.488923 0.496904 0.499041 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.af.igv.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.af.igv.seg index 1c1bd11f5d6..6376f02f30f 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.af.igv.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.af.igv.seg @@ -1,5 +1,3 @@ Sample Chromosome Start End Num_Probes Segment_Mean -SM-74P4M-1 20 138125 18446024 348 0.329600 -SM-74P4M-1 20 18806046 23807028 80 0.274873 -SM-74P4M-1 20 23842032 37396262 315 0.283610 -SM-74P4M-1 20 37404951 62904542 483 0.496253 +SM-74P4M-1 20 138125 37396262 743 0.303751 +SM-74P4M-1 20 37404951 62904542 483 0.496547 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.igv.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.igv.seg index fb086d4506f..236905bb2f6 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.igv.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.igv.seg @@ -1,5 +1,3 @@ Sample Chromosome Start End Num_Probes Segment_Mean -SM-74P4M-1 20 138125 18446024 0 NaN -SM-74P4M-1 20 18806046 23807028 0 NaN -SM-74P4M-1 20 23842032 37396262 0 NaN +SM-74P4M-1 20 138125 37396262 0 NaN SM-74P4M-1 20 37404951 62904542 0 NaN diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.seg index 058b4585231..10dd4a7e87b 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.seg @@ -2,7 +2,5 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO MEAN_LOG2_COPY_RATIO -20 138125 18446024 0 NaN -20 18806046 23807028 0 NaN -20 23842032 37396262 0 NaN +20 138125 37396262 0 NaN 20 37404951 62904542 0 NaN diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.af.param index b6afaf39cf0..1019aba1e75 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.090256 1.099481 1.109172 1.119249 1.124900 1.130002 1.142848 1.147598 1.158294 -BIAS_VARIANCE 0.386686 0.397327 0.403015 0.408885 0.416855 0.423181 0.443412 0.459471 0.483977 -OUTLIER_PROBABILITY 0.010941 0.012792 0.014915 0.022995 0.028332 0.030680 0.034429 0.039288 0.052753 +MEAN_BIAS 1.059231 1.073764 1.082538 1.091104 1.099210 1.107675 1.124835 1.142061 1.156225 +BIAS_VARIANCE 0.337549 0.355694 0.367646 0.371785 0.380377 0.397368 0.428090 0.446462 0.484917 +OUTLIER_PROBABILITY 0.009441 0.014040 0.016986 0.022264 0.027119 0.031235 0.034292 0.044029 0.047521 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.seg index dbc1d03ce2f..037bb2eeeaf 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.seg @@ -2,71 +2,71 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 138125 139576 0 5 NaN NaN NaN 0.440798 0.479702 0.497599 -20 168466 259156 0 13 NaN NaN NaN 0.440494 0.488599 0.496826 -20 259818 360306 0 8 NaN NaN NaN 0.453937 0.487197 0.496708 -20 368905 377226 0 3 NaN NaN NaN 0.464748 0.490570 0.498988 -20 389456 402921 0 4 NaN NaN NaN 0.455061 0.484825 0.498592 -20 425606 1285933 0 16 NaN NaN NaN 0.455865 0.489725 0.497571 -20 1417397 1896244 0 30 NaN NaN NaN 0.359240 0.443016 0.492340 -20 2036954 2552805 0 12 NaN NaN NaN 0.476290 0.491636 0.499129 -20 2593006 2621998 0 10 NaN NaN NaN 0.464514 0.491787 0.498511 -20 2624956 2779257 0 5 NaN NaN NaN 0.435842 0.481883 0.497459 -20 2796471 3838441 0 43 NaN NaN NaN 0.444566 0.484396 0.496843 -20 3858985 4055656 0 3 NaN NaN NaN 0.456114 0.481442 0.499047 -20 4138585 5068730 0 17 NaN NaN NaN 0.467622 0.486902 0.498036 -20 5159344 5482307 0 16 NaN NaN NaN 0.465595 0.489608 0.499188 -20 5528518 6100391 0 21 NaN NaN NaN 0.465393 0.486382 0.497495 -20 6194421 6798939 0 5 NaN NaN NaN 0.461229 0.489925 0.498863 -20 7866261 8625108 0 6 NaN NaN NaN 0.437814 0.479370 0.496951 -20 8625250 8639443 0 4 NaN NaN NaN 0.458029 0.483078 0.495324 -20 8665751 8703145 0 5 NaN NaN NaN 0.451941 0.478444 0.496848 -20 8707900 8742326 0 6 NaN NaN NaN 0.443505 0.484670 0.497819 -20 8755243 8770932 0 4 NaN NaN NaN 0.424924 0.480004 0.497533 -20 8773096 8773155 0 2 NaN NaN NaN 0.466812 0.487851 0.498420 -20 9108585 9376019 0 4 NaN NaN NaN 0.447496 0.482482 0.497583 -20 9417870 9510263 0 4 NaN NaN NaN 0.443796 0.480370 0.498457 -20 9624587 10024951 0 6 NaN NaN NaN 0.463675 0.490557 0.498368 -20 10026357 10032413 0 4 NaN NaN NaN 0.420220 0.474803 0.496140 -20 10329888 10393145 0 4 NaN NaN NaN 0.458186 0.484965 0.497048 -20 10426975 12113410 0 10 NaN NaN NaN 0.459159 0.487033 0.495408 -20 13054307 13074243 0 8 NaN NaN NaN 0.422730 0.479198 0.495801 -20 13090745 13845726 0 12 NaN NaN NaN 0.459112 0.488688 0.498798 -20 13872093 15967327 0 14 NaN NaN NaN 0.469241 0.489931 0.498706 -20 16729262 16730522 0 3 NaN NaN NaN 0.458029 0.487920 0.498656 -20 17028059 17460132 0 5 NaN NaN NaN 0.445134 0.486996 0.498367 -20 17474690 18327570 0 30 NaN NaN NaN 0.442347 0.482205 0.496573 -20 18429497 18429509 0 2 NaN NaN NaN 0.442946 0.477879 0.497855 -20 18432690 18446024 0 4 NaN NaN NaN 0.461632 0.487390 0.497677 -20 18806046 22714612 0 54 NaN NaN NaN 0.311032 0.333551 0.365837 -20 23345844 23807028 0 26 NaN NaN NaN 0.316373 0.412002 0.489998 -20 23842032 24938195 0 12 NaN NaN NaN 0.460769 0.488878 0.497288 -20 24939590 24959386 0 2 NaN NaN NaN 0.447806 0.480658 0.498828 -20 24993414 25011423 0 4 NaN NaN NaN 0.450815 0.487411 0.498519 -20 25038484 25059442 0 2 NaN NaN NaN 0.394328 0.471879 0.495716 -20 25190598 25286059 0 27 NaN NaN NaN 0.281397 0.342294 0.492798 -20 25288505 25424713 0 11 NaN NaN NaN 0.398046 0.482640 0.497572 -20 25434351 25470056 0 11 NaN NaN NaN 0.378380 0.464472 0.493703 -20 25597236 25755672 0 12 NaN NaN NaN 0.442179 0.483619 0.498683 -20 25756059 25841650 0 7 NaN NaN NaN 0.448212 0.479904 0.497603 -20 25846283 25900162 0 3 NaN NaN NaN 0.341213 0.462817 0.496427 -20 25900379 26134237 0 4 NaN NaN NaN 0.455921 0.490608 0.498795 -20 26138206 29449678 0 3 NaN NaN NaN 0.439211 0.486197 0.497057 -20 29516670 30037783 0 20 NaN NaN NaN 0.456562 0.491430 0.498024 -20 30053255 31025163 0 2 NaN NaN NaN 0.444929 0.482061 0.499409 -20 31647126 31676804 0 8 NaN NaN NaN 0.430324 0.471191 0.495301 -20 31811551 31826027 0 4 NaN NaN NaN 0.409054 0.476855 0.492332 -20 31828265 32330930 0 6 NaN NaN NaN 0.431338 0.474485 0.495541 -20 32340077 32710710 0 8 NaN NaN NaN 0.356173 0.451210 0.497063 -20 32935192 33006597 0 6 NaN NaN NaN 0.468295 0.490199 0.496922 -20 33030405 33150503 0 9 NaN NaN NaN 0.402144 0.473202 0.497573 -20 33178782 33882791 0 9 NaN NaN NaN 0.456522 0.484069 0.498129 -20 34218673 34782171 0 53 NaN NaN NaN 0.429611 0.476297 0.495476 -20 34974252 35869619 0 32 NaN NaN NaN 0.336243 0.380496 0.458634 -20 36022539 36944379 0 24 NaN NaN NaN 0.428000 0.483294 0.498555 -20 36946848 36965617 0 8 NaN NaN NaN 0.440872 0.485605 0.497363 -20 36989269 37291486 0 19 NaN NaN NaN 0.442259 0.482437 0.497222 -20 37366218 37396262 0 9 NaN NaN NaN 0.452619 0.485731 0.498013 -20 37404951 61444697 0 402 NaN NaN NaN 0.484274 0.494096 0.499134 -20 61444785 61453348 0 2 NaN NaN NaN 0.451488 0.485654 0.496916 -20 61453549 62904542 0 79 NaN NaN NaN 0.472371 0.490990 0.498263 +20 138125 139576 0 5 NaN NaN NaN 0.402598 0.458690 0.489257 +20 168466 259156 0 13 NaN NaN NaN 0.466822 0.487670 0.497309 +20 259818 360306 0 8 NaN NaN NaN 0.408195 0.481713 0.498844 +20 368905 377226 0 3 NaN NaN NaN 0.452640 0.483733 0.496855 +20 389456 402921 0 4 NaN NaN NaN 0.439883 0.475307 0.494706 +20 425606 1285933 0 16 NaN NaN NaN 0.447089 0.479530 0.494184 +20 1417397 1896244 0 30 NaN NaN NaN 0.311661 0.374359 0.452280 +20 2036954 2552805 0 12 NaN NaN NaN 0.465444 0.488381 0.498581 +20 2593006 2621998 0 10 NaN NaN NaN 0.460950 0.485237 0.497729 +20 2624956 2779257 0 5 NaN NaN NaN 0.472348 0.492532 0.498647 +20 2796471 3838441 0 43 NaN NaN NaN 0.426428 0.485532 0.498052 +20 3858985 4055656 0 3 NaN NaN NaN 0.455864 0.484473 0.493982 +20 4138585 5068730 0 17 NaN NaN NaN 0.455611 0.484819 0.497596 +20 5159344 5482307 0 16 NaN NaN NaN 0.469968 0.489276 0.498473 +20 5528518 6100391 0 21 NaN NaN NaN 0.438522 0.487269 0.497109 +20 6194421 6798939 0 5 NaN NaN NaN 0.439933 0.487875 0.498050 +20 7866261 8625108 0 6 NaN NaN NaN 0.431096 0.480998 0.495239 +20 8625250 8639443 0 4 NaN NaN NaN 0.452132 0.490778 0.498100 +20 8665751 8703145 0 5 NaN NaN NaN 0.464700 0.486542 0.498388 +20 8707900 8742326 0 6 NaN NaN NaN 0.451179 0.482977 0.496961 +20 8755243 8770932 0 4 NaN NaN NaN 0.465033 0.490912 0.499373 +20 8773096 8773155 0 2 NaN NaN NaN 0.457933 0.481761 0.497595 +20 9108585 9376019 0 4 NaN NaN NaN 0.456850 0.490451 0.497941 +20 9417870 9510263 0 4 NaN NaN NaN 0.450214 0.471448 0.498505 +20 9624587 10024951 0 6 NaN NaN NaN 0.460308 0.487576 0.498544 +20 10026357 10032413 0 4 NaN NaN NaN 0.383593 0.482721 0.497445 +20 10329888 10393145 0 4 NaN NaN NaN 0.451740 0.483709 0.499096 +20 10426975 12113410 0 10 NaN NaN NaN 0.463732 0.483361 0.498896 +20 13054307 13074243 0 8 NaN NaN NaN 0.460254 0.480012 0.496881 +20 13090745 13845726 0 12 NaN NaN NaN 0.442980 0.480915 0.494221 +20 13872093 15967327 0 14 NaN NaN NaN 0.438024 0.478811 0.498088 +20 16729262 16730522 0 3 NaN NaN NaN 0.450649 0.487730 0.498631 +20 17028059 17460132 0 5 NaN NaN NaN 0.451572 0.474350 0.496080 +20 17474690 18327570 0 30 NaN NaN NaN 0.449200 0.480355 0.494322 +20 18429497 18429509 0 2 NaN NaN NaN 0.471028 0.486146 0.499530 +20 18432690 18446024 0 4 NaN NaN NaN 0.440645 0.487903 0.497942 +20 18806046 22714612 0 54 NaN NaN NaN 0.292756 0.326880 0.362237 +20 23345844 23807028 0 26 NaN NaN NaN 0.331547 0.481088 0.497273 +20 23842032 24938195 0 12 NaN NaN NaN 0.466514 0.492118 0.498481 +20 24939590 24959386 0 2 NaN NaN NaN 0.452099 0.485577 0.496816 +20 24993414 25011423 0 4 NaN NaN NaN 0.444157 0.485087 0.496990 +20 25038484 25059442 0 2 NaN NaN NaN 0.413650 0.477351 0.498441 +20 25190598 25286059 0 27 NaN NaN NaN 0.285450 0.335143 0.440814 +20 25288505 25424713 0 11 NaN NaN NaN 0.369824 0.438819 0.495847 +20 25434351 25470056 0 11 NaN NaN NaN 0.449188 0.484455 0.498332 +20 25597236 25755672 0 12 NaN NaN NaN 0.435903 0.485251 0.498070 +20 25756059 25841650 0 7 NaN NaN NaN 0.466450 0.489128 0.498105 +20 25846283 25900162 0 3 NaN NaN NaN 0.375980 0.459039 0.492023 +20 25900379 26134237 0 4 NaN NaN NaN 0.438987 0.484034 0.496397 +20 26138206 29449678 0 3 NaN NaN NaN 0.441430 0.490041 0.498022 +20 29516670 30037783 0 20 NaN NaN NaN 0.466100 0.486705 0.494903 +20 30053255 31025163 0 2 NaN NaN NaN 0.460866 0.491822 0.498690 +20 31647126 31676804 0 8 NaN NaN NaN 0.420384 0.476044 0.497287 +20 31811551 31826027 0 4 NaN NaN NaN 0.358847 0.479664 0.495201 +20 31828265 32330930 0 6 NaN NaN NaN 0.443005 0.484786 0.496641 +20 32340077 32710710 0 8 NaN NaN NaN 0.362631 0.428692 0.489771 +20 32935192 33006597 0 6 NaN NaN NaN 0.451948 0.485780 0.498018 +20 33030405 33150503 0 9 NaN NaN NaN 0.367456 0.441215 0.493514 +20 33178782 33882791 0 9 NaN NaN NaN 0.465225 0.486634 0.498055 +20 34218673 34782171 0 53 NaN NaN NaN 0.434052 0.476885 0.497838 +20 34974252 35869619 0 32 NaN NaN NaN 0.317636 0.363562 0.409450 +20 36022539 36944379 0 24 NaN NaN NaN 0.429298 0.476811 0.495536 +20 36946848 36965617 0 8 NaN NaN NaN 0.462958 0.483369 0.498854 +20 36989269 37291486 0 19 NaN NaN NaN 0.449951 0.479868 0.496863 +20 37366218 37396262 0 9 NaN NaN NaN 0.466491 0.484398 0.497237 +20 37404951 61444697 0 402 NaN NaN NaN 0.486953 0.494099 0.499177 +20 61444785 61453348 0 2 NaN NaN NaN 0.453088 0.473369 0.497858 +20 61453549 62904542 0 79 NaN NaN NaN 0.483483 0.491975 0.498251 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.af.param index 52de07ca503..5bb69d76ced 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.052579 1.059157 1.063855 1.067549 1.071192 1.075970 1.079045 1.083201 1.087549 -BIAS_VARIANCE 0.038132 0.039991 0.040937 0.041641 0.042978 0.044380 0.046389 0.047301 0.048955 -OUTLIER_PROBABILITY 0.012181 0.013084 0.015014 0.017866 0.019282 0.021425 0.022695 0.024926 0.031160 +MEAN_BIAS 1.069255 1.073963 1.078146 1.080389 1.082496 1.087311 1.089726 1.092997 1.097136 +BIAS_VARIANCE 0.048473 0.052003 0.052692 0.054348 0.056050 0.058032 0.060749 0.066364 0.069438 +OUTLIER_PROBABILITY 0.007462 0.011329 0.013651 0.015995 0.019026 0.019725 0.021521 0.023417 0.030548 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.seg index 4421257a69a..64ff0b444c6 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.seg @@ -2,7 +2,5 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 138125 18446024 0 348 NaN NaN NaN 0.322288 0.329600 0.340519 -20 18806046 23807028 0 80 NaN NaN NaN 0.260987 0.274873 0.288961 -20 23842032 37396262 0 315 NaN NaN NaN 0.277454 0.283610 0.291280 -20 37404951 62904542 0 483 NaN NaN NaN 0.490406 0.496253 0.498829 +20 138125 37396262 0 743 NaN NaN NaN 0.295187 0.303751 0.312721 +20 37404951 62904542 0 483 NaN NaN NaN 0.490964 0.496547 0.499700 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-cr-ac-nac.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-cr-ac-nac.modelBegin.seg index e9459ff54bd..9a0db9fbc00 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-cr-ac-nac.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-cr-ac-nac.modelBegin.seg @@ -11,6 +11,6 @@ CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATI 20 25270235 30126381 96 30 1.082384 1.110710 1.129877 0.221805 0.233278 0.250439 20 30132499 31673054 299 8 1.732520 1.745058 1.762498 0.166325 0.184239 0.203376 20 31673576 31677616 3 3 1.397140 1.520348 1.651265 0.458801 0.488136 0.496235 -20 31678263 32700168 131 6 1.630741 1.645129 1.659100 0.218810 0.247490 0.270924 +20 31678263 32700168 131 6 1.630741 1.645129 1.659100 0.218809 0.247486 0.270917 20 32847930 37667438 775 83 1.052254 1.059208 1.066407 0.279490 0.286181 0.292944 20 39316268 62905205 2016 323 0.099098 0.110945 0.118745 0.485522 0.494328 0.499528 diff --git a/src/testUtils/java/org/broadinstitute/hellbender/testutils/IntegrationTestSpec.java b/src/testUtils/java/org/broadinstitute/hellbender/testutils/IntegrationTestSpec.java index e38c4ea60d7..85df81ac8df 100644 --- a/src/testUtils/java/org/broadinstitute/hellbender/testutils/IntegrationTestSpec.java +++ b/src/testUtils/java/org/broadinstitute/hellbender/testutils/IntegrationTestSpec.java @@ -295,7 +295,7 @@ public static void assertEqualTextFiles(final Reader resultReader, final Reader final String expectedLine = expected.next(); final String actualLine = actual.next(); if ( !actualLine.equals(expectedLine) ) { - logger.error( "Line number " + i + " (not counting comments) expected " + + System.out.println( "Line number " + i + " (not counting comments) expected " + expectedLine + " actual " + actualLine + '\n' + "Expected :" + expectedLine + '\n' + "Actual :" + actualLine + '\n' diff --git a/src/testUtils/java/org/broadinstitute/hellbender/testutils/VariantContextTestUtils.java b/src/testUtils/java/org/broadinstitute/hellbender/testutils/VariantContextTestUtils.java index aa82d7e7b03..9ae113f8fcf 100644 --- a/src/testUtils/java/org/broadinstitute/hellbender/testutils/VariantContextTestUtils.java +++ b/src/testUtils/java/org/broadinstitute/hellbender/testutils/VariantContextTestUtils.java @@ -633,6 +633,7 @@ public static VCFHeader getCompleteHeader() { /** * Uses the AnnotationsPlugin interface to instantiate and return a list of every annotation currently visible to the gatk */ + @SuppressWarnings("deprecation") public static List getAllAnnotations() { CommandLineParser clp = new CommandLineArgumentParser( new Object(), From 2b7c5ef89bf649247d8f2e14ea17445137bbed7f Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Wed, 12 Oct 2022 11:56:04 -0400 Subject: [PATCH 02/36] Move the --add-opens directives to the jar file. --- build.gradle | 228 +++++++++++++--------------- gatk | 110 +------------- scripts/docker/dockertest.gradle | 248 ++++++++++--------------------- 3 files changed, 183 insertions(+), 403 deletions(-) diff --git a/build.gradle b/build.gradle index f04efb1015d..df6dfeae528 100644 --- a/build.gradle +++ b/build.gradle @@ -388,123 +388,98 @@ dependencies { testImplementation "com.google.jimfs:jimfs:1.1" } +// The --add-open directives required to run GATK. This list needs to be kept in sync with the corresponding +// list in scripts/dockertest.gradle. +// +// These directives need to be: +// - included as properties in the manifest file in the jar(s) +// - passed to java via the gradle "jvmArgs" task property for any task that executes GATK code from a +// classpath that does use a jar (i.e., gradle run, test, javadoc, gatkDoc and jacoco tasks, etc.) +// - passed as java command line args when running from classes directly +// - included in any IntelliJ run/debug/profile configurations +// +final runtimeAddOpens = [ + // taken from the union of everything encountered by tests, plus everything defined here: + // https://github.com/apache/spark/blob/v3.3.0/launcher/src/main/java/org/apache/spark/launcher/JavaModuleOptions.java + 'java.base/java.lang=ALL-UNNAMED', + 'java.base/java.lang.invoke=ALL-UNNAMED', + 'java.base/java.lang.reflect=ALL-UNNAMED', + 'java.base/java.io=ALL-UNNAMED', + 'java.base/java.net=ALL-UNNAMED', + 'java.base/java.nio=ALL-UNNAMED', + 'java.base/java.util=ALL-UNNAMED', + 'java.base/java.util.concurrent=ALL-UNNAMED', + 'java.base/java.util.concurrent.atomic=ALL-UNNAMED', + 'java.base/sun.nio.ch=ALL-UNNAMED', + 'java.base/sun.nio.cs=ALL-UNNAMED', + 'java.base/sun.security.action=ALL-UNNAMED', + 'java.base/sun.util.calendar=ALL-UNNAMED', + 'java.base/sun.nio.fs=ALL-UNNAMED', + 'java.base/java.nio.channels.spi=ALL-UNNAMED', + 'java.base/jdk.internal.ref=ALL-UNNAMED', + 'java.base/java.lang.ref=ALL-UNNAMED', + 'java.base/java.util.zip=ALL-UNNAMED', + 'java.base/java.util.jar=ALL-UNNAMED', + 'java.base/java.nio.file.attribute=ALL-UNNAMED', + 'java.base/jdk.internal.loader=ALL-UNNAMED', + 'java.base/sun.net.www.protocol.jar=ALL-UNNAMED', + 'java.base/sun.invoke.util=ALL-UNNAMED', + 'java.base/java.util.concurrent.locks=ALL-UNNAMED', + 'java.base/java.security=ALL-UNNAMED', + 'java.base/sun.reflect.annotation=ALL-UNNAMED', + 'java.base/java.text=ALL-UNNAMED', + 'java.base/java.nio.charset=ALL-UNNAMED', + 'java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED', + 'java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED', + 'java.management/javax.management=ALL-UNNAMED', + 'java.base/java.util.regex=ALL-UNNAMED', + 'java.base/sun.util.locale=ALL-UNNAMED', + 'java.base/jdk.internal.math=ALL-UNNAMED', + 'java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED', + 'java.base/java.time=ALL-UNNAMED', + 'java.base/sun.reflect.generics.factory=ALL-UNNAMED', + 'java.base/java.nio.channels=ALL-UNNAMED', + 'java.base/sun.security.util=ALL-UNNAMED', + 'java.base/java.time.zone=ALL-UNNAMED', + 'java.base/sun.reflect.generics.scope=ALL-UNNAMED', + 'java.base/sun.reflect.generics.tree=ALL-UNNAMED', + 'java.management/com.sun.jmx.interceptor=ALL-UNNAMED', + 'java.management/javax.management.openmbean=ALL-UNNAMED', + 'java.management/sun.management=ALL-UNNAMED', + 'jdk.management/com.sun.management.internal=ALL-UNNAMED', + 'jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED', + 'jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED', + 'java.base/jdk.internal.module=ALL-UNNAMED', + 'java.base/java.lang.module=ALL-UNNAMED', + 'java.security.jgss/sun.security.krb5=ALL-UNNAMED' + ] + +final testAddOpens = [ + 'java.prefs/java.util.prefs=ALL-UNNAMED' // required for jacoco tasks +] + run { - // taken from the union of everything encountered by tests, plus everything defined here: - // https://github.com/apache/spark/blob/v3.3.0/launcher/src/main/java/org/apache/spark/launcher/JavaModuleOptions.java - jvmArgs = [ - '--add-opens', 'java.base/java.lang=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.invoke=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED', - '--add-opens', 'java.base/java.io=ALL-UNNAMED', - '--add-opens', 'java.base/java.net=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio=ALL-UNNAMED', - '--add-opens', 'java.base/java.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent.atomic=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.ch=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.cs=ALL-UNNAMED', - '--add-opens', 'java.base/sun.security.action=ALL-UNNAMED', - '--add-opens', 'java.base/sun.util.calendar=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.fs=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.channels.spi=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.ref=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.ref=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.zip=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.jar=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.file.attribute=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED', - '--add-opens', 'java.base/sun.net.www.protocol.jar=ALL-UNNAMED', - '--add-opens', 'java.base/sun.invoke.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent.locks=ALL-UNNAMED', - '--add-opens', 'java.base/java.security=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.annotation=ALL-UNNAMED', - '--add-opens', 'java.base/java.text=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED', - '--add-opens', 'java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED', - '--add-opens', 'java.management/javax.management=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.regex=ALL-UNNAMED', - '--add-opens', 'java.base/sun.util.locale=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.math=ALL-UNNAMED', - '--add-opens', 'java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.time=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.factory=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.channels=ALL-UNNAMED', - '--add-opens', 'java.base/sun.security.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.time.zone=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.scope=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.tree=ALL-UNNAMED', - '--add-opens', 'java.management/com.sun.jmx.interceptor=ALL-UNNAMED', - '--add-opens', 'java.management/javax.management.openmbean=ALL-UNNAMED', - '--add-opens', 'java.management/sun.management=ALL-UNNAMED', - '--add-opens', 'jdk.management/com.sun.management.internal=ALL-UNNAMED', - '--add-opens', 'jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED', - '--add-opens', 'jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.module=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.module=ALL-UNNAMED', - '--add-opens', 'java.security.jgss/sun.security.krb5=ALL-UNNAMED', - '--add-opens', 'java.prefs/java.util.prefs=ALL-UNNAMED', // jacoco - - '-Dio.netty.tryReflectionSetAccessible=true' - ] - } + // transform the list of runtime configuration --add-opens args into command line argument format + final runtimeJVMArgs = runtimeAddOpens.stream() + .flatMap(openSpec -> ['--add-opens', openSpec].stream()) + .toList() + // add in any other required args + runtimeJVMArgs.add('-Dio.netty.tryReflectionSetAccessible=true') + jvmArgs = runtimeJVMArgs +} + test { - jvmArgs = [ - '--add-opens', 'java.base/java.lang=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.invoke=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED', - '--add-opens', 'java.base/java.io=ALL-UNNAMED', - '--add-opens', 'java.base/java.net=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio=ALL-UNNAMED', - '--add-opens', 'java.base/java.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent.atomic=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.ch=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.cs=ALL-UNNAMED', - '--add-opens', 'java.base/sun.security.action=ALL-UNNAMED', - '--add-opens', 'java.base/sun.util.calendar=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.fs=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.channels.spi=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.ref=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.ref=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.zip=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.jar=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.file.attribute=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED', - '--add-opens', 'java.base/sun.net.www.protocol.jar=ALL-UNNAMED', - '--add-opens', 'java.base/sun.invoke.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent.locks=ALL-UNNAMED', - '--add-opens', 'java.base/java.security=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.annotation=ALL-UNNAMED', - '--add-opens', 'java.base/java.text=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED', - '--add-opens', 'java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED', - '--add-opens', 'java.management/javax.management=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.regex=ALL-UNNAMED', - '--add-opens', 'java.base/sun.util.locale=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.math=ALL-UNNAMED', - '--add-opens', 'java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.time=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.factory=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.channels=ALL-UNNAMED', - '--add-opens', 'java.base/sun.security.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.time.zone=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.scope=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.tree=ALL-UNNAMED', - '--add-opens', 'java.management/com.sun.jmx.interceptor=ALL-UNNAMED', - '--add-opens', 'java.management/javax.management.openmbean=ALL-UNNAMED', - '--add-opens', 'java.management/sun.management=ALL-UNNAMED', - '--add-opens', 'jdk.management/com.sun.management.internal=ALL-UNNAMED', - '--add-opens', 'jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED', - '--add-opens', 'jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.module=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.module=ALL-UNNAMED', - '--add-opens', 'java.security.jgss/sun.security.krb5=ALL-UNNAMED', - '--add-opens', 'java.prefs/java.util.prefs=ALL-UNNAMED', // jacoco - - '-Dio.netty.tryReflectionSetAccessible=true' - ] + // transform the list test configuration --add-opens (which must include both the runtime and test args) into + // command line argument format + final testJVMAddOpens = new ArrayList<>(); + testJVMAddOpens.addAll(runtimeAddOpens); + testJVMAddOpens.addAll(testAddOpens); + final testConfigurationJVMArgs = testJVMAddOpens.stream() + .flatMap(openSpec -> ['--add-opens', openSpec].stream()) + .toList() + // add in any other required args + testConfigurationJVMArgs.add('-Dio.netty.tryReflectionSetAccessible=true') + jvmArgs = testConfigurationJVMArgs } //add gatk launcher script to the jar as a resource @@ -544,6 +519,8 @@ logger.info("build for version:" + version) group = 'org.broadinstitute' tasks.withType(Jar) { + // transform the list of --add-opens directives into manifest format + final manifestAddOpens = runtimeAddOpens.stream().collect(java.util.stream.Collectors.joining(" ")) manifest { attributes 'Implementation-Title': 'The Genome Analysis Toolkit (GATK)', 'Implementation-Version': archiveVersion, @@ -552,7 +529,8 @@ tasks.withType(Jar) { 'Picard-Version': picardVersion, 'htsjdk-Version': htsjdkVersion, 'Spark-Version': sparkVersion, - 'Multi-Release': 'true' + 'Multi-Release': 'true', + 'Add-Opens': manifestAddOpens } } @@ -757,7 +735,7 @@ task testUtilsJar(type: Jar){ //} // //javadoc { -// // This is a hack to disable the java 8 default javadoc lint until we fix the html formatting +// // This is a hack to disable the java default javadoc lint until we fix the html formatting // // We only want to do this for the javadoc task, not gatkDoc // options.addStringOption('Xdoclint:none', '-quiet') // source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) @@ -766,7 +744,7 @@ task testUtilsJar(type: Jar){ // // //task testUtilsJavadoc(type: Javadoc) { -// // This is a hack to disable the java 8 default javadoc lint until we fix the html formatting +// // This is a hack to disable the java default javadoc lint until we fix the html formatting // // We only want to do this for the javadoc task, not gatkDoc // options.addStringOption('Xdoclint:none', '-quiet') // source = sourceSets.testUtils.allJava @@ -809,8 +787,8 @@ task testUtilsSourcesJar(type: Jar){ // include '**/*.java' // // // The gatkDoc process instantiates any documented feature classes, so to run it we need the entire -// // runtime classpath, as well as jdk javadoc files such as tools.jar, where com.sun.javadoc lives. -// classpath = sourceSets.main.runtimeClasspath + javadocJDKFiles +// // runtime classpath. +// classpath = sourceSets.main.runtimeClasspath // options.docletpath = classpath.asType(List) // options.doclet = "org.broadinstitute.hellbender.utils.help.GATKHelpDoclet" // @@ -831,7 +809,7 @@ task testUtilsSourcesJar(type: Jar){ // options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) //} // -//// Generate GATK Bash Tab Completion File +// Generate GATK Bash Tab Completion File //task gatkTabComplete(type: Javadoc, dependsOn: classes) { // final File tabCompletionDir = new File("$docBuildDir/tabCompletion") // doFirst { @@ -848,8 +826,8 @@ task testUtilsSourcesJar(type: Jar){ // include '**/*.java' // // // The gatkDoc process instantiates any documented feature classes, so to run it we need the entire -// // runtime classpath, as well as jdk javadoc files such as tools.jar, where com.sun.javadoc lives, and Picard. -// classpath = sourceSets.main.runtimeClasspath + javadocJDKFiles +// // runtime classpath, includin Picard. +// classpath = sourceSets.main.runtimeClasspath // // options.docletpath = classpath.asType(List) // options.doclet = "org.broadinstitute.barclay.help.BashTabCompletionDoclet" @@ -910,8 +888,8 @@ task testUtilsSourcesJar(type: Jar){ // include '**/*.java' // // // The gatkWDLGen process instantiates any documented feature classes, so to run it we need the entire -// // runtime classpath, as well as jdk javadoc files such as tools.jar, where com.sun.javadoc lives. -// classpath = sourceSets.main.runtimeClasspath + javadocJDKFiles +// // runtime classpath, including picard. +// classpath = sourceSets.main.runtimeClasspath // options.docletpath = classpath.asType(List) // options.doclet = "org.broadinstitute.hellbender.utils.help.GATKWDLDoclet" // diff --git a/gatk b/gatk index 6d515be8acb..c0c455555af 100755 --- a/gatk +++ b/gatk @@ -37,119 +37,13 @@ EXTRA_JAVA_OPTIONS_SPARK= "-DGATK_STACKTRACE_ON_USER_EXCEPTION=true " \ "-Dsamjdk.use_async_io_read_samtools=false " \ "-Dsamjdk.use_async_io_write_samtools=false " \ "-Dsamjdk.use_async_io_write_tribble=false " \ - "-Dsamjdk.compression_level=2 " \ - "--add-opens", "java.base/java.lang=ALL-UNNAMED " \ - "--add-opens", "java.base/java.lang.invoke=ALL-UNNAMED " \ - "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED " \ - "--add-opens", "java.base/java.io=ALL-UNNAMED " \ - "--add-opens", "java.base/java.net=ALL-UNNAMED " \ - "--add-opens", "java.base/java.nio=ALL-UNNAMED " \ - "--add-opens", "java.base/java.util=ALL-UNNAMED " \ - "--add-opens", "java.base/java.util.concurrent=ALL-UNNAMED " \ - "--add-opens", "java.base/java.util.concurrent.atomic=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.nio.cs=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.security.action=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.util.calendar=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.nio.fs=ALL-UNNAMED " \ - "--add-opens", "java.base/java.nio.channels.spi=ALL-UNNAMED " \ - "--add-opens", "java.base/jdk.internal.ref=ALL-UNNAMED " \ - "--add-opens", "java.base/java.lang.ref=ALL-UNNAMED " \ - "--add-opens", "java.base/java.util.zip=ALL-UNNAMED " \ - "--add-opens", "java.base/java.util.jar=ALL-UNNAMED " \ - "--add-opens", "java.base/java.nio.file.attribute=ALL-UNNAMED " \ - "--add-opens", "java.base/jdk.internal.loader=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.net.www.protocol.jar=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.invoke.util=ALL-UNNAMED " \ - "--add-opens", "java.base/java.util.concurrent.locks=ALL-UNNAMED " \ - "--add-opens", "java.base/java.security=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.reflect.annotation=ALL-UNNAMED " \ - "--add-opens", "java.base/java.text=ALL-UNNAMED " \ - "--add-opens", "java.base/java.nio.charset=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED " \ - "--add-opens", "java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED " \ - "--add-opens", "java.management/javax.management=ALL-UNNAMED " \ - "--add-opens", "java.base/java.util.regex=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.util.locale=ALL-UNNAMED " \ - "--add-opens", "java.base/jdk.internal.math=ALL-UNNAMED " \ - "--add-opens", "java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED " \ - "--add-opens", "java.base/java.time=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.reflect.generics.factory=ALL-UNNAMED' " \ - "--add-opens", "java.base/java.nio.channels=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.security.util=ALL-UNNAMED " \ - "--add-opens", "java.base/java.time.zone=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.reflect.generics.scope=ALL-UNNAMED " \ - "--add-opens", "java.base/sun.reflect.generics.tree=ALL-UNNAMED " \ - "--add-opens", "java.management/com.sun.jmx.interceptor=ALL-UNNAMED " \ - "--add-opens", "java.management/javax.management.openmbean=ALL-UNNAMED " \ - "--add-opens", "java.management/sun.management=ALL-UNNAMED " \ - "--add-opens", "jdk.management/com.sun.management.internal=ALL-UNNAMED " \ - "--add-opens", "jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED " \ - "--add-opens", "jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED " \ - "--add-opens", "java.base/jdk.internal.module=ALL-UNNAMED " \ - "--add-opens", "java.base/java.lang.module=ALL-UNNAMED " \ - "--add-opens", "java.security.jgss/sun.security.krb5=ALL-UNNAMED " \ - "--add-opens", "java.prefs/java.util.prefs=ALL-UNNAMED " \ - "-Dio.netty.tryReflectionSetAccessible=true" + "-Dsamjdk.compression_level=2 " PACKAGED_LOCAL_JAR_OPTIONS= [ "-Dsamjdk.use_async_io_read_samtools=false", "-Dsamjdk.use_async_io_write_samtools=true", "-Dsamjdk.use_async_io_write_tribble=false", - "-Dsamjdk.compression_level=2", - "--add-opens", "java.base/java.lang=ALL-UNNAMED", - "--add-opens", "java.base/java.lang.invoke=ALL-UNNAMED", - "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", - "--add-opens", "java.base/java.io=ALL-UNNAMED", - "--add-opens", "java.base/java.net=ALL-UNNAMED", - "--add-opens", "java.base/java.nio=ALL-UNNAMED", - "--add-opens", "java.base/java.util=ALL-UNNAMED", - "--add-opens", "java.base/java.util.concurrent=ALL-UNNAMED", - "--add-opens", "java.base/java.util.concurrent.atomic=ALL-UNNAMED ", - "--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", - "--add-opens", "java.base/sun.nio.cs=ALL-UNNAMED", - "--add-opens", "java.base/sun.security.action=ALL-UNNAMED", - "--add-opens", "java.base/sun.util.calendar=ALL-UNNAMED", - "--add-opens", "java.base/sun.nio.fs=ALL-UNNAMED", - "--add-opens", "java.base/java.nio.channels.spi=ALL-UNNAMED", - "--add-opens", "java.base/jdk.internal.ref=ALL-UNNAMED", - "--add-opens", "java.base/java.lang.ref=ALL-UNNAMED", - "--add-opens", "java.base/java.util.zip=ALL-UNNAMED", - "--add-opens", "java.base/java.util.jar=ALL-UNNAMED", - "--add-opens", "java.base/java.nio.file.attribute=ALL-UNNAMED", - "--add-opens", "java.base/jdk.internal.loader=ALL-UNNAMED", - "--add-opens", "java.base/sun.net.www.protocol.jar=ALL-UNNAMED", - "--add-opens", "java.base/sun.invoke.util=ALL-UNNAMED", - "--add-opens", "java.base/java.util.concurrent.locks=ALL-UNNAMED", - "--add-opens", "java.base/java.security=ALL-UNNAMED", - "--add-opens", "java.base/sun.reflect.annotation=ALL-UNNAMED", - "--add-opens", "java.base/java.text=ALL-UNNAMED", - "--add-opens", "java.base/java.nio.charset=ALL-UNNAMED", - "--add-opens", "java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED", - "--add-opens", "java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED", - "--add-opens", "java.management/javax.management=ALL-UNNAMED", - "--add-opens", "java.base/java.util.regex=ALL-UNNAMED", - "--add-opens", "java.base/sun.util.locale=ALL-UNNAMED", - "--add-opens", "java.base/jdk.internal.math=ALL-UNNAMED", - "--add-opens", "java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED", - "--add-opens", "java.base/java.time=ALL-UNNAMED", - "--add-opens", "java.base/sun.reflect.generics.factory=ALL-UNNAMED", - "--add-opens", "java.base/java.nio.channels=ALL-UNNAMED", - "--add-opens", "java.base/sun.security.util=ALL-UNNAMED", - "--add-opens", "java.base/java.time.zone=ALL-UNNAMED", - "--add-opens", "java.base/sun.reflect.generics.scope=ALL-UNNAMED", - "--add-opens", "java.base/sun.reflect.generics.tree=ALL-UNNAMED", - "--add-opens", "java.management/com.sun.jmx.interceptor=ALL-UNNAMED", - "--add-opens", "java.management/javax.management.openmbean=ALL-UNNAMED", - "--add-opens", "java.management/sun.management=ALL-UNNAMED", - "--add-opens", "jdk.management/com.sun.management.internal=ALL-UNNAMED", - "--add-opens", "jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED", - "--add-opens", "jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED", - "--add-opens", "java.base/jdk.internal.module=ALL-UNNAMED", - "--add-opens", "java.base/java.lang.module=ALL-UNNAMED", - "--add-opens", "java.security.jgss/sun.security.krb5=ALL-UNNAMED", - "--add-opens", "java.prefs/java.util.prefs=ALL-UNNAMED", - "-Dio.netty.tryReflectionSetAccessible=true" + "-Dsamjdk.compression_level=2" ] DEFAULT_SPARK_ARGS_PREFIX = '--conf' diff --git a/scripts/docker/dockertest.gradle b/scripts/docker/dockertest.gradle index bf21192493f..1849e0bbcde 100644 --- a/scripts/docker/dockertest.gradle +++ b/scripts/docker/dockertest.gradle @@ -36,122 +36,85 @@ task unpackTestJar(type: Copy){ } } -test { - jvmArgs = [ - '--add-opens', 'java.base/java.lang=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.invoke=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED', - '--add-opens', 'java.base/java.io=ALL-UNNAMED', - '--add-opens', 'java.base/java.net=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio=ALL-UNNAMED', - '--add-opens', 'java.base/java.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent.atomic=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.ch=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.cs=ALL-UNNAMED', - '--add-opens', 'java.base/sun.security.action=ALL-UNNAMED', - '--add-opens', 'java.base/sun.util.calendar=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.fs=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.channels.spi=ALL-UNNAMED', - - // required for tests - '--add-opens', 'java.base/jdk.internal.ref=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.ref=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.zip=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.jar=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.file.attribute=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED', - '--add-opens', 'java.base/sun.net.www.protocol.jar=ALL-UNNAMED', - '--add-opens', 'java.base/sun.invoke.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent.locks=ALL-UNNAMED', - '--add-opens', 'java.base/java.security=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.annotation=ALL-UNNAMED', - '--add-opens', 'java.base/java.text=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED', - '--add-opens', 'java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED', - '--add-opens', 'java.management/javax.management=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.regex=ALL-UNNAMED', - '--add-opens', 'java.base/sun.util.locale=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.math=ALL-UNNAMED', - '--add-opens', 'java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.time=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.factory=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.channels=ALL-UNNAMED', - '--add-opens', 'java.base/sun.security.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.time.zone=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.scope=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.tree=ALL-UNNAMED', - '--add-opens', 'java.management/com.sun.jmx.interceptor=ALL-UNNAMED', - '--add-opens', 'java.management/javax.management.openmbean=ALL-UNNAMED', - '--add-opens', 'java.management/sun.management=ALL-UNNAMED', - '--add-opens', 'jdk.management/com.sun.management.internal=ALL-UNNAMED', - '--add-opens', 'jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED', - '--add-opens', 'jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.module=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.module=ALL-UNNAMED', - '--add-opens', 'java.prefs/java.util.prefs=ALL-UNNAMED', // jacoco +// The --add-open directives required to run GATK. This list needs to be kept in sync with the corresponding +// list in the main project build.gradle. +// +final runtimeAddOpens = [ + // taken from the union of everything encountered by tests, plus everything defined here: + // https://github.com/apache/spark/blob/v3.3.0/launcher/src/main/java/org/apache/spark/launcher/JavaModuleOptions.java + 'java.base/java.lang=ALL-UNNAMED', + 'java.base/java.lang.invoke=ALL-UNNAMED', + 'java.base/java.lang.reflect=ALL-UNNAMED', + 'java.base/java.io=ALL-UNNAMED', + 'java.base/java.net=ALL-UNNAMED', + 'java.base/java.nio=ALL-UNNAMED', + 'java.base/java.util=ALL-UNNAMED', + 'java.base/java.util.concurrent=ALL-UNNAMED', + 'java.base/java.util.concurrent.atomic=ALL-UNNAMED', + 'java.base/sun.nio.ch=ALL-UNNAMED', + 'java.base/sun.nio.cs=ALL-UNNAMED', + 'java.base/sun.security.action=ALL-UNNAMED', + 'java.base/sun.util.calendar=ALL-UNNAMED', + 'java.base/sun.nio.fs=ALL-UNNAMED', + 'java.base/java.nio.channels.spi=ALL-UNNAMED', + 'java.base/jdk.internal.ref=ALL-UNNAMED', + 'java.base/java.lang.ref=ALL-UNNAMED', + 'java.base/java.util.zip=ALL-UNNAMED', + 'java.base/java.util.jar=ALL-UNNAMED', + 'java.base/java.nio.file.attribute=ALL-UNNAMED', + 'java.base/jdk.internal.loader=ALL-UNNAMED', + 'java.base/sun.net.www.protocol.jar=ALL-UNNAMED', + 'java.base/sun.invoke.util=ALL-UNNAMED', + 'java.base/java.util.concurrent.locks=ALL-UNNAMED', + 'java.base/java.security=ALL-UNNAMED', + 'java.base/sun.reflect.annotation=ALL-UNNAMED', + 'java.base/java.text=ALL-UNNAMED', + 'java.base/java.nio.charset=ALL-UNNAMED', + 'java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED', + 'java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED', + 'java.management/javax.management=ALL-UNNAMED', + 'java.base/java.util.regex=ALL-UNNAMED', + 'java.base/sun.util.locale=ALL-UNNAMED', + 'java.base/jdk.internal.math=ALL-UNNAMED', + 'java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED', + 'java.base/java.time=ALL-UNNAMED', + 'java.base/sun.reflect.generics.factory=ALL-UNNAMED', + 'java.base/java.nio.channels=ALL-UNNAMED', + 'java.base/sun.security.util=ALL-UNNAMED', + 'java.base/java.time.zone=ALL-UNNAMED', + 'java.base/sun.reflect.generics.scope=ALL-UNNAMED', + 'java.base/sun.reflect.generics.tree=ALL-UNNAMED', + 'java.management/com.sun.jmx.interceptor=ALL-UNNAMED', + 'java.management/javax.management.openmbean=ALL-UNNAMED', + 'java.management/sun.management=ALL-UNNAMED', + 'jdk.management/com.sun.management.internal=ALL-UNNAMED', + 'jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED', + 'jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED', + 'java.base/jdk.internal.module=ALL-UNNAMED', + 'java.base/java.lang.module=ALL-UNNAMED', + 'java.security.jgss/sun.security.krb5=ALL-UNNAMED' +] + +final testAddOpens = [ + 'java.prefs/java.util.prefs=ALL-UNNAMED' // required for jacoco tasks +] + +def getJVMArgs(runtimeAddOpens, testAddOpens) { + final testJVMAddOpens = new ArrayList<>(); + testJVMAddOpens.addAll(runtimeAddOpens); + testJVMAddOpens.addAll(testAddOpens); + final testConfigurationJVMArgs = testJVMAddOpens.stream() + .flatMap(openSpec -> ['--add-opens', openSpec].stream()) + .toList() + // add in any other required args + testConfigurationJVMArgs.add('-Dio.netty.tryReflectionSetAccessible=true') + return testConfigurationJVMArgs +} - '-Dio.netty.tryReflectionSetAccessible=true' - ] +test { + jvmArgs = getJVMArgs(runtimeAddOpens, testAddOpens) jacoco { - jvmArgs = [ - '--add-opens', 'java.base/java.lang=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.invoke=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED', - '--add-opens', 'java.base/java.io=ALL-UNNAMED', - '--add-opens', 'java.base/java.net=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio=ALL-UNNAMED', - '--add-opens', 'java.base/java.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent.atomic=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.ch=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.cs=ALL-UNNAMED', - '--add-opens', 'java.base/sun.security.action=ALL-UNNAMED', - '--add-opens', 'java.base/sun.util.calendar=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.fs=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.channels.spi=ALL-UNNAMED', - - // required for tests - '--add-opens', 'java.base/jdk.internal.ref=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.ref=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.zip=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.jar=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.file.attribute=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED', - '--add-opens', 'java.base/sun.net.www.protocol.jar=ALL-UNNAMED', - '--add-opens', 'java.base/sun.invoke.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent.locks=ALL-UNNAMED', - '--add-opens', 'java.base/java.security=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.annotation=ALL-UNNAMED', - '--add-opens', 'java.base/java.text=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED', - '--add-opens', 'java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED', - '--add-opens', 'java.base/javax.management=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.regex=ALL-UNNAMED', - '--add-opens', 'java.base/sun.util.locale=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.math=ALL-UNNAMED', - '--add-opens', 'java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.time=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.factory=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.channels=ALL-UNNAMED', - '--add-opens', 'java.base/sun.security.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.time.zone=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.scope=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.tree=ALL-UNNAMED', - '--add-opens', 'java.management/com.sun.jmx.interceptor=ALL-UNNAMED', - '--add-opens', 'java.management/javax.management.openmbean=ALL-UNNAMED', - '--add-opens', 'java.management/sun.management=ALL-UNNAMED', - '--add-opens', 'jdk.management/com.sun.management.internal=ALL-UNNAMED', - '--add-opens', 'jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED', - '--add-opens', 'jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.module=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.module=ALL-UNNAMED', - '--add-opens', 'java.prefs/java.util.prefs=ALL-UNNAMED', // jacoco - - '-Dio.netty.tryReflectionSetAccessible=true' - ] + jvmArgs = getJVMArgs(runtimeAddOpens, testAddOpens) } } @@ -181,62 +144,7 @@ task testOnPackagedReleaseJar(type: Test){ classpath.each {println it} } - jvmArgs = [ - '--add-opens', 'java.base/java.lang=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.invoke=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED', - '--add-opens', 'java.base/java.io=ALL-UNNAMED', - '--add-opens', 'java.base/java.net=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio=ALL-UNNAMED', - '--add-opens', 'java.base/java.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent.atomic=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.ch=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.cs=ALL-UNNAMED', - '--add-opens', 'java.base/sun.security.action=ALL-UNNAMED', - '--add-opens', 'java.base/sun.util.calendar=ALL-UNNAMED', - '--add-opens', 'java.base/sun.nio.fs=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.channels.spi=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.ref=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.ref=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.zip=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.jar=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.file.attribute=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED', - '--add-opens', 'java.base/sun.net.www.protocol.jar=ALL-UNNAMED', - '--add-opens', 'java.base/sun.invoke.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.concurrent.locks=ALL-UNNAMED', - '--add-opens', 'java.base/java.security=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.annotation=ALL-UNNAMED', - '--add-opens', 'java.base/java.text=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED', - '--add-opens', 'java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED', - '--add-opens', 'java.management/javax.management=ALL-UNNAMED', - '--add-opens', 'java.base/java.util.regex=ALL-UNNAMED', - '--add-opens', 'java.base/sun.util.locale=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.math=ALL-UNNAMED', - '--add-opens', 'java.xml/com.sun.xml.internal.stream.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.time=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.factory=ALL-UNNAMED', - '--add-opens', 'java.base/java.nio.channels=ALL-UNNAMED', - '--add-opens', 'java.base/sun.security.util=ALL-UNNAMED', - '--add-opens', 'java.base/java.time.zone=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.scope=ALL-UNNAMED', - '--add-opens', 'java.base/sun.reflect.generics.tree=ALL-UNNAMED', - '--add-opens', 'java.management/com.sun.jmx.interceptor=ALL-UNNAMED', - '--add-opens', 'java.management/javax.management.openmbean=ALL-UNNAMED', - '--add-opens', 'java.management/sun.management=ALL-UNNAMED', - '--add-opens', 'jdk.management/com.sun.management.internal=ALL-UNNAMED', - '--add-opens', 'jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED', - '--add-opens', 'jdk.jfr/jdk.jfr.internal.management=ALL-UNNAMED', - '--add-opens', 'java.base/jdk.internal.module=ALL-UNNAMED', - '--add-opens', 'java.base/java.lang.module=ALL-UNNAMED', - '--add-opens', 'java.security.jgss/sun.security.krb5=ALL-UNNAMED', - '--add-opens', 'java.prefs/java.util.prefs=ALL-UNNAMED', // jacoco - - '-Dio.netty.tryReflectionSetAccessible=true' - ] + jvmArgs = getJVMArgs(runtimeAddOpens, testAddOpens) classpath = files( gatkJar, testClassesJar, testDependencyJar) testClassesDirs = files(testClassesUnpacked) From 4cfe136b6a32a05769e1d09336f8d0748338e00d Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Mon, 19 Dec 2022 15:38:41 -0500 Subject: [PATCH 03/36] Fix bad dependency picked up in rebase. --- .../hellbender/tools/walkers/annotator/AssemblyComplexity.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/AssemblyComplexity.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/AssemblyComplexity.java index c71d6faabb4..a33796672e0 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/AssemblyComplexity.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/AssemblyComplexity.java @@ -4,7 +4,6 @@ import htsjdk.samtools.util.Locatable; import htsjdk.variant.variantcontext.Allele; import htsjdk.variant.variantcontext.VariantContext; -import jdk.nashorn.internal.runtime.regexp.joni.constants.EncloseType; import org.apache.commons.lang.mutable.MutableInt; import org.broadinstitute.barclay.argparser.Argument; import org.apache.commons.lang3.tuple.Triple; From fd811bbb73168e67b5a33da4ff0c5a3206aaa8eb Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Tue, 10 Jan 2023 10:19:28 -0500 Subject: [PATCH 04/36] Repair README.md. --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 10a80089ec7..7e95c87e8c6 100644 --- a/README.md +++ b/README.md @@ -53,10 +53,8 @@ releases of the toolkit. * To run GATK: * Java 17 is needed to run or build GATK. We recommend one of the following: - * Download the Eclipse Foundation's distribution of OpenJDK 17 from [adoptium.net](https://adoptium.net/). Navigate to the [release archive](https://adoptium.net/temurin/archive/?version=8) to find downloads for Java 8. - * On Mac OS, you can install the [Homebrew package manager](https://brew.sh/) and run `brew tap homebrew/cask-versions` followed by `brew install --cask temurin8` to install the Eclipse Foundation's OpenJDK 8. - * Or you can download the older [OracleJDK 8](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) - which requires an Oracle account to download and comes with restrictive [license conditions](https://www.oracle.com/downloads/licenses/javase-license1.html). + * Download the Eclipse Foundation's distribution of OpenJDK 17 from [adoptium.net](https://adoptium.net/). Navigate to the [release archive](https://adoptium.net/temurin/archive/?version=17) to find downloads for Java 17. + * On Mac OS, you can install the [Homebrew package manager](https://brew.sh/) and run `brew tap homebrew/cask-versions` followed by `brew install --cask temurin17` to install the Eclipse Foundation's OpenJDK 17. * Python 2.6 or greater (required to run the `gatk` frontend script) * Python 3.6.2, along with a set of additional Python packages, is required to run some tools and workflows. See [Python Dependencies](#python) for more information. @@ -471,7 +469,7 @@ We use [git-lfs](https://git-lfs.github.com/) to version and distribute test dat * Select "Use auto-import" and "Use default gradle wrapper". -* Make sure the Gradle JVM points to Java 1.8. You may need to set this manually after creating the project, to do so find the gradle settings by clicking the wrench icon in the gradle tab on the right bar, from there edit "Gradle JVM" argument to point to Java 1.8. +* Make sure the Gradle JVM points to Java 1.17. You may need to set this manually after creating the project, to do so find the gradle settings by clicking the wrench icon in the gradle tab on the right bar, from there edit "Gradle JVM" argument to point to Java 1.17. * Click "Finish" From 9e353817253c44f28fc9b853a1cc12ed0c9bc780 Mon Sep 17 00:00:00 2001 From: Samuel Lee Date: Tue, 24 Jan 2023 19:57:56 -0500 Subject: [PATCH 05/36] changing non-Docker from 17 to 17.0.1+12 --- .github/workflows/gatk-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gatk-tests.yml b/.github/workflows/gatk-tests.yml index 20471b29890..bc1f28b3f34 100644 --- a/.github/workflows/gatk-tests.yml +++ b/.github/workflows/gatk-tests.yml @@ -73,7 +73,7 @@ jobs: needs: check-secrets strategy: matrix: - java: [ 17 ] + java: [ 17.0.1+12 ] experimental: [ false ] scalaVersion: [ 2.12 ] testType: [ cloud, integration, unit ] @@ -149,7 +149,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [ 17 ] + java: [ 17.0.1+12 ] experimental: [ false ] scalaVersion: [ 2.12 ] testType: [ integration, unit, variantcalling, conda ] From 3493c71467709321a29ea5a3463f546749a12c59 Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Mon, 30 Jan 2023 17:34:14 -0500 Subject: [PATCH 06/36] Update ModelSegments expected results for Java 17.0.1+12. --- ...-sample-ac-nac-tumor-1.modelBegin.af.param | 6 +- ...tiple-sample-ac-nac-tumor-1.modelBegin.seg | 382 ++++++------ ...iple-sample-ac-tumor-1.modelBegin.af.param | 6 +- .../multiple-sample-ac-tumor-1.modelBegin.seg | 576 +++++++++--------- ...mple-cr-ac-nac-tumor-1.modelBegin.af.param | 6 +- ...le-sample-cr-ac-nac-tumor-1.modelBegin.seg | 156 ++--- ...e-sample-cr-ac-tumor-1.modelBegin.af.param | 6 +- ...ltiple-sample-cr-ac-tumor-1.modelBegin.seg | 222 +++---- .../single-sample-ac-nac.af.igv.seg | 18 +- .../single-sample-ac-nac.cr.igv.seg | 8 +- .../single-sample-ac-nac.cr.seg | 8 +- .../single-sample-ac-nac.modelBegin.af.param | 6 +- .../single-sample-ac-nac.modelBegin.seg | 92 +-- .../single-sample-ac-nac.modelFinal.af.param | 6 +- .../single-sample-ac-nac.modelFinal.seg | 18 +- .../single-sample-ac.af.igv.seg | 6 +- .../single-sample-ac.cr.igv.seg | 4 +- .../single-sample-ac.cr.seg | 4 +- .../single-sample-ac.modelBegin.af.param | 6 +- .../single-sample-ac.modelBegin.seg | 136 ++--- .../single-sample-ac.modelFinal.af.param | 6 +- .../single-sample-ac.modelFinal.seg | 6 +- .../single-sample-cr-ac-nac.modelBegin.seg | 2 +- 23 files changed, 847 insertions(+), 839 deletions(-) diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.af.param index bb6129c4004..b45a7d96f63 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.092482 1.106161 1.113179 1.124902 1.131327 1.144333 1.154568 1.164827 1.180697 -BIAS_VARIANCE 0.434015 0.446432 0.459002 0.467580 0.475156 0.484281 0.487932 0.492417 0.495571 -OUTLIER_PROBABILITY 0.057314 0.069014 0.076118 0.079128 0.082268 0.089037 0.093737 0.100190 0.110147 +MEAN_BIAS 1.070124 1.081592 1.099740 1.106582 1.112816 1.119808 1.130594 1.135492 1.150073 +BIAS_VARIANCE 0.388637 0.426262 0.437928 0.448314 0.464513 0.477831 0.482795 0.487486 0.492007 +OUTLIER_PROBABILITY 0.062308 0.070366 0.083632 0.092903 0.099303 0.105473 0.110069 0.119230 0.132290 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.seg index f878e6f373d..5a67d069c81 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-nac-tumor-1.modelBegin.seg @@ -2,194 +2,194 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 138125 138148 0 2 NaN NaN NaN 0.464407 0.486070 0.497579 -20 139409 139576 0 3 NaN NaN NaN 0.461122 0.485931 0.499176 -20 168466 259156 0 12 NaN NaN NaN 0.457895 0.491265 0.498872 -20 259818 259818 0 1 NaN NaN NaN 0.466382 0.491250 0.498654 -20 259969 278806 0 2 NaN NaN NaN 0.463206 0.490312 0.498144 -20 368905 377226 0 3 NaN NaN NaN 0.458044 0.487224 0.498757 -20 389456 402921 0 4 NaN NaN NaN 0.466234 0.489776 0.497812 -20 425606 744415 0 4 NaN NaN NaN 0.464461 0.486551 0.497698 -20 744570 744570 0 1 NaN NaN NaN 0.453157 0.481366 0.497870 -20 746098 1285933 0 5 NaN NaN NaN 0.462423 0.490947 0.498324 -20 1424303 1424303 0 1 NaN NaN NaN 0.468911 0.490827 0.497889 -20 1426393 1458504 0 3 NaN NaN NaN 0.466803 0.482278 0.495897 -20 1517979 1552430 0 8 NaN NaN NaN 0.470641 0.492234 0.499442 -20 1559330 1592312 0 6 NaN NaN NaN 0.430067 0.486737 0.498420 -20 1600524 1600524 0 1 NaN NaN NaN 0.465881 0.488372 0.498560 -20 1610790 1610894 0 3 NaN NaN NaN 0.441414 0.484672 0.499017 -20 1615883 1616892 0 2 NaN NaN NaN 0.454391 0.481182 0.497772 -20 1895889 1896060 0 3 NaN NaN NaN 0.461932 0.489455 0.498334 -20 2056358 2056358 0 1 NaN NaN NaN 0.459308 0.484849 0.498173 -20 2315929 2517377 0 3 NaN NaN NaN 0.446734 0.491616 0.498323 -20 2517432 2517825 0 2 NaN NaN NaN 0.450113 0.492662 0.498695 -20 2552805 2552805 0 1 NaN NaN NaN 0.446937 0.485765 0.498437 -20 2593006 2621998 0 9 NaN NaN NaN 0.460278 0.482027 0.496574 -20 2633380 2779257 0 3 NaN NaN NaN 0.438601 0.484985 0.498236 -20 2796471 2796471 0 1 NaN NaN NaN 0.451218 0.484158 0.497717 -20 2818801 2996589 0 5 NaN NaN NaN 0.456774 0.480657 0.496687 -20 3002889 3199446 0 4 NaN NaN NaN 0.456957 0.481845 0.497566 -20 3624830 3640823 0 2 NaN NaN NaN 0.441022 0.483394 0.496273 -20 3641881 3653149 0 5 NaN NaN NaN 0.441273 0.481576 0.496279 -20 3654433 3686436 0 12 NaN NaN NaN 0.458082 0.483582 0.495629 -20 3721456 3731622 0 2 NaN NaN NaN 0.467440 0.490354 0.498490 -20 3732633 3838441 0 2 NaN NaN NaN 0.445706 0.486568 0.498390 -20 3870124 4055656 0 2 NaN NaN NaN 0.456928 0.486150 0.499034 -20 4155948 4162411 0 2 NaN NaN NaN 0.475001 0.491001 0.497316 -20 4202802 4705756 0 4 NaN NaN NaN 0.459922 0.483416 0.492498 -20 4843609 4843609 0 1 NaN NaN NaN 0.465557 0.483322 0.497828 -20 4880308 5261206 0 4 NaN NaN NaN 0.465757 0.489166 0.498847 -20 5273253 5273382 0 3 NaN NaN NaN 0.454133 0.486813 0.498199 -20 5283256 5482307 0 8 NaN NaN NaN 0.446504 0.481487 0.495978 -20 5528518 6064839 0 8 NaN NaN NaN 0.459175 0.482503 0.496616 -20 6065731 6100230 0 5 NaN NaN NaN 0.459071 0.486316 0.498339 -20 6194421 6195664 0 2 NaN NaN NaN 0.425071 0.477271 0.492088 -20 7866261 7999537 0 4 NaN NaN NaN 0.436744 0.482666 0.498196 -20 8626903 8626903 0 1 NaN NaN NaN 0.440978 0.486508 0.497051 -20 8665751 8703145 0 4 NaN NaN NaN 0.459312 0.482962 0.495206 -20 8707900 8707927 0 2 NaN NaN NaN 0.438393 0.486206 0.496464 -20 8737734 8769423 0 4 NaN NaN NaN 0.454830 0.476714 0.497234 -20 8770318 8770932 0 3 NaN NaN NaN 0.449636 0.484128 0.496957 -20 8773096 8773096 0 1 NaN NaN NaN 0.445031 0.482924 0.498446 -20 8773155 9417870 0 2 NaN NaN NaN 0.463520 0.486597 0.497565 -20 9424810 9510263 0 3 NaN NaN NaN 0.460224 0.482838 0.497542 -20 10024951 10024951 0 1 NaN NaN NaN 0.452279 0.486484 0.498485 -20 10026357 10032413 0 4 NaN NaN NaN 0.434263 0.475963 0.493759 -20 10329888 10393145 0 3 NaN NaN NaN 0.434909 0.486369 0.498872 -20 10438780 10438780 0 1 NaN NaN NaN 0.475837 0.491947 0.499234 -20 10629129 10629525 0 2 NaN NaN NaN 0.456437 0.489532 0.499008 -20 13054633 13060331 0 2 NaN NaN NaN 0.454256 0.477287 0.496440 -20 13071871 13071871 0 1 NaN NaN NaN 0.459138 0.479761 0.498746 -20 13074243 13074243 0 1 NaN NaN NaN 0.467449 0.483747 0.495100 -20 13090745 13260252 0 2 NaN NaN NaN 0.451010 0.483723 0.498521 -20 13769127 13769127 0 1 NaN NaN NaN 0.460953 0.483593 0.497393 -20 13798676 13830137 0 3 NaN NaN NaN 0.470761 0.491039 0.499020 -20 13845726 13845726 0 1 NaN NaN NaN 0.458991 0.489243 0.498246 -20 14306896 14306896 0 1 NaN NaN NaN 0.462697 0.482747 0.497749 -20 14306953 15874325 0 2 NaN NaN NaN 0.471777 0.489701 0.498759 -20 15967327 15967327 0 1 NaN NaN NaN 0.460896 0.482684 0.498108 -20 16730479 16730522 0 2 NaN NaN NaN 0.472701 0.490168 0.499277 -20 17459905 17460005 0 3 NaN NaN NaN 0.438471 0.494247 0.499313 -20 17474690 17594729 0 6 NaN NaN NaN 0.405755 0.481667 0.494895 -20 17595329 17596731 0 3 NaN NaN NaN 0.455723 0.485909 0.498079 -20 17597531 17597531 0 1 NaN NaN NaN 0.456243 0.484270 0.499608 -20 17600357 17600357 0 1 NaN NaN NaN 0.460066 0.489594 0.496607 -20 17602028 17602028 0 1 NaN NaN NaN 0.457020 0.483003 0.496373 -20 17992979 18022171 0 3 NaN NaN NaN 0.445688 0.485691 0.498082 -20 18142924 18142924 0 1 NaN NaN NaN 0.459703 0.486154 0.497652 -20 18286888 18446024 0 6 NaN NaN NaN 0.446208 0.485565 0.497564 -20 18806046 19970705 0 7 NaN NaN NaN 0.418702 0.473775 0.495490 -20 20032998 20033367 0 5 NaN NaN NaN 0.424455 0.488391 0.499058 -20 20033380 20033380 0 1 NaN NaN NaN 0.462944 0.488471 0.498671 -20 20037222 21336825 0 17 NaN NaN NaN 0.304050 0.346376 0.394794 -20 21897170 22714612 0 4 NaN NaN NaN 0.457290 0.489059 0.499217 -20 23345844 23424613 0 5 NaN NaN NaN 0.437295 0.481003 0.497200 -20 23425812 23529388 0 3 NaN NaN NaN 0.452706 0.484566 0.498899 -20 23529418 23807028 0 9 NaN NaN NaN 0.453581 0.483115 0.494498 -20 23842032 23842032 0 1 NaN NaN NaN 0.437562 0.483631 0.497048 -20 23860178 24200652 0 2 NaN NaN NaN 0.456297 0.486667 0.498941 -20 24939590 24939590 0 1 NaN NaN NaN 0.447034 0.481283 0.496603 -20 24993414 25011423 0 3 NaN NaN NaN 0.451753 0.482944 0.497565 -20 25038484 25059442 0 2 NaN NaN NaN 0.440957 0.482353 0.495245 -20 25190598 25255338 0 3 NaN NaN NaN 0.467700 0.487215 0.497722 -20 25255415 25255415 0 1 NaN NaN NaN 0.447030 0.476191 0.497503 -20 25257260 25261784 0 6 NaN NaN NaN 0.440299 0.481490 0.498109 -20 25262769 25262789 0 2 NaN NaN NaN 0.458143 0.487150 0.498592 -20 25263756 25263756 0 1 NaN NaN NaN 0.452278 0.488451 0.496533 -20 25264664 25282944 0 12 NaN NaN NaN 0.458368 0.487880 0.498741 -20 25288505 25295787 0 2 NaN NaN NaN 0.451414 0.485110 0.498004 -20 25320228 25398876 0 3 NaN NaN NaN 0.447331 0.480219 0.497599 -20 25434351 25470056 0 8 NaN NaN NaN 0.448601 0.489158 0.498747 -20 25597236 25838130 0 7 NaN NaN NaN 0.389397 0.466843 0.492718 -20 25838802 25841650 0 4 NaN NaN NaN 0.473491 0.490042 0.498458 -20 25846283 25900162 0 3 NaN NaN NaN 0.432052 0.475427 0.497368 -20 25900379 25965961 0 2 NaN NaN NaN 0.453943 0.479595 0.498381 -20 29449417 29449417 0 1 NaN NaN NaN 0.447085 0.487201 0.499140 -20 29516670 29572218 0 6 NaN NaN NaN 0.466761 0.489625 0.497234 -20 29632564 29632564 0 1 NaN NaN NaN 0.459153 0.488990 0.497113 -20 29633929 29648701 0 3 NaN NaN NaN 0.450700 0.486758 0.498239 -20 29873577 30037783 0 3 NaN NaN NaN 0.461542 0.488383 0.497918 -20 30053255 31025231 0 4 NaN NaN NaN 0.417046 0.477463 0.498282 -20 31647126 31677476 0 8 NaN NaN NaN 0.436732 0.479856 0.496731 -20 31811551 32710710 0 12 NaN NaN NaN 0.289504 0.321465 0.364668 -20 32990050 33063830 0 5 NaN NaN NaN 0.426077 0.479029 0.498662 -20 33068563 33879478 0 3 NaN NaN NaN 0.459169 0.491222 0.498511 -20 34218673 34312713 0 8 NaN NaN NaN 0.455638 0.486018 0.497565 -20 34319765 34324484 0 4 NaN NaN NaN 0.476236 0.492410 0.499058 -20 34328848 34328848 0 1 NaN NaN NaN 0.465145 0.489464 0.498062 -20 34443173 34782171 0 11 NaN NaN NaN 0.454545 0.486928 0.497617 -20 35491033 35559352 0 2 NaN NaN NaN 0.437221 0.475433 0.494420 -20 35710453 35710453 0 1 NaN NaN NaN 0.440980 0.481082 0.496704 -20 35740794 35740794 0 1 NaN NaN NaN 0.461184 0.488450 0.497873 -20 35748894 35869619 0 15 NaN NaN NaN 0.345601 0.399604 0.492575 -20 36022539 36718059 0 5 NaN NaN NaN 0.466266 0.487012 0.498169 -20 36790166 36793529 0 3 NaN NaN NaN 0.464594 0.484363 0.497311 -20 36841756 36919758 0 4 NaN NaN NaN 0.475975 0.492286 0.498968 -20 36932551 36937246 0 4 NaN NaN NaN 0.470434 0.493272 0.497778 -20 36946848 36959353 0 3 NaN NaN NaN 0.465418 0.487228 0.498530 -20 36965617 36965617 0 1 NaN NaN NaN 0.416402 0.488857 0.498547 -20 36989269 37279458 0 11 NaN NaN NaN 0.470659 0.487779 0.494168 -20 37377139 37396262 0 5 NaN NaN NaN 0.458424 0.487488 0.495674 -20 38354742 38354742 0 1 NaN NaN NaN 0.454108 0.483353 0.499402 -20 38898213 40076509 0 7 NaN NaN NaN 0.447008 0.483202 0.497320 -20 40179909 40626474 0 3 NaN NaN NaN 0.471387 0.487519 0.498714 -20 40714479 40743829 0 3 NaN NaN NaN 0.476941 0.494495 0.498685 -20 40981002 41076751 0 2 NaN NaN NaN 0.458540 0.487028 0.496517 -20 41962342 43944958 0 40 NaN NaN NaN 0.473302 0.491109 0.498286 -20 44144118 44638971 0 3 NaN NaN NaN 0.464721 0.487006 0.497128 -20 44639511 44645010 0 8 NaN NaN NaN 0.470040 0.488928 0.497723 -20 44650318 44650318 0 1 NaN NaN NaN 0.463754 0.489499 0.497115 -20 44806875 44806875 0 1 NaN NaN NaN 0.462006 0.486080 0.498316 -20 44983517 45092517 0 3 NaN NaN NaN 0.467053 0.491367 0.495998 -20 45092859 45092921 0 2 NaN NaN NaN 0.453263 0.479677 0.496586 -20 45093125 45629941 0 4 NaN NaN NaN 0.458446 0.485933 0.497562 -20 45789953 45789953 0 1 NaN NaN NaN 0.453517 0.487099 0.498494 -20 45797639 45797883 0 2 NaN NaN NaN 0.441544 0.487608 0.498836 -20 45797954 45808688 0 3 NaN NaN NaN 0.452646 0.486699 0.498181 -20 45809652 45816639 0 4 NaN NaN NaN 0.471200 0.492912 0.498757 -20 45816649 45891189 0 2 NaN NaN NaN 0.461405 0.488350 0.495849 -20 45923383 47253043 0 4 NaN NaN NaN 0.460551 0.489527 0.499063 -20 47256300 47258763 0 4 NaN NaN NaN 0.451655 0.481536 0.497646 -20 47261017 47361725 0 12 NaN NaN NaN 0.471686 0.488044 0.498559 -20 47569112 47615692 0 7 NaN NaN NaN 0.467308 0.487975 0.496869 -20 47621554 47713063 0 9 NaN NaN NaN 0.462921 0.487406 0.497686 -20 47739814 47850182 0 5 NaN NaN NaN 0.465915 0.486673 0.497344 -20 47852822 47859217 0 3 NaN NaN NaN 0.441528 0.485213 0.498505 -20 47865372 48131036 0 9 NaN NaN NaN 0.458035 0.488366 0.497891 -20 48257149 48259034 0 2 NaN NaN NaN 0.456168 0.482560 0.497847 -20 48300990 48300990 0 1 NaN NaN NaN 0.439052 0.487982 0.497607 -20 48301146 49191228 0 4 NaN NaN NaN 0.462891 0.486785 0.497767 -20 49195248 49195248 0 1 NaN NaN NaN 0.460212 0.486067 0.498486 -20 49196167 49236478 0 5 NaN NaN NaN 0.461609 0.488748 0.496163 -20 49237419 49575334 0 2 NaN NaN NaN 0.426356 0.479625 0.497564 -20 50287736 53691106 0 21 NaN NaN NaN 0.459925 0.487000 0.496720 -20 54935242 55108617 0 9 NaN NaN NaN 0.456686 0.486608 0.498358 -20 55111371 56886062 0 15 NaN NaN NaN 0.475776 0.493004 0.499227 -20 57009796 57024541 0 4 NaN NaN NaN 0.452654 0.482674 0.497665 -20 57024589 57266134 0 4 NaN NaN NaN 0.473275 0.488409 0.499132 -20 57266592 57470517 0 8 NaN NaN NaN 0.469937 0.489358 0.499090 -20 57478448 57569860 0 7 NaN NaN NaN 0.452146 0.488930 0.497382 -20 57570854 57572839 0 2 NaN NaN NaN 0.452491 0.483795 0.498573 -20 57599402 58571125 0 8 NaN NaN NaN 0.460808 0.480546 0.492648 -20 58581863 60582540 0 8 NaN NaN NaN 0.459929 0.487883 0.498276 -20 60712347 60740362 0 8 NaN NaN NaN 0.455112 0.484063 0.498388 -20 60740447 60886611 0 13 NaN NaN NaN 0.478498 0.492252 0.499334 -20 60897721 60992224 0 8 NaN NaN NaN 0.461806 0.488967 0.498954 -20 60992402 61039958 0 2 NaN NaN NaN 0.461005 0.488151 0.498545 -20 61041653 61273578 0 8 NaN NaN NaN 0.457569 0.482513 0.497947 -20 61289958 61441061 0 4 NaN NaN NaN 0.465706 0.485892 0.497771 -20 61444697 61444697 0 1 NaN NaN NaN 0.471853 0.492488 0.498701 -20 61444785 61453348 0 2 NaN NaN NaN 0.472790 0.490997 0.498827 -20 61453549 61834695 0 18 NaN NaN NaN 0.461142 0.494401 0.498638 -20 61869607 61869607 0 1 NaN NaN NaN 0.459515 0.483016 0.496899 -20 61870727 61873039 0 3 NaN NaN NaN 0.460018 0.487014 0.496166 -20 61875497 61881296 0 5 NaN NaN NaN 0.463407 0.489213 0.496283 -20 61987572 61987572 0 1 NaN NaN NaN 0.464694 0.490781 0.498078 -20 62191558 62193019 0 2 NaN NaN NaN 0.453222 0.486798 0.499500 -20 62193445 62229244 0 11 NaN NaN NaN 0.458416 0.489111 0.496635 -20 62245686 62303794 0 5 NaN NaN NaN 0.449289 0.484567 0.498853 -20 62305274 62698484 0 10 NaN NaN NaN 0.464029 0.491714 0.497155 -20 62701092 62737318 0 5 NaN NaN NaN 0.455620 0.489770 0.497906 -20 62836271 62836271 0 1 NaN NaN NaN 0.450621 0.481579 0.496660 -20 62836520 62854417 0 2 NaN NaN NaN 0.456501 0.488762 0.498790 -20 62868043 62871232 0 2 NaN NaN NaN 0.431664 0.490538 0.497807 +20 138125 138148 0 2 NaN NaN NaN 0.468342 0.487890 0.497042 +20 139409 139576 0 3 NaN NaN NaN 0.463572 0.488142 0.497364 +20 168466 259156 0 12 NaN NaN NaN 0.472111 0.483950 0.494138 +20 259818 259818 0 1 NaN NaN NaN 0.443801 0.488459 0.498354 +20 259969 278806 0 2 NaN NaN NaN 0.442325 0.470467 0.496762 +20 368905 377226 0 3 NaN NaN NaN 0.456473 0.482737 0.498447 +20 389456 402921 0 4 NaN NaN NaN 0.455100 0.486244 0.496886 +20 425606 744415 0 4 NaN NaN NaN 0.455163 0.483849 0.496749 +20 744570 744570 0 1 NaN NaN NaN 0.464890 0.486580 0.497012 +20 746098 1285933 0 5 NaN NaN NaN 0.441010 0.484706 0.498340 +20 1424303 1424303 0 1 NaN NaN NaN 0.449355 0.486702 0.497371 +20 1426393 1458504 0 3 NaN NaN NaN 0.447496 0.485389 0.497493 +20 1517979 1552430 0 8 NaN NaN NaN 0.456186 0.487521 0.498754 +20 1559330 1592312 0 6 NaN NaN NaN 0.422084 0.486254 0.496836 +20 1600524 1600524 0 1 NaN NaN NaN 0.474424 0.489624 0.498575 +20 1610790 1610894 0 3 NaN NaN NaN 0.433739 0.483982 0.495920 +20 1615883 1616892 0 2 NaN NaN NaN 0.457933 0.485226 0.498071 +20 1895889 1896060 0 3 NaN NaN NaN 0.454878 0.479672 0.496963 +20 2056358 2056358 0 1 NaN NaN NaN 0.462289 0.484747 0.497444 +20 2315929 2517377 0 3 NaN NaN NaN 0.460933 0.487107 0.499312 +20 2517432 2517825 0 2 NaN NaN NaN 0.453503 0.490313 0.498821 +20 2552805 2552805 0 1 NaN NaN NaN 0.466926 0.487974 0.497018 +20 2593006 2621998 0 9 NaN NaN NaN 0.445679 0.486923 0.498480 +20 2633380 2779257 0 3 NaN NaN NaN 0.425762 0.481909 0.496109 +20 2796471 2796471 0 1 NaN NaN NaN 0.443308 0.482128 0.498896 +20 2818801 2996589 0 5 NaN NaN NaN 0.458859 0.490855 0.498773 +20 3002889 3199446 0 4 NaN NaN NaN 0.460050 0.489440 0.497987 +20 3624830 3640823 0 2 NaN NaN NaN 0.462718 0.484409 0.497018 +20 3641881 3653149 0 5 NaN NaN NaN 0.461182 0.484415 0.498307 +20 3654433 3686436 0 12 NaN NaN NaN 0.472959 0.491259 0.498054 +20 3721456 3731622 0 2 NaN NaN NaN 0.441148 0.476612 0.496803 +20 3732633 3838441 0 2 NaN NaN NaN 0.436229 0.483034 0.497759 +20 3870124 4055656 0 2 NaN NaN NaN 0.454476 0.487759 0.497583 +20 4155948 4162411 0 2 NaN NaN NaN 0.442848 0.488813 0.498585 +20 4202802 4705756 0 4 NaN NaN NaN 0.447581 0.486501 0.498165 +20 4843609 4843609 0 1 NaN NaN NaN 0.430102 0.470866 0.496755 +20 4880308 5261206 0 4 NaN NaN NaN 0.448203 0.488387 0.498642 +20 5273253 5273382 0 3 NaN NaN NaN 0.472879 0.488492 0.498262 +20 5283256 5482307 0 8 NaN NaN NaN 0.454268 0.489470 0.498141 +20 5528518 6064839 0 8 NaN NaN NaN 0.459994 0.485212 0.497703 +20 6065731 6100230 0 5 NaN NaN NaN 0.459268 0.490527 0.498889 +20 6194421 6195664 0 2 NaN NaN NaN 0.466049 0.487531 0.499059 +20 7866261 7999537 0 4 NaN NaN NaN 0.441573 0.479925 0.494714 +20 8626903 8626903 0 1 NaN NaN NaN 0.463021 0.490744 0.499274 +20 8665751 8703145 0 4 NaN NaN NaN 0.453360 0.486540 0.498113 +20 8707900 8707927 0 2 NaN NaN NaN 0.417761 0.478538 0.495056 +20 8737734 8769423 0 4 NaN NaN NaN 0.459640 0.485114 0.497287 +20 8770318 8770932 0 3 NaN NaN NaN 0.437661 0.487690 0.496813 +20 8773096 8773096 0 1 NaN NaN NaN 0.463463 0.488458 0.497713 +20 8773155 9417870 0 2 NaN NaN NaN 0.445135 0.479905 0.498432 +20 9424810 9510263 0 3 NaN NaN NaN 0.440448 0.488554 0.496925 +20 10024951 10024951 0 1 NaN NaN NaN 0.457144 0.490013 0.498595 +20 10026357 10032413 0 4 NaN NaN NaN 0.441702 0.483175 0.498743 +20 10329888 10393145 0 3 NaN NaN NaN 0.468849 0.490361 0.498691 +20 10438780 10438780 0 1 NaN NaN NaN 0.466338 0.486088 0.497808 +20 10629129 10629525 0 2 NaN NaN NaN 0.459745 0.483764 0.497861 +20 13054633 13060331 0 2 NaN NaN NaN 0.458392 0.488360 0.499373 +20 13071871 13071871 0 1 NaN NaN NaN 0.453752 0.487850 0.496788 +20 13074243 13074243 0 1 NaN NaN NaN 0.456355 0.495221 0.499621 +20 13090745 13260252 0 2 NaN NaN NaN 0.455981 0.485482 0.497963 +20 13769127 13769127 0 1 NaN NaN NaN 0.466940 0.482900 0.497722 +20 13798676 13830137 0 3 NaN NaN NaN 0.464393 0.486108 0.499040 +20 13845726 13845726 0 1 NaN NaN NaN 0.449658 0.483338 0.497048 +20 14306896 14306896 0 1 NaN NaN NaN 0.433363 0.482537 0.497557 +20 14306953 15874325 0 2 NaN NaN NaN 0.441054 0.478186 0.497090 +20 15967327 15967327 0 1 NaN NaN NaN 0.453562 0.488381 0.497066 +20 16730479 16730522 0 2 NaN NaN NaN 0.449904 0.485520 0.498266 +20 17459905 17460005 0 3 NaN NaN NaN 0.455078 0.487954 0.498746 +20 17474690 17594729 0 6 NaN NaN NaN 0.418766 0.490401 0.499496 +20 17595329 17596731 0 3 NaN NaN NaN 0.454120 0.483274 0.496088 +20 17597531 17597531 0 1 NaN NaN NaN 0.469970 0.484995 0.497426 +20 17600357 17600357 0 1 NaN NaN NaN 0.458954 0.487090 0.497683 +20 17602028 17602028 0 1 NaN NaN NaN 0.448643 0.484626 0.498452 +20 17992979 18022171 0 3 NaN NaN NaN 0.475244 0.492738 0.499047 +20 18142924 18142924 0 1 NaN NaN NaN 0.458255 0.487492 0.497199 +20 18286888 18446024 0 6 NaN NaN NaN 0.461906 0.490104 0.497977 +20 18806046 19970705 0 7 NaN NaN NaN 0.434425 0.478511 0.493315 +20 20032998 20033367 0 5 NaN NaN NaN 0.453245 0.485423 0.498910 +20 20033380 20033380 0 1 NaN NaN NaN 0.466972 0.490658 0.499216 +20 20037222 21336825 0 17 NaN NaN NaN 0.307016 0.338686 0.382876 +20 21897170 22714612 0 4 NaN NaN NaN 0.443723 0.489060 0.498620 +20 23345844 23424613 0 5 NaN NaN NaN 0.467190 0.491598 0.499331 +20 23425812 23529388 0 3 NaN NaN NaN 0.447116 0.484396 0.497814 +20 23529418 23807028 0 9 NaN NaN NaN 0.456677 0.487306 0.498864 +20 23842032 23842032 0 1 NaN NaN NaN 0.453003 0.489769 0.498408 +20 23860178 24200652 0 2 NaN NaN NaN 0.472732 0.487674 0.498199 +20 24939590 24939590 0 1 NaN NaN NaN 0.440508 0.475145 0.496103 +20 24993414 25011423 0 3 NaN NaN NaN 0.456649 0.486873 0.497360 +20 25038484 25059442 0 2 NaN NaN NaN 0.443923 0.487719 0.498223 +20 25190598 25255338 0 3 NaN NaN NaN 0.430500 0.474540 0.493732 +20 25255415 25255415 0 1 NaN NaN NaN 0.455203 0.488358 0.499046 +20 25257260 25261784 0 6 NaN NaN NaN 0.418214 0.478859 0.498724 +20 25262769 25262789 0 2 NaN NaN NaN 0.456230 0.481003 0.493796 +20 25263756 25263756 0 1 NaN NaN NaN 0.451728 0.490955 0.499095 +20 25264664 25282944 0 12 NaN NaN NaN 0.450888 0.483014 0.495581 +20 25288505 25295787 0 2 NaN NaN NaN 0.423609 0.473979 0.499340 +20 25320228 25398876 0 3 NaN NaN NaN 0.455185 0.479698 0.496038 +20 25434351 25470056 0 8 NaN NaN NaN 0.443830 0.474657 0.498968 +20 25597236 25838130 0 7 NaN NaN NaN 0.320993 0.451164 0.497076 +20 25838802 25841650 0 4 NaN NaN NaN 0.445044 0.478319 0.497313 +20 25846283 25900162 0 3 NaN NaN NaN 0.405458 0.475299 0.492568 +20 25900379 25965961 0 2 NaN NaN NaN 0.454761 0.490041 0.497542 +20 29449417 29449417 0 1 NaN NaN NaN 0.464282 0.485538 0.498433 +20 29516670 29572218 0 6 NaN NaN NaN 0.462344 0.487263 0.498472 +20 29632564 29632564 0 1 NaN NaN NaN 0.438678 0.474107 0.496931 +20 29633929 29648701 0 3 NaN NaN NaN 0.458813 0.486786 0.498088 +20 29873577 30037783 0 3 NaN NaN NaN 0.443520 0.485422 0.497750 +20 30053255 31025231 0 4 NaN NaN NaN 0.469532 0.488358 0.498654 +20 31647126 31677476 0 8 NaN NaN NaN 0.425888 0.469007 0.497880 +20 31811551 32710710 0 12 NaN NaN NaN 0.267753 0.325643 0.407239 +20 32990050 33063830 0 5 NaN NaN NaN 0.393932 0.479076 0.494825 +20 33068563 33879478 0 3 NaN NaN NaN 0.438881 0.482201 0.498997 +20 34218673 34312713 0 8 NaN NaN NaN 0.447297 0.482432 0.496999 +20 34319765 34324484 0 4 NaN NaN NaN 0.444920 0.486840 0.498638 +20 34328848 34328848 0 1 NaN NaN NaN 0.439274 0.492929 0.499573 +20 34443173 34782171 0 11 NaN NaN NaN 0.436542 0.485719 0.498581 +20 35491033 35559352 0 2 NaN NaN NaN 0.458781 0.489129 0.499453 +20 35710453 35710453 0 1 NaN NaN NaN 0.438939 0.475029 0.494706 +20 35740794 35740794 0 1 NaN NaN NaN 0.455539 0.484290 0.498440 +20 35748894 35869619 0 15 NaN NaN NaN 0.335015 0.399473 0.492717 +20 36022539 36718059 0 5 NaN NaN NaN 0.451514 0.482586 0.497865 +20 36790166 36793529 0 3 NaN NaN NaN 0.470440 0.489372 0.497947 +20 36841756 36919758 0 4 NaN NaN NaN 0.435676 0.486417 0.498073 +20 36932551 36937246 0 4 NaN NaN NaN 0.447373 0.482710 0.497359 +20 36946848 36959353 0 3 NaN NaN NaN 0.438993 0.483681 0.497788 +20 36965617 36965617 0 1 NaN NaN NaN 0.445996 0.485278 0.498080 +20 36989269 37279458 0 11 NaN NaN NaN 0.432149 0.487760 0.497674 +20 37377139 37396262 0 5 NaN NaN NaN 0.459971 0.482634 0.494451 +20 38354742 38354742 0 1 NaN NaN NaN 0.452231 0.485309 0.499521 +20 38898213 40076509 0 7 NaN NaN NaN 0.465551 0.488282 0.498891 +20 40179909 40626474 0 3 NaN NaN NaN 0.458050 0.492419 0.499201 +20 40714479 40743829 0 3 NaN NaN NaN 0.469377 0.489110 0.498899 +20 40981002 41076751 0 2 NaN NaN NaN 0.454693 0.486138 0.496948 +20 41962342 43944958 0 40 NaN NaN NaN 0.466911 0.487626 0.496635 +20 44144118 44638971 0 3 NaN NaN NaN 0.433381 0.479449 0.497572 +20 44639511 44645010 0 8 NaN NaN NaN 0.447072 0.488137 0.499124 +20 44650318 44650318 0 1 NaN NaN NaN 0.451077 0.486002 0.498594 +20 44806875 44806875 0 1 NaN NaN NaN 0.466133 0.488571 0.497943 +20 44983517 45092517 0 3 NaN NaN NaN 0.470610 0.491576 0.498659 +20 45092859 45092921 0 2 NaN NaN NaN 0.443911 0.484865 0.496511 +20 45093125 45629941 0 4 NaN NaN NaN 0.462561 0.485247 0.499234 +20 45789953 45789953 0 1 NaN NaN NaN 0.437757 0.487383 0.499322 +20 45797639 45797883 0 2 NaN NaN NaN 0.452503 0.481186 0.497738 +20 45797954 45808688 0 3 NaN NaN NaN 0.461999 0.484172 0.497302 +20 45809652 45816639 0 4 NaN NaN NaN 0.458834 0.486745 0.498932 +20 45816649 45891189 0 2 NaN NaN NaN 0.467855 0.489181 0.498072 +20 45923383 47253043 0 4 NaN NaN NaN 0.467400 0.486274 0.498754 +20 47256300 47258763 0 4 NaN NaN NaN 0.459589 0.487584 0.498902 +20 47261017 47361725 0 12 NaN NaN NaN 0.472546 0.489079 0.497476 +20 47569112 47615692 0 7 NaN NaN NaN 0.458203 0.489884 0.498302 +20 47621554 47713063 0 9 NaN NaN NaN 0.464863 0.487168 0.498322 +20 47739814 47850182 0 5 NaN NaN NaN 0.465808 0.489847 0.499370 +20 47852822 47859217 0 3 NaN NaN NaN 0.462934 0.489518 0.498779 +20 47865372 48131036 0 9 NaN NaN NaN 0.478657 0.490781 0.497149 +20 48257149 48259034 0 2 NaN NaN NaN 0.478141 0.492674 0.499594 +20 48300990 48300990 0 1 NaN NaN NaN 0.458709 0.489191 0.497772 +20 48301146 49191228 0 4 NaN NaN NaN 0.456599 0.487527 0.498764 +20 49195248 49195248 0 1 NaN NaN NaN 0.475620 0.491907 0.499009 +20 49196167 49236478 0 5 NaN NaN NaN 0.467189 0.488092 0.497929 +20 49237419 49575334 0 2 NaN NaN NaN 0.453628 0.487345 0.497869 +20 50287736 53691106 0 21 NaN NaN NaN 0.476587 0.493193 0.498821 +20 54935242 55108617 0 9 NaN NaN NaN 0.469070 0.481343 0.493208 +20 55111371 56886062 0 15 NaN NaN NaN 0.460013 0.481739 0.497648 +20 57009796 57024541 0 4 NaN NaN NaN 0.458242 0.483960 0.496285 +20 57024589 57266134 0 4 NaN NaN NaN 0.462099 0.486725 0.497783 +20 57266592 57470517 0 8 NaN NaN NaN 0.464631 0.482526 0.498516 +20 57478448 57569860 0 7 NaN NaN NaN 0.446729 0.477139 0.497462 +20 57570854 57572839 0 2 NaN NaN NaN 0.450692 0.486969 0.495919 +20 57599402 58571125 0 8 NaN NaN NaN 0.460926 0.484030 0.496289 +20 58581863 60582540 0 8 NaN NaN NaN 0.468861 0.493812 0.499244 +20 60712347 60740362 0 8 NaN NaN NaN 0.453828 0.484013 0.497038 +20 60740447 60886611 0 13 NaN NaN NaN 0.437957 0.489863 0.498275 +20 60897721 60992224 0 8 NaN NaN NaN 0.450777 0.481333 0.497468 +20 60992402 61039958 0 2 NaN NaN NaN 0.457454 0.480633 0.493837 +20 61041653 61273578 0 8 NaN NaN NaN 0.464628 0.482834 0.494479 +20 61289958 61441061 0 4 NaN NaN NaN 0.462993 0.485697 0.493498 +20 61444697 61444697 0 1 NaN NaN NaN 0.463046 0.491487 0.497298 +20 61444785 61453348 0 2 NaN NaN NaN 0.468776 0.489151 0.498133 +20 61453549 61834695 0 18 NaN NaN NaN 0.459954 0.486469 0.498365 +20 61869607 61869607 0 1 NaN NaN NaN 0.450519 0.487232 0.498693 +20 61870727 61873039 0 3 NaN NaN NaN 0.456340 0.490987 0.498384 +20 61875497 61881296 0 5 NaN NaN NaN 0.440393 0.491248 0.498015 +20 61987572 61987572 0 1 NaN NaN NaN 0.462888 0.488293 0.498256 +20 62191558 62193019 0 2 NaN NaN NaN 0.462006 0.492112 0.498613 +20 62193445 62229244 0 11 NaN NaN NaN 0.459319 0.479103 0.494250 +20 62245686 62303794 0 5 NaN NaN NaN 0.458014 0.486443 0.498345 +20 62305274 62698484 0 10 NaN NaN NaN 0.460717 0.487484 0.498717 +20 62701092 62737318 0 5 NaN NaN NaN 0.458713 0.486144 0.498121 +20 62836271 62836271 0 1 NaN NaN NaN 0.466369 0.485312 0.496825 +20 62836520 62854417 0 2 NaN NaN NaN 0.452358 0.492000 0.499273 +20 62868043 62871232 0 2 NaN NaN NaN 0.465692 0.489907 0.499055 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.af.param index ebe0465040e..d544966d3a0 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.116663 1.123408 1.127238 1.130430 1.140573 1.156446 1.161426 1.170822 1.176871 -BIAS_VARIANCE 0.470922 0.474828 0.481765 0.486072 0.492303 0.493527 0.495814 0.497711 0.498807 -OUTLIER_PROBABILITY 0.014787 0.020051 0.024841 0.028065 0.029756 0.035209 0.036907 0.040733 0.046803 +MEAN_BIAS 1.114452 1.117621 1.129473 1.134714 1.140738 1.149446 1.152084 1.158532 1.179227 +BIAS_VARIANCE 0.459764 0.470122 0.476033 0.481435 0.487104 0.493330 0.495130 0.496575 0.498652 +OUTLIER_PROBABILITY 0.019421 0.025365 0.028088 0.033099 0.036928 0.042074 0.044188 0.046482 0.051940 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.seg index 6d3c1d452e0..99872e8d6b2 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-ac-tumor-1.modelBegin.seg @@ -2,291 +2,291 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 138125 138148 0 2 NaN NaN NaN 0.460434 0.490184 0.499296 -20 139409 139576 0 3 NaN NaN NaN 0.453976 0.486981 0.498205 -20 168466 259156 0 13 NaN NaN NaN 0.454587 0.492084 0.499293 -20 259818 259818 0 1 NaN NaN NaN 0.447380 0.482895 0.498186 -20 259969 278806 0 2 NaN NaN NaN 0.448854 0.483264 0.495394 -20 316911 316911 0 1 NaN NaN NaN 0.472993 0.494986 0.498601 -20 355319 360306 0 4 NaN NaN NaN 0.463678 0.486573 0.497766 -20 368905 377226 0 3 NaN NaN NaN 0.447725 0.479829 0.497487 -20 389456 402921 0 4 NaN NaN NaN 0.457089 0.485645 0.497324 -20 425606 425606 0 1 NaN NaN NaN 0.448019 0.482467 0.498973 -20 428767 744415 0 8 NaN NaN NaN 0.465704 0.488948 0.497850 -20 744570 744570 0 1 NaN NaN NaN 0.462078 0.487091 0.498351 -20 746098 1285933 0 6 NaN NaN NaN 0.464773 0.485290 0.496726 -20 1417397 1417397 0 1 NaN NaN NaN 0.451706 0.484873 0.498250 -20 1424303 1424303 0 1 NaN NaN NaN 0.460276 0.489536 0.499400 -20 1426393 1458504 0 3 NaN NaN NaN 0.467522 0.485276 0.498588 -20 1510769 1510769 0 1 NaN NaN NaN 0.448234 0.477227 0.494773 -20 1517979 1538249 0 4 NaN NaN NaN 0.444083 0.473807 0.496519 -20 1540032 1540032 0 1 NaN NaN NaN 0.469498 0.488371 0.499077 -20 1546911 1552430 0 3 NaN NaN NaN 0.465833 0.482744 0.495503 -20 1592265 1592284 0 2 NaN NaN NaN 0.388623 0.471636 0.498685 -20 1600524 1610894 0 4 NaN NaN NaN 0.470144 0.488336 0.497910 -20 1615883 1880912 0 6 NaN NaN NaN 0.455607 0.486071 0.497994 -20 1895630 1895658 0 2 NaN NaN NaN 0.463521 0.485156 0.497243 -20 1895889 1896244 0 2 NaN NaN NaN 0.430605 0.483477 0.497440 -20 2036954 2139080 0 4 NaN NaN NaN 0.459054 0.491162 0.498942 -20 2315929 2357863 0 3 NaN NaN NaN 0.445993 0.480480 0.497003 -20 2482325 2517825 0 3 NaN NaN NaN 0.458293 0.486506 0.497311 -20 2542747 2552805 0 2 NaN NaN NaN 0.454241 0.483899 0.498694 -20 2593006 2621998 0 10 NaN NaN NaN 0.449364 0.482314 0.495168 -20 2624956 2655019 0 3 NaN NaN NaN 0.450557 0.489741 0.499140 -20 2777828 2779257 0 2 NaN NaN NaN 0.459450 0.487771 0.498640 -20 2796471 2818801 0 2 NaN NaN NaN 0.468498 0.483997 0.497081 -20 2945759 3005413 0 7 NaN NaN NaN 0.463499 0.487026 0.498142 -20 3007228 3007492 0 2 NaN NaN NaN 0.387339 0.477685 0.498292 -20 3013228 3054033 0 2 NaN NaN NaN 0.453197 0.482918 0.497871 -20 3147024 3624830 0 5 NaN NaN NaN 0.445961 0.486933 0.497118 -20 3640823 3640823 0 1 NaN NaN NaN 0.462666 0.490137 0.499568 -20 3641881 3675333 0 11 NaN NaN NaN 0.447027 0.488941 0.498221 -20 3675498 3686436 0 8 NaN NaN NaN 0.451301 0.481394 0.493853 -20 3701867 3732633 0 4 NaN NaN NaN 0.436802 0.478649 0.499094 -20 3838441 3838441 0 1 NaN NaN NaN 0.439626 0.482882 0.498844 -20 3858985 4055656 0 3 NaN NaN NaN 0.452064 0.483880 0.495925 -20 4138585 4162411 0 4 NaN NaN NaN 0.426056 0.478765 0.497846 -20 4167234 4843609 0 9 NaN NaN NaN 0.464091 0.488069 0.498543 -20 4880308 5035125 0 2 NaN NaN NaN 0.464237 0.487172 0.498629 -20 5063643 5063643 0 1 NaN NaN NaN 0.446118 0.483328 0.499048 -20 5068730 5068730 0 1 NaN NaN NaN 0.454063 0.479350 0.498764 -20 5159344 5482307 0 16 NaN NaN NaN 0.447803 0.478233 0.498210 -20 5528518 5634575 0 5 NaN NaN NaN 0.445101 0.483955 0.496934 -20 5640886 5738376 0 4 NaN NaN NaN 0.457593 0.487804 0.498419 -20 5903517 6065731 0 6 NaN NaN NaN 0.456486 0.479566 0.497433 -20 6090623 6100391 0 6 NaN NaN NaN 0.464884 0.488306 0.498172 -20 6194421 6195664 0 2 NaN NaN NaN 0.466463 0.489674 0.499360 -20 6302114 6798939 0 3 NaN NaN NaN 0.474227 0.491760 0.498414 -20 7866261 8581713 0 5 NaN NaN NaN 0.452260 0.482317 0.496949 -20 8625108 8625108 0 1 NaN NaN NaN 0.437420 0.481791 0.497503 -20 8625250 8639443 0 4 NaN NaN NaN 0.455576 0.485347 0.494478 -20 8665751 8703145 0 5 NaN NaN NaN 0.452752 0.474301 0.495632 -20 8707900 8707927 0 2 NaN NaN NaN 0.458551 0.490155 0.498624 -20 8708166 8708166 0 1 NaN NaN NaN 0.474001 0.490070 0.498034 -20 8737734 8737734 0 1 NaN NaN NaN 0.450880 0.478930 0.496333 -20 8741188 8741188 0 1 NaN NaN NaN 0.444763 0.482739 0.497864 -20 8742326 8742326 0 1 NaN NaN NaN 0.455033 0.489396 0.498763 -20 8755243 8770932 0 4 NaN NaN NaN 0.443649 0.482461 0.497819 -20 8773096 8773155 0 2 NaN NaN NaN 0.464203 0.492723 0.498360 -20 9108585 9376019 0 4 NaN NaN NaN 0.431972 0.484491 0.497038 -20 9417870 9510263 0 4 NaN NaN NaN 0.457622 0.480088 0.497002 -20 9624587 10004147 0 3 NaN NaN NaN 0.444964 0.477956 0.498422 -20 10012714 10012751 0 2 NaN NaN NaN 0.446668 0.483037 0.498349 -20 10024951 10024951 0 1 NaN NaN NaN 0.449815 0.484226 0.496840 -20 10026357 10032413 0 4 NaN NaN NaN 0.445564 0.482176 0.497082 -20 10329888 10393145 0 4 NaN NaN NaN 0.453621 0.482595 0.495123 -20 10426975 10439002 0 3 NaN NaN NaN 0.466376 0.492280 0.498704 -20 10629129 10629525 0 2 NaN NaN NaN 0.452277 0.482736 0.497512 -20 11224228 12113410 0 5 NaN NaN NaN 0.474877 0.493979 0.498719 -20 13054307 13060331 0 5 NaN NaN NaN 0.447051 0.490676 0.498846 -20 13071871 13074243 0 3 NaN NaN NaN 0.458712 0.488512 0.498533 -20 13090745 13227837 0 3 NaN NaN NaN 0.461960 0.485010 0.497171 -20 13239860 13260252 0 2 NaN NaN NaN 0.470416 0.491244 0.497974 -20 13709407 13709407 0 1 NaN NaN NaN 0.467603 0.487859 0.496119 -20 13769127 13769127 0 1 NaN NaN NaN 0.443801 0.482756 0.499202 -20 13798676 13830137 0 4 NaN NaN NaN 0.430177 0.482163 0.497342 -20 13845726 13845726 0 1 NaN NaN NaN 0.457690 0.486277 0.498221 -20 13872093 13885105 0 2 NaN NaN NaN 0.446412 0.480469 0.498772 -20 13921411 13992299 0 2 NaN NaN NaN 0.463438 0.486779 0.498300 -20 14273462 14273462 0 1 NaN NaN NaN 0.453439 0.486598 0.498438 -20 14306896 14306896 0 1 NaN NaN NaN 0.445844 0.489930 0.499003 -20 14306953 14306953 0 1 NaN NaN NaN 0.428035 0.480821 0.498546 -20 14319063 14319063 0 1 NaN NaN NaN 0.458149 0.485913 0.497507 -20 14910634 14910665 0 2 NaN NaN NaN 0.462191 0.486162 0.498319 -20 15131723 15411848 0 2 NaN NaN NaN 0.466228 0.491627 0.498656 -20 15874325 15967327 0 2 NaN NaN NaN 0.414514 0.483757 0.498364 -20 16729262 16730522 0 3 NaN NaN NaN 0.457663 0.488414 0.498545 -20 17028059 17460132 0 5 NaN NaN NaN 0.448718 0.490855 0.497000 -20 17474690 17594729 0 9 NaN NaN NaN 0.461752 0.492474 0.499182 -20 17595329 17595329 0 1 NaN NaN NaN 0.461384 0.490787 0.499284 -20 17596155 17596155 0 1 NaN NaN NaN 0.442160 0.473962 0.496629 -20 17596731 17597331 0 2 NaN NaN NaN 0.448900 0.479448 0.496122 -20 17597531 17597531 0 1 NaN NaN NaN 0.467745 0.489836 0.499099 -20 17600357 17990713 0 2 NaN NaN NaN 0.468554 0.490784 0.499002 -20 17992979 18022171 0 5 NaN NaN NaN 0.447403 0.482054 0.492927 -20 18142924 18175556 0 3 NaN NaN NaN 0.463277 0.480896 0.496716 -20 18192433 18241880 0 2 NaN NaN NaN 0.471613 0.485885 0.498777 -20 18286888 18286888 0 1 NaN NaN NaN 0.473563 0.490120 0.498881 -20 18287104 18327570 0 3 NaN NaN NaN 0.461803 0.483616 0.496188 -20 18429497 18429509 0 2 NaN NaN NaN 0.471049 0.490184 0.497396 -20 18432690 18446024 0 4 NaN NaN NaN 0.469614 0.488824 0.499135 -20 18806046 18806046 0 1 NaN NaN NaN 0.446312 0.488777 0.498021 -20 18810705 19261623 0 2 NaN NaN NaN 0.429752 0.469653 0.493572 -20 19345285 19345285 0 1 NaN NaN NaN 0.445614 0.487575 0.499035 -20 19560664 19914520 0 4 NaN NaN NaN 0.470360 0.485394 0.498109 -20 19941538 19951660 0 3 NaN NaN NaN 0.458458 0.484192 0.496369 -20 19970705 19970705 0 1 NaN NaN NaN 0.444941 0.488480 0.498224 -20 19987674 19987674 0 1 NaN NaN NaN 0.473440 0.491694 0.499193 -20 20007325 20033137 0 3 NaN NaN NaN 0.458911 0.490568 0.497655 -20 20033242 20033423 0 5 NaN NaN NaN 0.442468 0.485616 0.497530 -20 20037222 20152462 0 8 NaN NaN NaN 0.383598 0.461904 0.491987 -20 20168497 20265171 0 4 NaN NaN NaN 0.428327 0.479169 0.495846 -20 20269631 21147009 0 9 NaN NaN NaN 0.388698 0.485046 0.499103 -20 21147407 21868713 0 6 NaN NaN NaN 0.457290 0.484072 0.498454 -20 21897170 22714612 0 6 NaN NaN NaN 0.428639 0.473095 0.496358 -20 23345844 23425812 0 8 NaN NaN NaN 0.440309 0.479568 0.495233 -20 23426972 23426972 0 1 NaN NaN NaN 0.467893 0.492212 0.498504 -20 23528536 23529388 0 2 NaN NaN NaN 0.453514 0.485877 0.499502 -20 23529418 23731560 0 10 NaN NaN NaN 0.449138 0.480797 0.493702 -20 23756529 23756529 0 1 NaN NaN NaN 0.440413 0.482807 0.495772 -20 23756613 23756613 0 1 NaN NaN NaN 0.459569 0.482890 0.497768 -20 23761395 23761395 0 1 NaN NaN NaN 0.452716 0.480842 0.498523 -20 23805832 23807028 0 2 NaN NaN NaN 0.456561 0.482990 0.499324 -20 23842032 23842078 0 2 NaN NaN NaN 0.424279 0.478273 0.498161 -20 23860178 24200699 0 4 NaN NaN NaN 0.464521 0.484810 0.498636 -20 24201344 24201393 0 2 NaN NaN NaN 0.454831 0.487916 0.498275 -20 24790712 24790712 0 1 NaN NaN NaN 0.437908 0.492416 0.499044 -20 24911562 24938195 0 3 NaN NaN NaN 0.436223 0.485302 0.497863 -20 24939590 24959386 0 2 NaN NaN NaN 0.439154 0.482131 0.497391 -20 24993414 25011423 0 4 NaN NaN NaN 0.452759 0.485907 0.499301 -20 25038484 25059442 0 2 NaN NaN NaN 0.421380 0.473399 0.497600 -20 25190598 25196520 0 2 NaN NaN NaN 0.464501 0.491177 0.498881 -20 25252161 25255338 0 2 NaN NaN NaN 0.470785 0.489356 0.497686 -20 25257260 25261784 0 6 NaN NaN NaN 0.389955 0.476901 0.496871 -20 25262769 25262789 0 2 NaN NaN NaN 0.467130 0.492101 0.498184 -20 25263756 25263756 0 1 NaN NaN NaN 0.458307 0.479487 0.498208 -20 25264664 25282944 0 13 NaN NaN NaN 0.458384 0.489131 0.498005 -20 25286059 25286059 0 1 NaN NaN NaN 0.464842 0.487563 0.498688 -20 25288505 25324410 0 5 NaN NaN NaN 0.441620 0.479227 0.497516 -20 25336445 25398876 0 5 NaN NaN NaN 0.447225 0.484852 0.498139 -20 25424713 25424713 0 1 NaN NaN NaN 0.464878 0.489213 0.497500 -20 25434351 25470056 0 11 NaN NaN NaN 0.465879 0.485623 0.498066 -20 25597236 25604655 0 2 NaN NaN NaN 0.446418 0.487250 0.497854 -20 25622858 25622858 0 1 NaN NaN NaN 0.468142 0.488721 0.497516 -20 25629114 25666807 0 3 NaN NaN NaN 0.407661 0.480397 0.493583 -20 25699941 25700293 0 4 NaN NaN NaN 0.452132 0.486489 0.499276 -20 25754173 25755672 0 2 NaN NaN NaN 0.421888 0.477235 0.497405 -20 25756059 25837915 0 2 NaN NaN NaN 0.477208 0.490059 0.499041 -20 25838130 25838130 0 1 NaN NaN NaN 0.450676 0.481665 0.496069 -20 25838802 25841650 0 4 NaN NaN NaN 0.467296 0.486735 0.497338 -20 25846283 25900162 0 3 NaN NaN NaN 0.400701 0.474501 0.495136 -20 25900379 26134237 0 4 NaN NaN NaN 0.459843 0.489669 0.496762 -20 26138206 29449417 0 2 NaN NaN NaN 0.460606 0.489562 0.499293 -20 29449678 29449678 0 1 NaN NaN NaN 0.461306 0.490108 0.497953 -20 29516670 29516670 0 1 NaN NaN NaN 0.445434 0.482388 0.497332 -20 29517417 29520510 0 3 NaN NaN NaN 0.443656 0.479848 0.497554 -20 29521061 29632564 0 4 NaN NaN NaN 0.460992 0.484146 0.496888 -20 29633929 29648701 0 3 NaN NaN NaN 0.466731 0.487119 0.498520 -20 29847211 29847211 0 1 NaN NaN NaN 0.452252 0.488039 0.498887 -20 29847618 29872796 0 2 NaN NaN NaN 0.468938 0.491683 0.499366 -20 29873577 29873577 0 1 NaN NaN NaN 0.455265 0.485851 0.497294 -20 29899208 29899208 0 1 NaN NaN NaN 0.450682 0.484555 0.496711 -20 29977156 29977156 0 1 NaN NaN NaN 0.458957 0.488063 0.498671 -20 29986332 30035869 0 2 NaN NaN NaN 0.453485 0.485547 0.498590 -20 30037783 30037783 0 1 NaN NaN NaN 0.475835 0.490036 0.498666 -20 30053255 31025163 0 2 NaN NaN NaN 0.437103 0.483602 0.495639 -20 31647126 31676804 0 8 NaN NaN NaN 0.428218 0.481079 0.497932 -20 31811551 31826027 0 4 NaN NaN NaN 0.438438 0.480786 0.496517 -20 31828265 31897554 0 2 NaN NaN NaN 0.454624 0.487380 0.498324 -20 31956468 32289763 0 2 NaN NaN NaN 0.424312 0.485560 0.498265 -20 32325329 32330930 0 2 NaN NaN NaN 0.454202 0.484338 0.498448 -20 32340077 32710710 0 8 NaN NaN NaN 0.362933 0.444359 0.490223 -20 32935192 33006597 0 6 NaN NaN NaN 0.452374 0.485703 0.498309 -20 33030405 33031276 0 2 NaN NaN NaN 0.463400 0.488831 0.498944 -20 33037336 33150503 0 7 NaN NaN NaN 0.380579 0.476931 0.496612 -20 33178782 33279604 0 5 NaN NaN NaN 0.465602 0.484205 0.497259 -20 33283649 33879478 0 2 NaN NaN NaN 0.461913 0.489222 0.498212 -20 33882720 33882791 0 2 NaN NaN NaN 0.456287 0.487289 0.497666 -20 34218673 34243017 0 4 NaN NaN NaN 0.451490 0.481328 0.496312 -20 34269577 34269577 0 1 NaN NaN NaN 0.463039 0.488272 0.499196 -20 34271574 34271574 0 1 NaN NaN NaN 0.452613 0.488914 0.496909 -20 34289005 34289005 0 1 NaN NaN NaN 0.452237 0.491220 0.499022 -20 34304783 34312834 0 6 NaN NaN NaN 0.377342 0.481372 0.495939 -20 34314114 34314114 0 1 NaN NaN NaN 0.467645 0.492923 0.499112 -20 34314140 34324484 0 9 NaN NaN NaN 0.451978 0.485820 0.497268 -20 34324648 34335861 0 3 NaN NaN NaN 0.473362 0.488136 0.497394 -20 34339854 34431377 0 4 NaN NaN NaN 0.448856 0.482765 0.497493 -20 34443173 34446395 0 2 NaN NaN NaN 0.448091 0.482762 0.496340 -20 34457513 34457513 0 1 NaN NaN NaN 0.462159 0.488392 0.497900 -20 34492974 34492974 0 1 NaN NaN NaN 0.455535 0.490870 0.498482 -20 34499996 34505054 0 3 NaN NaN NaN 0.446249 0.479420 0.498256 -20 34525807 34525807 0 1 NaN NaN NaN 0.442364 0.481195 0.498689 -20 34535373 34581979 0 5 NaN NaN NaN 0.456539 0.486439 0.497588 -20 34589995 34766745 0 8 NaN NaN NaN 0.437184 0.489427 0.498905 -20 34775551 34782171 0 2 NaN NaN NaN 0.469808 0.489869 0.499042 -20 34974252 34974252 0 1 NaN NaN NaN 0.445748 0.481609 0.492556 -20 35068018 35740794 0 10 NaN NaN NaN 0.464681 0.487597 0.498203 -20 35748894 35869619 0 21 NaN NaN NaN 0.369695 0.423835 0.479538 -20 36022539 36288284 0 3 NaN NaN NaN 0.434927 0.487231 0.497979 -20 36337303 36607077 0 3 NaN NaN NaN 0.449672 0.483354 0.496946 -20 36615416 36793501 0 8 NaN NaN NaN 0.432721 0.482939 0.499334 -20 36793529 36793529 0 1 NaN NaN NaN 0.440256 0.484254 0.497543 -20 36841756 36919758 0 4 NaN NaN NaN 0.469843 0.489908 0.498566 -20 36932551 36944379 0 5 NaN NaN NaN 0.462033 0.486311 0.498534 -20 36946848 36953097 0 3 NaN NaN NaN 0.450135 0.483083 0.498330 -20 36958262 36958262 0 1 NaN NaN NaN 0.453375 0.484553 0.498961 -20 36959318 36965617 0 4 NaN NaN NaN 0.413945 0.472093 0.497277 -20 36989269 37291486 0 19 NaN NaN NaN 0.411379 0.473824 0.492787 -20 37366218 37396262 0 9 NaN NaN NaN 0.456673 0.491919 0.499590 -20 37404951 38354742 0 4 NaN NaN NaN 0.440430 0.472428 0.497850 -20 38483658 39501689 0 3 NaN NaN NaN 0.452357 0.482185 0.494986 -20 39501744 40126679 0 12 NaN NaN NaN 0.446647 0.487710 0.498695 -20 40179909 40179920 0 2 NaN NaN NaN 0.465611 0.487282 0.497982 -20 40234917 43803708 0 48 NaN NaN NaN 0.456142 0.488258 0.498201 -20 43803725 43881630 0 10 NaN NaN NaN 0.464148 0.486133 0.499149 -20 43920730 44645010 0 19 NaN NaN NaN 0.463745 0.481262 0.493393 -20 44650318 44650318 0 1 NaN NaN NaN 0.442719 0.473708 0.497030 -20 44806875 44806875 0 1 NaN NaN NaN 0.454028 0.489757 0.497468 -20 44812893 44983517 0 2 NaN NaN NaN 0.420470 0.487612 0.498797 -20 44987318 45023247 0 2 NaN NaN NaN 0.452640 0.479764 0.498640 -20 45092517 45092921 0 3 NaN NaN NaN 0.448411 0.491257 0.499235 -20 45093125 45789953 0 5 NaN NaN NaN 0.462363 0.491570 0.498117 -20 45797639 45816649 0 12 NaN NaN NaN 0.464985 0.487772 0.497823 -20 45891189 45891189 0 1 NaN NaN NaN 0.456895 0.486319 0.498029 -20 45923383 47253043 0 12 NaN NaN NaN 0.437330 0.486640 0.498939 -20 47256300 47258763 0 4 NaN NaN NaN 0.448233 0.480363 0.496259 -20 47261017 47361725 0 14 NaN NaN NaN 0.457149 0.488718 0.497551 -20 47569112 47589122 0 6 NaN NaN NaN 0.464327 0.487752 0.499047 -20 47591082 47639464 0 12 NaN NaN NaN 0.467733 0.486825 0.498215 -20 47648353 47850182 0 12 NaN NaN NaN 0.452828 0.483399 0.498619 -20 47852822 47859217 0 2 NaN NaN NaN 0.462212 0.492586 0.498053 -20 47865372 48129706 0 10 NaN NaN NaN 0.465947 0.490095 0.498235 -20 48129987 48129987 0 1 NaN NaN NaN 0.460453 0.490726 0.499314 -20 48130628 48259034 0 5 NaN NaN NaN 0.459919 0.490614 0.498955 -20 48300990 48300990 0 1 NaN NaN NaN 0.452984 0.484971 0.497330 -20 48301146 48701527 0 4 NaN NaN NaN 0.474371 0.488398 0.497599 -20 48720687 49225953 0 9 NaN NaN NaN 0.457860 0.482330 0.497673 -20 49227294 49575334 0 5 NaN NaN NaN 0.475173 0.491330 0.499207 -20 50078910 54464410 0 39 NaN NaN NaN 0.469053 0.488314 0.498636 -20 54935242 54941140 0 5 NaN NaN NaN 0.456144 0.484160 0.498089 -20 54945783 55803149 0 13 NaN NaN NaN 0.462125 0.488177 0.497216 -20 56064267 56064267 0 1 NaN NaN NaN 0.444666 0.482527 0.497378 -20 56071296 56136536 0 4 NaN NaN NaN 0.465843 0.488155 0.497390 -20 56137184 57024589 0 17 NaN NaN NaN 0.459149 0.484309 0.496623 -20 57045667 57045765 0 2 NaN NaN NaN 0.443906 0.479921 0.497793 -20 57266134 57470517 0 9 NaN NaN NaN 0.472568 0.492878 0.498200 -20 57478448 57569860 0 7 NaN NaN NaN 0.454338 0.485450 0.498503 -20 57570854 57768399 0 7 NaN NaN NaN 0.468466 0.488630 0.499160 -20 57768743 58578068 0 8 NaN NaN NaN 0.479529 0.492119 0.498696 -20 58581863 60582540 0 10 NaN NaN NaN 0.466288 0.489301 0.499123 -20 60584328 60584328 0 1 NaN NaN NaN 0.464335 0.489799 0.496885 -20 60712284 60712284 0 1 NaN NaN NaN 0.442181 0.485124 0.498852 -20 60712347 60735098 0 9 NaN NaN NaN 0.478940 0.492581 0.499016 -20 60739079 60739079 0 1 NaN NaN NaN 0.455358 0.485029 0.497990 -20 60740362 60740362 0 1 NaN NaN NaN 0.457997 0.487558 0.498100 -20 60740447 60886611 0 16 NaN NaN NaN 0.464101 0.484383 0.497441 -20 60897721 60992224 0 10 NaN NaN NaN 0.460464 0.485621 0.498462 -20 60992402 61039958 0 2 NaN NaN NaN 0.443693 0.484444 0.495282 -20 61040125 61040125 0 1 NaN NaN NaN 0.459168 0.483449 0.497955 -20 61040313 61040313 0 1 NaN NaN NaN 0.472881 0.491679 0.498592 -20 61041653 61150928 0 3 NaN NaN NaN 0.459862 0.490558 0.498679 -20 61150959 61162037 0 2 NaN NaN NaN 0.461984 0.490706 0.497922 -20 61162100 61162100 0 1 NaN NaN NaN 0.462580 0.489902 0.499510 -20 61167883 61443547 0 8 NaN NaN NaN 0.466374 0.489014 0.498194 -20 61444697 61444697 0 1 NaN NaN NaN 0.470155 0.485852 0.498770 -20 61444785 61453348 0 2 NaN NaN NaN 0.465422 0.491863 0.499370 -20 61453549 61527563 0 14 NaN NaN NaN 0.470363 0.489367 0.497731 -20 61528074 61528074 0 1 NaN NaN NaN 0.425956 0.488365 0.497173 -20 61528271 61528306 0 2 NaN NaN NaN 0.446290 0.481513 0.498134 -20 61541028 61542001 0 2 NaN NaN NaN 0.431168 0.478006 0.489505 -20 61588159 61834695 0 4 NaN NaN NaN 0.454649 0.486121 0.497582 -20 61869607 61869607 0 1 NaN NaN NaN 0.457406 0.480959 0.498766 -20 61870727 61875909 0 5 NaN NaN NaN 0.468459 0.487113 0.496821 -20 61879009 61879009 0 1 NaN NaN NaN 0.461557 0.484165 0.495584 -20 61880274 62234240 0 21 NaN NaN NaN 0.468643 0.490869 0.498391 -20 62245686 62305274 0 5 NaN NaN NaN 0.443920 0.476067 0.497015 -20 62324289 62698484 0 10 NaN NaN NaN 0.455244 0.484321 0.498762 -20 62701092 62720193 0 5 NaN NaN NaN 0.444600 0.487363 0.498842 -20 62729431 62836271 0 3 NaN NaN NaN 0.414653 0.475402 0.495953 -20 62836520 62854417 0 2 NaN NaN NaN 0.457524 0.488430 0.498349 -20 62868043 62904542 0 3 NaN NaN NaN 0.416166 0.476612 0.495896 +20 138125 138148 0 2 NaN NaN NaN 0.461495 0.486586 0.495971 +20 139409 139576 0 3 NaN NaN NaN 0.457106 0.490447 0.497756 +20 168466 259156 0 13 NaN NaN NaN 0.438194 0.487797 0.497137 +20 259818 259818 0 1 NaN NaN NaN 0.463151 0.485806 0.496516 +20 259969 278806 0 2 NaN NaN NaN 0.467323 0.486237 0.498999 +20 316911 316911 0 1 NaN NaN NaN 0.444589 0.487032 0.497350 +20 355319 360306 0 4 NaN NaN NaN 0.459787 0.488222 0.498614 +20 368905 377226 0 3 NaN NaN NaN 0.448203 0.484784 0.498867 +20 389456 402921 0 4 NaN NaN NaN 0.427039 0.472039 0.497827 +20 425606 425606 0 1 NaN NaN NaN 0.462482 0.487882 0.499682 +20 428767 744415 0 8 NaN NaN NaN 0.458817 0.485392 0.498526 +20 744570 744570 0 1 NaN NaN NaN 0.453362 0.491202 0.498361 +20 746098 1285933 0 6 NaN NaN NaN 0.443552 0.479144 0.497847 +20 1417397 1417397 0 1 NaN NaN NaN 0.465216 0.492858 0.497158 +20 1424303 1424303 0 1 NaN NaN NaN 0.451516 0.489583 0.498006 +20 1426393 1458504 0 3 NaN NaN NaN 0.444724 0.490110 0.498439 +20 1510769 1510769 0 1 NaN NaN NaN 0.448679 0.480813 0.497390 +20 1517979 1538249 0 4 NaN NaN NaN 0.441654 0.487064 0.494957 +20 1540032 1540032 0 1 NaN NaN NaN 0.466514 0.489499 0.499436 +20 1546911 1552430 0 3 NaN NaN NaN 0.472781 0.490907 0.499012 +20 1592265 1592284 0 2 NaN NaN NaN 0.411058 0.484047 0.497601 +20 1600524 1610894 0 4 NaN NaN NaN 0.440072 0.475314 0.497061 +20 1615883 1880912 0 6 NaN NaN NaN 0.458562 0.485821 0.498416 +20 1895630 1895658 0 2 NaN NaN NaN 0.465785 0.490763 0.497241 +20 1895889 1896244 0 2 NaN NaN NaN 0.458394 0.490895 0.497191 +20 2036954 2139080 0 4 NaN NaN NaN 0.471073 0.491601 0.499304 +20 2315929 2357863 0 3 NaN NaN NaN 0.437637 0.482853 0.498049 +20 2482325 2517825 0 3 NaN NaN NaN 0.460982 0.487372 0.497402 +20 2542747 2552805 0 2 NaN NaN NaN 0.478454 0.491667 0.498104 +20 2593006 2621998 0 10 NaN NaN NaN 0.454661 0.482552 0.497483 +20 2624956 2655019 0 3 NaN NaN NaN 0.463236 0.493277 0.499011 +20 2777828 2779257 0 2 NaN NaN NaN 0.458007 0.486852 0.496191 +20 2796471 2818801 0 2 NaN NaN NaN 0.463575 0.485742 0.497221 +20 2945759 3005413 0 7 NaN NaN NaN 0.459580 0.479914 0.498429 +20 3007228 3007492 0 2 NaN NaN NaN 0.457235 0.482270 0.498636 +20 3013228 3054033 0 2 NaN NaN NaN 0.450466 0.488737 0.499291 +20 3147024 3624830 0 5 NaN NaN NaN 0.463730 0.488657 0.498177 +20 3640823 3640823 0 1 NaN NaN NaN 0.445832 0.489942 0.497602 +20 3641881 3675333 0 11 NaN NaN NaN 0.460004 0.491351 0.499311 +20 3675498 3686436 0 8 NaN NaN NaN 0.444577 0.484619 0.496582 +20 3701867 3732633 0 4 NaN NaN NaN 0.439605 0.483720 0.497538 +20 3838441 3838441 0 1 NaN NaN NaN 0.445389 0.483743 0.495827 +20 3858985 4055656 0 3 NaN NaN NaN 0.460231 0.483993 0.498156 +20 4138585 4162411 0 4 NaN NaN NaN 0.456772 0.485809 0.496872 +20 4167234 4843609 0 9 NaN NaN NaN 0.463707 0.485354 0.498185 +20 4880308 5035125 0 2 NaN NaN NaN 0.450729 0.483379 0.495339 +20 5063643 5063643 0 1 NaN NaN NaN 0.449495 0.481651 0.498033 +20 5068730 5068730 0 1 NaN NaN NaN 0.460739 0.487729 0.497662 +20 5159344 5482307 0 16 NaN NaN NaN 0.446787 0.482013 0.497459 +20 5528518 5634575 0 5 NaN NaN NaN 0.445468 0.487589 0.498464 +20 5640886 5738376 0 4 NaN NaN NaN 0.472502 0.489930 0.496824 +20 5903517 6065731 0 6 NaN NaN NaN 0.451124 0.480429 0.497446 +20 6090623 6100391 0 6 NaN NaN NaN 0.440128 0.488071 0.498816 +20 6194421 6195664 0 2 NaN NaN NaN 0.442623 0.488158 0.498583 +20 6302114 6798939 0 3 NaN NaN NaN 0.460676 0.489967 0.498317 +20 7866261 8581713 0 5 NaN NaN NaN 0.452547 0.483234 0.496623 +20 8625108 8625108 0 1 NaN NaN NaN 0.452791 0.489254 0.496359 +20 8625250 8639443 0 4 NaN NaN NaN 0.455115 0.486786 0.498942 +20 8665751 8703145 0 5 NaN NaN NaN 0.457266 0.488231 0.498819 +20 8707900 8707927 0 2 NaN NaN NaN 0.438621 0.483079 0.497429 +20 8708166 8708166 0 1 NaN NaN NaN 0.463730 0.489468 0.498005 +20 8737734 8737734 0 1 NaN NaN NaN 0.448614 0.481475 0.496503 +20 8741188 8741188 0 1 NaN NaN NaN 0.440744 0.493251 0.498765 +20 8742326 8742326 0 1 NaN NaN NaN 0.455732 0.486215 0.497727 +20 8755243 8770932 0 4 NaN NaN NaN 0.464721 0.492985 0.498633 +20 8773096 8773155 0 2 NaN NaN NaN 0.458675 0.487494 0.499268 +20 9108585 9376019 0 4 NaN NaN NaN 0.450741 0.484600 0.496658 +20 9417870 9510263 0 4 NaN NaN NaN 0.422167 0.489492 0.498541 +20 9624587 10004147 0 3 NaN NaN NaN 0.473963 0.495402 0.499337 +20 10012714 10012751 0 2 NaN NaN NaN 0.464607 0.485268 0.498826 +20 10024951 10024951 0 1 NaN NaN NaN 0.442116 0.485541 0.496405 +20 10026357 10032413 0 4 NaN NaN NaN 0.442301 0.486008 0.498128 +20 10329888 10393145 0 4 NaN NaN NaN 0.466342 0.485582 0.498147 +20 10426975 10439002 0 3 NaN NaN NaN 0.465790 0.489121 0.498439 +20 10629129 10629525 0 2 NaN NaN NaN 0.450508 0.484274 0.496989 +20 11224228 12113410 0 5 NaN NaN NaN 0.448545 0.487756 0.498697 +20 13054307 13060331 0 5 NaN NaN NaN 0.471982 0.493321 0.498821 +20 13071871 13074243 0 3 NaN NaN NaN 0.460286 0.489120 0.496994 +20 13090745 13227837 0 3 NaN NaN NaN 0.458387 0.490954 0.499151 +20 13239860 13260252 0 2 NaN NaN NaN 0.441327 0.486123 0.498177 +20 13709407 13709407 0 1 NaN NaN NaN 0.453266 0.485396 0.498634 +20 13769127 13769127 0 1 NaN NaN NaN 0.457894 0.486339 0.494944 +20 13798676 13830137 0 4 NaN NaN NaN 0.454999 0.487237 0.497362 +20 13845726 13845726 0 1 NaN NaN NaN 0.442650 0.476418 0.497272 +20 13872093 13885105 0 2 NaN NaN NaN 0.464260 0.489631 0.498332 +20 13921411 13992299 0 2 NaN NaN NaN 0.469876 0.487975 0.498977 +20 14273462 14273462 0 1 NaN NaN NaN 0.454916 0.482945 0.497211 +20 14306896 14306896 0 1 NaN NaN NaN 0.468405 0.484200 0.498064 +20 14306953 14306953 0 1 NaN NaN NaN 0.451838 0.487037 0.496673 +20 14319063 14319063 0 1 NaN NaN NaN 0.468196 0.489307 0.498561 +20 14910634 14910665 0 2 NaN NaN NaN 0.455713 0.489899 0.498300 +20 15131723 15411848 0 2 NaN NaN NaN 0.471409 0.492049 0.499465 +20 15874325 15967327 0 2 NaN NaN NaN 0.456657 0.488739 0.498887 +20 16729262 16730522 0 3 NaN NaN NaN 0.419879 0.486833 0.498166 +20 17028059 17460132 0 5 NaN NaN NaN 0.426074 0.476069 0.496986 +20 17474690 17594729 0 9 NaN NaN NaN 0.432543 0.487223 0.497847 +20 17595329 17595329 0 1 NaN NaN NaN 0.459883 0.483145 0.497857 +20 17596155 17596155 0 1 NaN NaN NaN 0.454981 0.485687 0.498049 +20 17596731 17597331 0 2 NaN NaN NaN 0.439089 0.478715 0.496620 +20 17597531 17597531 0 1 NaN NaN NaN 0.442801 0.482092 0.496995 +20 17600357 17990713 0 2 NaN NaN NaN 0.433438 0.489705 0.498414 +20 17992979 18022171 0 5 NaN NaN NaN 0.424613 0.485183 0.498021 +20 18142924 18175556 0 3 NaN NaN NaN 0.471841 0.486996 0.496445 +20 18192433 18241880 0 2 NaN NaN NaN 0.445918 0.484416 0.495957 +20 18286888 18286888 0 1 NaN NaN NaN 0.442022 0.487689 0.497337 +20 18287104 18327570 0 3 NaN NaN NaN 0.461973 0.487462 0.499440 +20 18429497 18429509 0 2 NaN NaN NaN 0.462733 0.487091 0.498128 +20 18432690 18446024 0 4 NaN NaN NaN 0.463701 0.487131 0.497696 +20 18806046 18806046 0 1 NaN NaN NaN 0.470064 0.488650 0.496929 +20 18810705 19261623 0 2 NaN NaN NaN 0.446201 0.482335 0.496780 +20 19345285 19345285 0 1 NaN NaN NaN 0.461914 0.486002 0.496913 +20 19560664 19914520 0 4 NaN NaN NaN 0.423834 0.480872 0.497875 +20 19941538 19951660 0 3 NaN NaN NaN 0.409420 0.475386 0.495371 +20 19970705 19970705 0 1 NaN NaN NaN 0.465563 0.489973 0.498771 +20 19987674 19987674 0 1 NaN NaN NaN 0.467961 0.486354 0.498565 +20 20007325 20033137 0 3 NaN NaN NaN 0.455258 0.483639 0.497586 +20 20033242 20033423 0 5 NaN NaN NaN 0.456157 0.490079 0.497267 +20 20037222 20152462 0 8 NaN NaN NaN 0.399155 0.464774 0.497539 +20 20168497 20265171 0 4 NaN NaN NaN 0.443963 0.490900 0.498392 +20 20269631 21147009 0 9 NaN NaN NaN 0.390829 0.480957 0.498572 +20 21147407 21868713 0 6 NaN NaN NaN 0.435233 0.471410 0.495991 +20 21897170 22714612 0 6 NaN NaN NaN 0.458054 0.476678 0.495549 +20 23345844 23425812 0 8 NaN NaN NaN 0.441810 0.484328 0.498765 +20 23426972 23426972 0 1 NaN NaN NaN 0.474889 0.489325 0.497504 +20 23528536 23529388 0 2 NaN NaN NaN 0.449147 0.485496 0.498120 +20 23529418 23731560 0 10 NaN NaN NaN 0.433579 0.479738 0.493930 +20 23756529 23756529 0 1 NaN NaN NaN 0.428622 0.478433 0.497523 +20 23756613 23756613 0 1 NaN NaN NaN 0.448964 0.488363 0.498243 +20 23761395 23761395 0 1 NaN NaN NaN 0.449295 0.484874 0.496965 +20 23805832 23807028 0 2 NaN NaN NaN 0.462527 0.488073 0.495620 +20 23842032 23842078 0 2 NaN NaN NaN 0.458261 0.486393 0.499212 +20 23860178 24200699 0 4 NaN NaN NaN 0.458117 0.481519 0.496914 +20 24201344 24201393 0 2 NaN NaN NaN 0.470051 0.485255 0.498310 +20 24790712 24790712 0 1 NaN NaN NaN 0.465488 0.486772 0.498106 +20 24911562 24938195 0 3 NaN NaN NaN 0.451128 0.484099 0.498091 +20 24939590 24959386 0 2 NaN NaN NaN 0.459693 0.487544 0.496006 +20 24993414 25011423 0 4 NaN NaN NaN 0.455045 0.485156 0.497168 +20 25038484 25059442 0 2 NaN NaN NaN 0.448530 0.482632 0.496936 +20 25190598 25196520 0 2 NaN NaN NaN 0.441364 0.488867 0.498955 +20 25252161 25255338 0 2 NaN NaN NaN 0.465126 0.487505 0.497912 +20 25257260 25261784 0 6 NaN NaN NaN 0.453951 0.484679 0.496946 +20 25262769 25262789 0 2 NaN NaN NaN 0.452966 0.489449 0.498299 +20 25263756 25263756 0 1 NaN NaN NaN 0.434767 0.478663 0.496270 +20 25264664 25282944 0 13 NaN NaN NaN 0.388087 0.473774 0.496993 +20 25286059 25286059 0 1 NaN NaN NaN 0.458137 0.489603 0.499117 +20 25288505 25324410 0 5 NaN NaN NaN 0.461822 0.491138 0.499235 +20 25336445 25398876 0 5 NaN NaN NaN 0.406955 0.472452 0.498211 +20 25424713 25424713 0 1 NaN NaN NaN 0.468250 0.490894 0.498720 +20 25434351 25470056 0 11 NaN NaN NaN 0.427766 0.483422 0.498475 +20 25597236 25604655 0 2 NaN NaN NaN 0.463410 0.489653 0.495903 +20 25622858 25622858 0 1 NaN NaN NaN 0.454156 0.488898 0.498166 +20 25629114 25666807 0 3 NaN NaN NaN 0.441505 0.476521 0.492230 +20 25699941 25700293 0 4 NaN NaN NaN 0.449375 0.484819 0.496340 +20 25754173 25755672 0 2 NaN NaN NaN 0.428449 0.478110 0.496348 +20 25756059 25837915 0 2 NaN NaN NaN 0.472357 0.489183 0.497799 +20 25838130 25838130 0 1 NaN NaN NaN 0.478539 0.490490 0.498095 +20 25838802 25841650 0 4 NaN NaN NaN 0.463860 0.485930 0.498646 +20 25846283 25900162 0 3 NaN NaN NaN 0.383021 0.461568 0.483214 +20 25900379 26134237 0 4 NaN NaN NaN 0.473814 0.490025 0.498743 +20 26138206 29449417 0 2 NaN NaN NaN 0.468111 0.491429 0.498098 +20 29449678 29449678 0 1 NaN NaN NaN 0.451866 0.488259 0.496688 +20 29516670 29516670 0 1 NaN NaN NaN 0.457096 0.485447 0.494573 +20 29517417 29520510 0 3 NaN NaN NaN 0.451934 0.486084 0.498433 +20 29521061 29632564 0 4 NaN NaN NaN 0.445392 0.480222 0.498108 +20 29633929 29648701 0 3 NaN NaN NaN 0.465282 0.484919 0.497970 +20 29847211 29847211 0 1 NaN NaN NaN 0.457433 0.488237 0.498853 +20 29847618 29872796 0 2 NaN NaN NaN 0.471115 0.487864 0.499027 +20 29873577 29873577 0 1 NaN NaN NaN 0.444686 0.484249 0.496769 +20 29899208 29899208 0 1 NaN NaN NaN 0.454852 0.487017 0.498025 +20 29977156 29977156 0 1 NaN NaN NaN 0.446794 0.487598 0.497218 +20 29986332 30035869 0 2 NaN NaN NaN 0.470789 0.490070 0.498263 +20 30037783 30037783 0 1 NaN NaN NaN 0.434266 0.486019 0.498150 +20 30053255 31025163 0 2 NaN NaN NaN 0.465697 0.485741 0.496971 +20 31647126 31676804 0 8 NaN NaN NaN 0.444530 0.479199 0.496528 +20 31811551 31826027 0 4 NaN NaN NaN 0.394819 0.469950 0.491270 +20 31828265 31897554 0 2 NaN NaN NaN 0.427049 0.483290 0.498352 +20 31956468 32289763 0 2 NaN NaN NaN 0.463618 0.486060 0.497876 +20 32325329 32330930 0 2 NaN NaN NaN 0.452085 0.491094 0.498530 +20 32340077 32710710 0 8 NaN NaN NaN 0.403502 0.469435 0.493744 +20 32935192 33006597 0 6 NaN NaN NaN 0.455757 0.491221 0.498616 +20 33030405 33031276 0 2 NaN NaN NaN 0.453932 0.480978 0.497020 +20 33037336 33150503 0 7 NaN NaN NaN 0.410605 0.475371 0.498178 +20 33178782 33279604 0 5 NaN NaN NaN 0.451747 0.485581 0.497574 +20 33283649 33879478 0 2 NaN NaN NaN 0.445047 0.477625 0.495349 +20 33882720 33882791 0 2 NaN NaN NaN 0.464764 0.489134 0.497856 +20 34218673 34243017 0 4 NaN NaN NaN 0.464521 0.484707 0.496388 +20 34269577 34269577 0 1 NaN NaN NaN 0.463661 0.487835 0.497770 +20 34271574 34271574 0 1 NaN NaN NaN 0.461294 0.486101 0.495383 +20 34289005 34289005 0 1 NaN NaN NaN 0.465362 0.491553 0.498976 +20 34304783 34312834 0 6 NaN NaN NaN 0.455327 0.484563 0.499003 +20 34314114 34314114 0 1 NaN NaN NaN 0.454291 0.490179 0.498600 +20 34314140 34324484 0 9 NaN NaN NaN 0.450332 0.485946 0.497477 +20 34324648 34335861 0 3 NaN NaN NaN 0.435694 0.489045 0.498116 +20 34339854 34431377 0 4 NaN NaN NaN 0.452092 0.490279 0.498339 +20 34443173 34446395 0 2 NaN NaN NaN 0.452656 0.491916 0.498965 +20 34457513 34457513 0 1 NaN NaN NaN 0.459512 0.484271 0.495413 +20 34492974 34492974 0 1 NaN NaN NaN 0.445650 0.488525 0.498350 +20 34499996 34505054 0 3 NaN NaN NaN 0.460593 0.482712 0.495322 +20 34525807 34525807 0 1 NaN NaN NaN 0.461335 0.487325 0.498689 +20 34535373 34581979 0 5 NaN NaN NaN 0.465054 0.491238 0.498646 +20 34589995 34766745 0 8 NaN NaN NaN 0.446354 0.484902 0.497389 +20 34775551 34782171 0 2 NaN NaN NaN 0.452909 0.484514 0.497843 +20 34974252 34974252 0 1 NaN NaN NaN 0.458513 0.483049 0.495218 +20 35068018 35740794 0 10 NaN NaN NaN 0.464611 0.484844 0.497905 +20 35748894 35869619 0 21 NaN NaN NaN 0.355384 0.429946 0.495302 +20 36022539 36288284 0 3 NaN NaN NaN 0.450517 0.475972 0.498783 +20 36337303 36607077 0 3 NaN NaN NaN 0.450674 0.485199 0.498106 +20 36615416 36793501 0 8 NaN NaN NaN 0.460372 0.485668 0.499477 +20 36793529 36793529 0 1 NaN NaN NaN 0.466968 0.488682 0.496430 +20 36841756 36919758 0 4 NaN NaN NaN 0.461619 0.488032 0.497374 +20 36932551 36944379 0 5 NaN NaN NaN 0.469842 0.489702 0.499035 +20 36946848 36953097 0 3 NaN NaN NaN 0.461027 0.488350 0.498938 +20 36958262 36958262 0 1 NaN NaN NaN 0.468382 0.486931 0.496832 +20 36959318 36965617 0 4 NaN NaN NaN 0.464622 0.490855 0.497594 +20 36989269 37291486 0 19 NaN NaN NaN 0.441101 0.476280 0.494393 +20 37366218 37396262 0 9 NaN NaN NaN 0.448302 0.485851 0.495925 +20 37404951 38354742 0 4 NaN NaN NaN 0.439011 0.480113 0.498857 +20 38483658 39501689 0 3 NaN NaN NaN 0.459348 0.485904 0.499248 +20 39501744 40126679 0 12 NaN NaN NaN 0.446913 0.478544 0.497996 +20 40179909 40179920 0 2 NaN NaN NaN 0.464615 0.489131 0.498518 +20 40234917 43803708 0 48 NaN NaN NaN 0.472699 0.490850 0.496812 +20 43803725 43881630 0 10 NaN NaN NaN 0.465858 0.490590 0.497707 +20 43920730 44645010 0 19 NaN NaN NaN 0.474869 0.488565 0.496091 +20 44650318 44650318 0 1 NaN NaN NaN 0.468292 0.490065 0.496810 +20 44806875 44806875 0 1 NaN NaN NaN 0.437187 0.488111 0.497875 +20 44812893 44983517 0 2 NaN NaN NaN 0.462277 0.486693 0.498852 +20 44987318 45023247 0 2 NaN NaN NaN 0.457689 0.488415 0.497906 +20 45092517 45092921 0 3 NaN NaN NaN 0.444307 0.481060 0.496729 +20 45093125 45789953 0 5 NaN NaN NaN 0.464691 0.487053 0.497813 +20 45797639 45816649 0 12 NaN NaN NaN 0.461226 0.483966 0.496963 +20 45891189 45891189 0 1 NaN NaN NaN 0.466247 0.490875 0.497410 +20 45923383 47253043 0 12 NaN NaN NaN 0.448801 0.482245 0.496619 +20 47256300 47258763 0 4 NaN NaN NaN 0.448856 0.485901 0.498971 +20 47261017 47361725 0 14 NaN NaN NaN 0.454719 0.486133 0.497414 +20 47569112 47589122 0 6 NaN NaN NaN 0.462051 0.487741 0.497936 +20 47591082 47639464 0 12 NaN NaN NaN 0.456223 0.486110 0.497065 +20 47648353 47850182 0 12 NaN NaN NaN 0.466968 0.489930 0.498332 +20 47852822 47859217 0 2 NaN NaN NaN 0.442895 0.480146 0.495860 +20 47865372 48129706 0 10 NaN NaN NaN 0.462516 0.491146 0.499206 +20 48129987 48129987 0 1 NaN NaN NaN 0.458388 0.488777 0.498550 +20 48130628 48259034 0 5 NaN NaN NaN 0.459605 0.486460 0.498175 +20 48300990 48300990 0 1 NaN NaN NaN 0.421951 0.476334 0.496456 +20 48301146 48701527 0 4 NaN NaN NaN 0.465790 0.486542 0.497922 +20 48720687 49225953 0 9 NaN NaN NaN 0.455809 0.485532 0.497780 +20 49227294 49575334 0 5 NaN NaN NaN 0.463268 0.486052 0.495299 +20 50078910 54464410 0 39 NaN NaN NaN 0.473551 0.488399 0.498098 +20 54935242 54941140 0 5 NaN NaN NaN 0.471659 0.488217 0.498127 +20 54945783 55803149 0 13 NaN NaN NaN 0.471819 0.486891 0.497614 +20 56064267 56064267 0 1 NaN NaN NaN 0.460881 0.490538 0.497503 +20 56071296 56136536 0 4 NaN NaN NaN 0.463449 0.488820 0.498069 +20 56137184 57024589 0 17 NaN NaN NaN 0.478774 0.493065 0.497898 +20 57045667 57045765 0 2 NaN NaN NaN 0.455902 0.482100 0.495597 +20 57266134 57470517 0 9 NaN NaN NaN 0.463290 0.484055 0.498070 +20 57478448 57569860 0 7 NaN NaN NaN 0.442290 0.484602 0.496214 +20 57570854 57768399 0 7 NaN NaN NaN 0.456789 0.482995 0.495408 +20 57768743 58578068 0 8 NaN NaN NaN 0.458088 0.485747 0.497221 +20 58581863 60582540 0 10 NaN NaN NaN 0.469340 0.492176 0.499473 +20 60584328 60584328 0 1 NaN NaN NaN 0.469606 0.486805 0.498725 +20 60712284 60712284 0 1 NaN NaN NaN 0.446165 0.486713 0.498804 +20 60712347 60735098 0 9 NaN NaN NaN 0.443020 0.485701 0.497612 +20 60739079 60739079 0 1 NaN NaN NaN 0.450782 0.488893 0.499415 +20 60740362 60740362 0 1 NaN NaN NaN 0.461641 0.482177 0.496910 +20 60740447 60886611 0 16 NaN NaN NaN 0.467222 0.488749 0.498571 +20 60897721 60992224 0 10 NaN NaN NaN 0.464816 0.490179 0.497396 +20 60992402 61039958 0 2 NaN NaN NaN 0.456024 0.484596 0.496870 +20 61040125 61040125 0 1 NaN NaN NaN 0.439679 0.485863 0.498157 +20 61040313 61040313 0 1 NaN NaN NaN 0.470694 0.487907 0.498310 +20 61041653 61150928 0 3 NaN NaN NaN 0.450856 0.475944 0.493915 +20 61150959 61162037 0 2 NaN NaN NaN 0.452293 0.488516 0.498202 +20 61162100 61162100 0 1 NaN NaN NaN 0.453462 0.486560 0.498397 +20 61167883 61443547 0 8 NaN NaN NaN 0.463078 0.488833 0.498867 +20 61444697 61444697 0 1 NaN NaN NaN 0.453540 0.490078 0.499349 +20 61444785 61453348 0 2 NaN NaN NaN 0.460340 0.492539 0.499071 +20 61453549 61527563 0 14 NaN NaN NaN 0.468970 0.489146 0.498941 +20 61528074 61528074 0 1 NaN NaN NaN 0.460803 0.486210 0.498698 +20 61528271 61528306 0 2 NaN NaN NaN 0.464593 0.488835 0.498574 +20 61541028 61542001 0 2 NaN NaN NaN 0.462040 0.486408 0.498898 +20 61588159 61834695 0 4 NaN NaN NaN 0.464531 0.485480 0.495528 +20 61869607 61869607 0 1 NaN NaN NaN 0.448257 0.482176 0.498549 +20 61870727 61875909 0 5 NaN NaN NaN 0.447468 0.481850 0.496815 +20 61879009 61879009 0 1 NaN NaN NaN 0.439564 0.483909 0.498593 +20 61880274 62234240 0 21 NaN NaN NaN 0.461432 0.482246 0.496660 +20 62245686 62305274 0 5 NaN NaN NaN 0.464720 0.490891 0.498386 +20 62324289 62698484 0 10 NaN NaN NaN 0.464121 0.486941 0.497742 +20 62701092 62720193 0 5 NaN NaN NaN 0.471197 0.491010 0.498038 +20 62729431 62836271 0 3 NaN NaN NaN 0.456016 0.488800 0.497346 +20 62836520 62854417 0 2 NaN NaN NaN 0.469090 0.489481 0.497984 +20 62868043 62904542 0 3 NaN NaN NaN 0.453158 0.481396 0.497848 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.af.param index c1095d09ceb..4ecb3b3a561 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.092310 1.098678 1.111646 1.117541 1.120565 1.125976 1.133225 1.136642 1.148982 -BIAS_VARIANCE 0.451935 0.459585 0.465554 0.471289 0.475876 0.479446 0.482660 0.491585 0.495789 -OUTLIER_PROBABILITY 0.045637 0.051060 0.054284 0.057989 0.064227 0.068471 0.077494 0.083395 0.093476 +MEAN_BIAS 1.071919 1.083975 1.094159 1.107253 1.114895 1.126273 1.131272 1.146231 1.159403 +BIAS_VARIANCE 0.411686 0.418478 0.431803 0.440233 0.451278 0.460688 0.476434 0.486997 0.495994 +OUTLIER_PROBABILITY 0.050319 0.058925 0.064151 0.067747 0.070172 0.077448 0.084848 0.089142 0.098892 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.seg index 1cc21a3ed90..4785253fc27 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-nac-tumor-1.modelBegin.seg @@ -2,89 +2,89 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 68100 363520 28 20 0.616858 0.645817 0.674736 0.409789 0.471381 0.498710 -20 368404 377586 3 3 0.455567 0.553719 0.619254 0.444268 0.484721 0.498171 -20 389132 398077 4 3 0.580702 0.639602 0.734505 0.457889 0.491709 0.498982 -20 398078 1373576 94 11 0.636273 0.656804 0.674736 0.459475 0.483937 0.496808 -20 1424143 1426618 2 2 0.558403 0.686476 0.821470 0.444009 0.485036 0.497889 -20 1432887 1515339 16 2 0.664547 0.697313 0.747386 0.434855 0.475514 0.496759 -20 1517550 1559592 7 8 0.664479 0.733470 0.804384 0.383600 0.461272 0.495372 -20 1600264 1896353 7 9 0.504773 0.588939 0.638667 0.458351 0.480160 0.495468 -20 1901790 2474793 51 2 0.610221 0.628385 0.643121 0.464564 0.482640 0.496452 -20 2517017 2518214 2 3 0.466824 0.581057 0.727678 0.442603 0.485772 0.497383 -20 2538851 2597102 13 2 0.679380 0.737303 0.802924 0.436187 0.476695 0.497050 -20 2597467 2622249 5 8 0.586969 0.673810 0.758800 0.450158 0.478906 0.497040 -20 2633368 3680358 256 21 0.620770 0.627961 0.638491 0.450843 0.479585 0.495897 -20 3681738 3686841 4 6 0.513418 0.599017 0.663398 0.464355 0.490281 0.497014 -20 3686842 4866807 95 13 0.598378 0.621248 0.637607 0.461567 0.493639 0.499383 -20 4879950 4880610 1 1 -38.354541 -19.841739 1.879385 0.432495 0.482473 0.496767 +20 68100 363520 28 20 0.616858 0.645817 0.674736 0.447788 0.481028 0.497632 +20 368404 377586 3 3 0.455567 0.553719 0.619254 0.466718 0.492327 0.497891 +20 389132 398077 4 3 0.580702 0.639602 0.734505 0.445849 0.481161 0.498706 +20 398078 1373576 94 11 0.636273 0.656804 0.674736 0.458694 0.490526 0.499272 +20 1424143 1426618 2 2 0.558403 0.686476 0.821470 0.458244 0.483936 0.498648 +20 1432887 1515339 16 2 0.664547 0.697313 0.747386 0.438730 0.483349 0.493308 +20 1517550 1559592 7 8 0.664479 0.733470 0.804384 0.437448 0.483021 0.498283 +20 1600264 1896353 7 9 0.504773 0.588939 0.638667 0.411974 0.472609 0.498112 +20 1901790 2474793 51 2 0.610221 0.628385 0.643121 0.456590 0.487358 0.497464 +20 2517017 2518214 2 3 0.466824 0.581057 0.727678 0.465307 0.490760 0.498456 +20 2538851 2597102 13 2 0.679380 0.737303 0.802924 0.462295 0.487364 0.498186 +20 2597467 2622249 5 8 0.586969 0.673810 0.758800 0.450553 0.484032 0.498764 +20 2633368 3680358 256 21 0.620770 0.627961 0.638491 0.451140 0.481890 0.497300 +20 3681738 3686841 4 6 0.513418 0.599017 0.663398 0.440501 0.483976 0.498477 +20 3686842 4866807 95 13 0.598378 0.621248 0.637607 0.441344 0.479451 0.498791 +20 4879950 4880610 1 1 -38.354541 -19.841739 1.879385 0.453875 0.484130 0.496080 20 4882837 5171132 27 0 0.610876 0.647102 0.682110 NaN NaN NaN -20 5282435 5297334 3 5 0.451959 0.554162 0.660650 0.440798 0.483426 0.497444 -20 5454040 8746257 127 26 0.647893 0.660167 0.671549 0.401577 0.478646 0.495989 -20 8754935 8771160 5 5 0.754330 0.823035 0.912155 0.461202 0.487140 0.499448 -20 8772985 9416547 29 2 0.858519 0.883094 0.926069 0.457733 0.483351 0.498120 -20 9417398 9425142 3 3 0.573965 0.670621 0.746411 0.441158 0.487900 0.498664 -20 9433743 10025443 24 2 0.832737 0.877060 0.915016 0.470050 0.489653 0.497616 -20 10025971 10032789 3 4 0.850305 0.956211 1.045650 0.416258 0.476656 0.497775 -20 10033509 13055397 58 4 0.858814 0.887775 0.902961 0.435063 0.479230 0.496810 -20 13071480 13091116 3 3 0.863603 0.960950 1.085440 0.456907 0.488265 0.497822 -20 13097902 16729903 128 10 0.858418 0.873171 0.891151 0.435937 0.480662 0.497917 -20 16730297 16730907 1 2 0.786506 0.989487 1.137585 0.462517 0.483981 0.497330 +20 5282435 5297334 3 5 0.451959 0.554162 0.660650 0.464823 0.489456 0.496935 +20 5454040 8746257 127 26 0.647893 0.660167 0.671549 0.431505 0.486266 0.498351 +20 8754935 8771160 5 5 0.754330 0.823035 0.912155 0.459762 0.484310 0.497243 +20 8772985 9416547 29 2 0.858519 0.883094 0.926069 0.451955 0.489006 0.498764 +20 9417398 9425142 3 3 0.573965 0.670621 0.746411 0.439868 0.485263 0.498747 +20 9433743 10025443 24 2 0.832737 0.877060 0.915016 0.447487 0.482660 0.496834 +20 10025971 10032789 3 4 0.850305 0.956211 1.045650 0.402745 0.482583 0.493137 +20 10033509 13055397 58 4 0.858814 0.887775 0.902961 0.462677 0.489072 0.498997 +20 13071480 13091116 3 3 0.863603 0.960950 1.085440 0.452368 0.486677 0.497540 +20 13097902 16729903 128 10 0.858418 0.873171 0.891151 0.458769 0.484539 0.497666 +20 16730297 16730907 1 2 0.786506 0.989487 1.137585 0.470538 0.490279 0.498069 20 16731489 17462967 13 0 0.888570 0.931614 0.963131 NaN NaN NaN -20 17474468 17492965 4 4 0.765912 0.858438 0.931668 0.462784 0.484380 0.498417 -20 17495115 17601704 14 3 0.855885 0.903735 0.954234 0.444740 0.481472 0.491304 -20 17601852 17602264 1 1 0.785991 0.961659 1.108774 0.465607 0.487797 0.498672 +20 17474468 17492965 4 4 0.765912 0.858438 0.931668 0.445874 0.487314 0.496564 +20 17495115 17601704 14 3 0.855885 0.903735 0.954234 0.460581 0.486884 0.497342 +20 17601852 17602264 1 1 0.785991 0.961659 1.108774 0.465876 0.490820 0.498947 20 17602460 17971079 31 0 0.866080 0.903972 0.937876 NaN NaN NaN -20 18005029 18022619 2 2 0.795920 0.931541 1.041274 0.433740 0.481543 0.497831 -20 18037928 18429964 34 3 0.919930 0.944497 0.972318 0.436358 0.480910 0.497113 -20 18432248 18433633 2 2 0.778596 0.948346 1.059295 0.459969 0.481866 0.498046 -20 18434125 18795182 47 2 0.831734 0.871539 0.893205 0.460556 0.490242 0.498278 -20 18805660 19560970 5 4 0.784477 0.880833 0.993205 0.417590 0.475906 0.497200 -20 19565364 20031518 44 3 0.951942 0.981857 1.011919 0.445241 0.484677 0.497625 -20 20032685 20051900 5 8 1.056331 1.144170 1.202413 0.405932 0.485601 0.496053 -20 20054695 21117443 68 6 0.919610 0.944809 0.962379 0.387876 0.473482 0.498818 -20 21125956 21143319 2 3 0.746576 0.885838 1.011789 0.437016 0.487228 0.498208 -20 21143320 21335762 29 1 0.915857 0.946611 0.977729 0.441617 0.477593 0.497587 -20 21336467 21337020 1 1 1.049420 1.168026 1.278388 0.458295 0.490273 0.499093 +20 18005029 18022619 2 2 0.795920 0.931541 1.041274 0.457887 0.481805 0.494794 +20 18037928 18429964 34 3 0.919930 0.944497 0.972318 0.444253 0.481164 0.494322 +20 18432248 18433633 2 2 0.778596 0.948346 1.059295 0.448132 0.486763 0.498181 +20 18434125 18795182 47 2 0.831734 0.871539 0.893205 0.458188 0.485824 0.495650 +20 18805660 19560970 5 4 0.784477 0.880833 0.993205 0.430713 0.472450 0.495326 +20 19565364 20031518 44 3 0.951942 0.981857 1.011919 0.457509 0.482547 0.498375 +20 20032685 20051900 5 8 1.056331 1.144170 1.202413 0.431841 0.483315 0.497405 +20 20054695 21117443 68 6 0.919610 0.944809 0.962379 0.445861 0.480921 0.495268 +20 21125956 21143319 2 3 0.746576 0.885838 1.011789 0.440571 0.488567 0.499114 +20 21143320 21335762 29 1 0.915857 0.946611 0.977729 0.457365 0.484383 0.499236 +20 21336467 21337020 1 1 1.049420 1.168026 1.278388 0.453967 0.489176 0.498439 20 21337021 23335353 23 0 0.843591 0.873977 0.898971 NaN NaN NaN -20 23344770 23347986 2 2 0.754716 0.889823 1.036976 0.451827 0.486870 0.498835 -20 23349148 23476803 23 3 0.923513 0.962569 1.015895 0.470283 0.488686 0.496804 -20 23528151 23529802 2 3 0.751213 0.863958 1.016981 0.430882 0.478451 0.494496 -20 23530800 23804992 16 5 0.925557 0.984711 1.032753 0.442622 0.482650 0.494298 -20 23805596 23807549 2 2 1.000609 1.122151 1.251156 0.431926 0.475602 0.497183 -20 23856574 25058753 44 6 1.007022 1.031021 1.066713 0.419597 0.470506 0.494977 -20 25059122 25059830 1 1 0.924371 1.074894 1.231265 0.440977 0.487037 0.497514 -20 25059831 25250095 19 1 1.042005 1.075242 1.125932 0.458144 0.485891 0.498323 -20 25251768 25269459 12 16 1.045976 1.096869 1.125607 0.300267 0.396284 0.497883 -20 25270235 25283234 9 8 0.971934 1.056236 1.125711 0.463458 0.485461 0.495536 -20 25283935 25426879 19 4 1.023388 1.058247 1.124318 0.415201 0.479079 0.494780 -20 25433836 25439484 3 4 1.089659 1.188626 1.278029 0.447954 0.489290 0.497590 -20 25441907 25520944 21 4 1.049891 1.081117 1.117048 0.461965 0.487943 0.497185 -20 25596310 25829597 8 5 1.113431 1.213732 1.321630 0.403474 0.461151 0.493035 +20 23344770 23347986 2 2 0.754716 0.889823 1.036976 0.440731 0.483960 0.498460 +20 23349148 23476803 23 3 0.923513 0.962569 1.015895 0.468827 0.490500 0.497061 +20 23528151 23529802 2 3 0.751213 0.863958 1.016981 0.436880 0.480488 0.495974 +20 23530800 23804992 16 5 0.925557 0.984711 1.032753 0.449843 0.478344 0.497631 +20 23805596 23807549 2 2 1.000609 1.122151 1.251156 0.463043 0.480164 0.497427 +20 23856574 25058753 44 6 1.007022 1.031021 1.066713 0.450253 0.483631 0.497611 +20 25059122 25059830 1 1 0.924371 1.074894 1.231265 0.440738 0.483023 0.496292 +20 25059831 25250095 19 1 1.042005 1.075242 1.125932 0.466639 0.489368 0.497765 +20 25251768 25269459 12 16 1.045976 1.096869 1.125607 0.276196 0.356818 0.482869 +20 25270235 25283234 9 8 0.971934 1.056236 1.125711 0.447577 0.484028 0.497112 +20 25283935 25426879 19 4 1.023388 1.058247 1.124318 0.420743 0.475115 0.494665 +20 25433836 25439484 3 4 1.089659 1.188626 1.278029 0.472319 0.490192 0.498962 +20 25441907 25520944 21 4 1.049891 1.081117 1.117048 0.431667 0.477774 0.492514 +20 25596310 25829597 8 5 1.113431 1.213732 1.321630 0.409198 0.474988 0.496722 20 26061550 26072430 3 0 0.367641 0.515342 0.634110 NaN NaN NaN -20 26083858 30126381 33 5 1.126152 1.152054 1.187677 0.459142 0.485827 0.498167 -20 30132499 31021972 161 1 1.778447 1.796121 1.818081 0.453168 0.486421 0.499158 -20 31021984 31025393 1 2 -41.644357 -19.617064 3.691117 0.467031 0.490179 0.497997 +20 26083858 30126381 33 5 1.126152 1.152054 1.187677 0.458538 0.487852 0.497252 +20 30132499 31021972 161 1 1.778447 1.796121 1.818081 0.465590 0.489225 0.497884 +20 31021984 31025393 1 2 -41.644357 -19.617064 3.691117 0.465850 0.492405 0.499414 20 31034848 31644756 121 0 1.707959 1.722598 1.734877 NaN NaN NaN -20 31646933 31657031 7 5 1.507781 1.555989 1.618804 0.449831 0.478359 0.497385 +20 31646933 31657031 7 5 1.507781 1.555989 1.618804 0.444886 0.478005 0.496415 20 31657443 31673054 9 0 1.581746 1.640515 1.722870 NaN NaN NaN -20 31673576 31677616 3 3 1.438886 1.537880 1.604160 0.449716 0.483926 0.495909 +20 31673576 31677616 3 3 1.438886 1.537880 1.604160 0.469526 0.489298 0.498899 20 31678263 31805721 17 0 1.630800 1.668371 1.724806 NaN NaN NaN -20 31811366 31828443 9 5 1.556041 1.616400 1.675757 0.384104 0.440858 0.495959 -20 31828940 32700168 105 1 1.629432 1.650935 1.663871 0.471075 0.491959 0.498668 -20 32847930 34218538 301 6 1.107186 1.114977 1.126401 0.432530 0.485085 0.499278 -20 34218539 34782534 94 23 1.132510 1.151938 1.172347 0.392348 0.481583 0.497366 -20 34783000 35555907 102 1 1.082704 1.097204 1.120763 0.437582 0.489327 0.497035 -20 35558912 35559530 1 1 0.853674 1.090897 1.288792 0.445938 0.485191 0.495392 -20 35563181 35757820 38 4 0.948333 0.974652 1.008372 0.444197 0.475088 0.496887 -20 35765963 35769967 2 2 0.868623 0.960101 1.080009 0.450706 0.475335 0.495864 -20 35771870 35833556 14 3 0.934589 0.993416 1.059647 0.457173 0.489366 0.498523 -20 35835425 35838822 2 4 0.736938 0.846223 0.971703 0.453829 0.485948 0.498814 -20 35841912 36784743 74 9 0.907187 0.929155 0.948146 0.435112 0.480162 0.497193 -20 36789571 36846128 5 6 0.812387 0.874448 0.956137 0.456018 0.484753 0.498036 -20 36846395 37272803 90 12 0.942329 0.966290 0.982398 0.467053 0.487589 0.498108 -20 37274440 37279609 6 7 0.788135 0.914467 1.002640 0.441471 0.476914 0.495875 -20 37353117 37667438 46 5 0.924444 0.945050 0.977642 0.441712 0.484168 0.497860 -20 39316268 45878435 698 77 0.115573 0.126588 0.138203 0.472154 0.493084 0.499358 -20 45890779 45891424 1 1 -0.268258 -0.088095 0.101311 0.454396 0.485635 0.498555 -20 45904807 62905205 1317 245 0.092592 0.100428 0.105982 0.483032 0.492206 0.498982 +20 31811366 31828443 9 5 1.556041 1.616400 1.675757 0.352401 0.443150 0.496094 +20 31828940 32700168 105 1 1.629432 1.650935 1.663871 0.447432 0.483274 0.498539 +20 32847930 34218538 301 6 1.107186 1.114977 1.126401 0.332683 0.464406 0.489034 +20 34218539 34782534 94 23 1.132510 1.151938 1.172347 0.338286 0.463567 0.497305 +20 34783000 35555907 102 1 1.082704 1.097204 1.120763 0.448223 0.483323 0.498074 +20 35558912 35559530 1 1 0.853674 1.090897 1.288792 0.455707 0.487730 0.498486 +20 35563181 35757820 38 4 0.948333 0.974652 1.008372 0.464030 0.489280 0.497779 +20 35765963 35769967 2 2 0.868623 0.960101 1.080009 0.452696 0.484278 0.497855 +20 35771870 35833556 14 3 0.934589 0.993416 1.059647 0.447575 0.490760 0.499072 +20 35835425 35838822 2 4 0.736938 0.846223 0.971703 0.417625 0.470545 0.491784 +20 35841912 36784743 74 9 0.907187 0.929155 0.948146 0.408467 0.480739 0.495337 +20 36789571 36846128 5 6 0.812387 0.874448 0.956137 0.409074 0.479615 0.497213 +20 36846395 37272803 90 12 0.942329 0.966290 0.982398 0.459506 0.484659 0.497142 +20 37274440 37279609 6 7 0.788135 0.914467 1.002640 0.454924 0.483874 0.497529 +20 37353117 37667438 46 5 0.924444 0.945050 0.977642 0.455376 0.485197 0.497905 +20 39316268 45878435 698 77 0.115573 0.126588 0.138203 0.473228 0.491137 0.498528 +20 45890779 45891424 1 1 -0.268258 -0.088095 0.101311 0.465602 0.493225 0.498821 +20 45904807 62905205 1317 245 0.092592 0.100428 0.105982 0.485187 0.495274 0.499313 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.af.param index e6ef049c3c2..5fdb1e53c19 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.107480 1.127598 1.130514 1.139511 1.142812 1.148875 1.156153 1.165459 1.169052 -BIAS_VARIANCE 0.452167 0.463604 0.476934 0.482244 0.485483 0.490797 0.492643 0.494530 0.498252 -OUTLIER_PROBABILITY 0.005022 0.010228 0.012933 0.015383 0.017580 0.020834 0.025056 0.034416 0.041315 +MEAN_BIAS 1.101501 1.111624 1.117474 1.127434 1.134135 1.139207 1.144321 1.159496 1.171021 +BIAS_VARIANCE 0.439194 0.451545 0.458149 0.463372 0.471589 0.479536 0.483401 0.485951 0.491700 +OUTLIER_PROBABILITY 0.003480 0.005827 0.009182 0.011244 0.014605 0.017407 0.020466 0.024670 0.028342 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.seg index c5525185d8b..163bd74cf93 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/multiple-sample-cr-ac-tumor-1.modelBegin.seg @@ -3,125 +3,125 @@ @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 20 68100 126585 4 0 0.524470 0.601407 0.706644 NaN NaN NaN -20 137935 139917 2 5 0.785879 0.898611 1.016510 0.445793 0.485867 0.498427 -20 168276 363520 22 15 0.583876 0.625972 0.667696 0.458232 0.488759 0.499237 -20 368404 377586 3 3 0.461714 0.553914 0.626951 0.438345 0.481932 0.497096 -20 389132 398077 4 3 0.566831 0.656941 0.737884 0.463090 0.491570 0.499148 -20 398078 422417 13 1 0.608469 0.656020 0.689490 0.452115 0.493336 0.498722 -20 422418 428970 3 2 0.653730 0.744561 0.857407 0.475196 0.489912 0.498860 -20 464335 1209491 51 6 0.625960 0.646304 0.665655 0.464880 0.490417 0.498328 -20 1210274 1215085 3 2 0.415255 0.496718 0.602324 0.460029 0.484509 0.496862 -20 1218438 1373576 24 1 0.670675 0.701721 0.741305 0.434863 0.478191 0.496487 -20 1424143 1426618 2 2 0.549623 0.670839 0.798850 0.465797 0.489200 0.498222 -20 1432887 1515339 16 2 0.653477 0.694731 0.731888 0.436415 0.476516 0.497533 -20 1517550 1552935 6 6 0.728388 0.778619 0.853447 0.449801 0.481660 0.496806 -20 1558733 1617403 5 6 0.434020 0.509677 0.596605 0.446609 0.477000 0.498868 -20 1629447 2474793 54 6 0.597024 0.617708 0.654253 0.426963 0.481804 0.494611 -20 2517017 2518214 2 2 0.483187 0.624226 0.713785 0.445836 0.485371 0.497777 -20 2538851 2597102 13 3 0.699476 0.728465 0.778510 0.464870 0.488898 0.497643 -20 2597467 2622249 5 8 0.569809 0.655909 0.738855 0.459638 0.490843 0.499251 -20 2633368 2796137 50 1 0.570440 0.597928 0.616003 0.450413 0.488519 0.498891 -20 2796138 2796673 1 1 0.467547 0.638188 0.769026 0.452887 0.486223 0.497524 -20 2796731 3196210 84 10 0.622314 0.642648 0.661420 0.444392 0.480503 0.497243 -20 3198912 3199530 1 1 0.409606 0.604688 0.747195 0.459946 0.486965 0.497928 -20 3202236 3680358 120 12 0.632795 0.647795 0.665503 0.447657 0.479447 0.492065 -20 3681738 3686841 4 6 0.526923 0.597767 0.674034 0.459753 0.485331 0.496566 +20 137935 139917 2 5 0.785879 0.898611 1.016510 0.458031 0.482672 0.498802 +20 168276 363520 22 15 0.583876 0.625972 0.667696 0.451096 0.482099 0.498741 +20 368404 377586 3 3 0.461714 0.553914 0.626951 0.443169 0.479346 0.497185 +20 389132 398077 4 3 0.566831 0.656941 0.737884 0.454010 0.489712 0.498826 +20 398078 422417 13 1 0.608469 0.656020 0.689490 0.444038 0.488994 0.498704 +20 422418 428970 3 2 0.653730 0.744561 0.857407 0.450532 0.485500 0.497520 +20 464335 1209491 51 6 0.625960 0.646304 0.665655 0.455987 0.484154 0.498488 +20 1210274 1215085 3 2 0.415255 0.496718 0.602324 0.467127 0.490451 0.497934 +20 1218438 1373576 24 1 0.670675 0.701721 0.741305 0.466832 0.487369 0.499110 +20 1424143 1426618 2 2 0.549623 0.670839 0.798850 0.454399 0.484792 0.496795 +20 1432887 1515339 16 2 0.653477 0.694731 0.731888 0.464329 0.483343 0.496628 +20 1517550 1552935 6 6 0.728388 0.778619 0.853447 0.427385 0.475752 0.494109 +20 1558733 1617403 5 6 0.434020 0.509677 0.596605 0.426049 0.471795 0.494150 +20 1629447 2474793 54 6 0.597024 0.617708 0.654253 0.449793 0.486371 0.498833 +20 2517017 2518214 2 2 0.483187 0.624226 0.713785 0.462400 0.477034 0.495237 +20 2538851 2597102 13 3 0.699476 0.728465 0.778510 0.461209 0.484082 0.497802 +20 2597467 2622249 5 8 0.569809 0.655909 0.738855 0.464151 0.487026 0.499240 +20 2633368 2796137 50 1 0.570440 0.597928 0.616003 0.456669 0.486679 0.497837 +20 2796138 2796673 1 1 0.467547 0.638188 0.769026 0.456267 0.492618 0.498553 +20 2796731 3196210 84 10 0.622314 0.642648 0.661420 0.440870 0.490205 0.498278 +20 3198912 3199530 1 1 0.409606 0.604688 0.747195 0.445957 0.484184 0.498070 +20 3202236 3680358 120 12 0.632795 0.647795 0.665503 0.447971 0.484350 0.498621 +20 3681738 3686841 4 6 0.526923 0.597767 0.674034 0.463716 0.491703 0.498661 20 3686842 3719616 3 0 0.536630 0.653823 0.739464 NaN NaN NaN -20 3721211 3721811 1 1 0.432850 0.597559 0.746468 0.460657 0.488252 0.499192 -20 3722680 4055845 60 5 0.603406 0.625085 0.653040 0.456796 0.489967 0.497601 -20 4155452 4162680 3 3 0.436800 0.537025 0.647765 0.449710 0.486831 0.498523 -20 4162681 4866807 28 8 0.579587 0.618340 0.662348 0.454679 0.484096 0.497551 -20 4879950 4880610 1 1 -37.542394 0.615667 0.804203 0.442931 0.487704 0.498279 -20 4882837 5897817 53 12 0.621204 0.645923 0.672654 0.443534 0.481419 0.498393 -20 5902730 5905947 2 2 0.558012 0.672789 0.758048 0.452608 0.477251 0.497889 -20 5918930 8609330 78 13 0.644667 0.664414 0.675468 0.450091 0.481151 0.495678 -20 8626498 8639603 6 3 0.688078 0.738301 0.809159 0.460188 0.484696 0.498440 -20 8665328 8771160 23 14 0.693840 0.739937 0.766986 0.418592 0.486230 0.497522 -20 8772985 9416547 29 3 0.854021 0.881668 0.918282 0.457301 0.486102 0.497722 -20 9417398 9425142 3 3 0.568999 0.663009 0.771887 0.450309 0.483783 0.498145 +20 3721211 3721811 1 1 0.432850 0.597559 0.746468 0.464964 0.488067 0.497583 +20 3722680 4055845 60 5 0.603406 0.625085 0.653040 0.460892 0.487675 0.498089 +20 4155452 4162680 3 3 0.436800 0.537025 0.647765 0.441819 0.488251 0.498867 +20 4162681 4866807 28 8 0.579587 0.618340 0.662348 0.463075 0.491977 0.498911 +20 4879950 4880610 1 1 -37.542394 0.615667 0.804203 0.467812 0.489467 0.499040 +20 4882837 5897817 53 12 0.621204 0.645923 0.672654 0.453715 0.480379 0.497693 +20 5902730 5905947 2 2 0.558012 0.672789 0.758048 0.441726 0.483849 0.496172 +20 5918930 8609330 78 13 0.644667 0.664414 0.675468 0.470237 0.484593 0.498104 +20 8626498 8639603 6 3 0.688078 0.738301 0.809159 0.459411 0.494015 0.499189 +20 8665328 8771160 23 14 0.693840 0.739937 0.766986 0.446536 0.487213 0.496601 +20 8772985 9416547 29 3 0.854021 0.881668 0.918282 0.472807 0.489842 0.497948 +20 9417398 9425142 3 3 0.568999 0.663009 0.771887 0.443315 0.487139 0.499397 20 9433743 9499127 12 0 0.844885 0.894935 0.932438 NaN NaN NaN -20 9510038 9510719 1 1 -42.234544 0.781574 0.983984 0.431922 0.474307 0.491828 -20 9519858 10025443 11 2 0.816088 0.870296 0.920325 0.458978 0.485296 0.497405 -20 10025971 10032789 3 4 0.849116 0.925941 1.054150 0.437493 0.480054 0.499230 -20 10033509 10628978 37 3 0.847368 0.873779 0.899660 0.449639 0.487719 0.497859 -20 10628979 10629540 1 2 0.630511 0.828540 0.982925 0.462413 0.490165 0.498911 -20 10629541 13055397 20 1 0.849101 0.889400 0.926613 0.423254 0.481949 0.497124 -20 13071480 13091116 3 4 0.874972 0.944811 1.020779 0.408779 0.484474 0.497597 -20 13097902 13768250 40 1 0.854831 0.879653 0.906136 0.440968 0.484188 0.496410 -20 13768984 13769550 1 1 -3.480082 0.651350 0.843135 0.455241 0.484641 0.497044 -20 13773555 14067121 34 4 0.796034 0.818948 0.850134 0.436796 0.488863 0.499117 -20 14305952 14308404 1 2 -29.708743 0.886004 1.204083 0.457324 0.489595 0.498755 -20 14473874 16721902 50 3 0.897186 0.915981 0.937491 0.465750 0.483117 0.494326 -20 16728796 16730907 3 3 1.046724 1.147365 1.233400 0.429276 0.483001 0.495996 +20 9510038 9510719 1 1 -42.234544 0.781574 0.983984 0.453249 0.484564 0.497427 +20 9519858 10025443 11 2 0.816088 0.870296 0.920325 0.458572 0.483918 0.496565 +20 10025971 10032789 3 4 0.849116 0.925941 1.054150 0.416059 0.472763 0.495752 +20 10033509 10628978 37 3 0.847368 0.873779 0.899660 0.461706 0.485788 0.497144 +20 10628979 10629540 1 2 0.630511 0.828540 0.982925 0.451605 0.484933 0.499082 +20 10629541 13055397 20 1 0.849101 0.889400 0.926613 0.464925 0.486610 0.496707 +20 13071480 13091116 3 4 0.874972 0.944811 1.020779 0.461463 0.484479 0.497773 +20 13097902 13768250 40 1 0.854831 0.879653 0.906136 0.424272 0.479853 0.495924 +20 13768984 13769550 1 1 -3.480082 0.651350 0.843135 0.473802 0.485727 0.499085 +20 13773555 14067121 34 4 0.796034 0.818948 0.850134 0.438230 0.479576 0.498372 +20 14305952 14308404 1 2 -29.708743 0.886004 1.204083 0.463854 0.485867 0.497632 +20 14473874 16721902 50 3 0.897186 0.915981 0.937491 0.443318 0.488175 0.499073 +20 16728796 16730907 3 3 1.046724 1.147365 1.233400 0.427898 0.481790 0.496883 20 16731489 17462967 13 0 0.885677 0.927447 0.962016 NaN NaN NaN -20 17474468 17492965 4 5 0.767899 0.848583 0.914066 0.454999 0.485977 0.496023 -20 17495115 17971079 46 3 0.884311 0.906667 0.930729 0.459715 0.489877 0.497739 -20 18005029 18022619 2 2 0.745948 0.881739 1.066532 0.462521 0.487925 0.498529 -20 18037928 18429964 34 6 0.909837 0.938251 0.983586 0.448821 0.486737 0.498635 -20 18432248 18433633 2 2 0.797740 0.906709 1.047442 0.447009 0.482801 0.498572 -20 18434125 18795182 47 2 0.843838 0.869582 0.891032 0.474411 0.488506 0.498345 -20 18805660 19560970 5 4 0.838289 0.888106 0.939910 0.457942 0.490592 0.496397 -20 19565364 19937701 16 1 0.938640 0.997341 1.050233 0.449407 0.488675 0.497119 -20 19941094 19956681 4 3 0.801671 0.899010 0.994614 0.453786 0.481332 0.495590 -20 19970400 19971205 1 1 0.676305 0.828829 1.005478 0.465328 0.487769 0.496609 -20 19972562 20031518 23 1 0.952952 0.984219 1.020643 0.459628 0.488902 0.499259 -20 20032685 20050660 4 9 1.043540 1.136218 1.215523 0.408692 0.473176 0.496212 +20 17474468 17492965 4 5 0.767899 0.848583 0.914066 0.444561 0.475834 0.493753 +20 17495115 17971079 46 3 0.884311 0.906667 0.930729 0.457639 0.487817 0.496349 +20 18005029 18022619 2 2 0.745948 0.881739 1.066532 0.466782 0.490738 0.497924 +20 18037928 18429964 34 6 0.909837 0.938251 0.983586 0.457683 0.488208 0.497766 +20 18432248 18433633 2 2 0.797740 0.906709 1.047442 0.461686 0.488618 0.498365 +20 18434125 18795182 47 2 0.843838 0.869582 0.891032 0.421064 0.480900 0.496960 +20 18805660 19560970 5 4 0.838289 0.888106 0.939910 0.391508 0.471715 0.494492 +20 19565364 19937701 16 1 0.938640 0.997341 1.050233 0.462606 0.489236 0.498040 +20 19941094 19956681 4 3 0.801671 0.899010 0.994614 0.452674 0.486359 0.496118 +20 19970400 19971205 1 1 0.676305 0.828829 1.005478 0.465164 0.486897 0.499308 +20 19972562 20031518 23 1 0.952952 0.984219 1.020643 0.467670 0.489415 0.498455 +20 20032685 20050660 4 9 1.043540 1.136218 1.215523 0.435481 0.483225 0.498008 20 20051247 20066430 5 0 0.949809 1.022599 1.079028 NaN NaN NaN -20 20071237 20168952 8 6 0.982955 1.045001 1.100870 0.447426 0.486084 0.498203 +20 20071237 20168952 8 6 0.982955 1.045001 1.100870 0.437489 0.476862 0.498173 20 20171735 20232659 6 0 0.868100 0.940002 0.994605 NaN NaN NaN -20 20243349 20244026 1 1 0.592460 0.869890 1.027119 0.438122 0.484322 0.498544 -20 20245809 21117443 49 1 0.902107 0.925627 0.942873 0.408751 0.485730 0.497850 -20 21125956 21143319 2 3 0.758861 0.877973 0.982262 0.401704 0.468562 0.493244 -20 21143320 21335762 29 1 0.918967 0.950775 0.975699 0.438312 0.479148 0.497020 -20 21336467 21337020 1 1 0.951806 1.119504 1.347018 0.432382 0.474451 0.493147 +20 20243349 20244026 1 1 0.592460 0.869890 1.027119 0.460877 0.486567 0.497700 +20 20245809 21117443 49 1 0.902107 0.925627 0.942873 0.451987 0.482172 0.496747 +20 21125956 21143319 2 3 0.758861 0.877973 0.982262 0.444945 0.486592 0.498343 +20 21143320 21335762 29 1 0.918967 0.950775 0.975699 0.450446 0.488195 0.497834 +20 21336467 21337020 1 1 0.951806 1.119504 1.347018 0.433674 0.485857 0.497618 20 21337021 23335353 23 0 0.839495 0.886394 0.931221 NaN NaN NaN -20 23344770 23347986 2 2 0.784379 0.895208 0.996667 0.460554 0.484914 0.496191 -20 23349148 23476803 23 3 0.930992 0.973755 1.008134 0.450212 0.480663 0.497300 -20 23528151 23549339 6 8 0.918465 0.996926 1.107777 0.434165 0.469544 0.496407 -20 23583896 23804992 12 4 0.888770 0.959020 1.015016 0.455701 0.483432 0.499233 -20 23805596 23807549 2 2 0.974566 1.124046 1.262117 0.437890 0.478817 0.495153 -20 23856574 25058753 44 9 1.019328 1.037878 1.070047 0.449475 0.486774 0.497735 -20 25059122 25059830 1 1 0.929910 1.107691 1.338866 0.410701 0.477186 0.496561 -20 25059831 25250095 19 2 1.047704 1.076587 1.107808 0.442719 0.486679 0.497750 -20 25251768 25269459 12 15 1.032362 1.081958 1.157877 0.367954 0.476942 0.498365 -20 25270235 25398090 24 12 0.991888 1.033597 1.086257 0.362618 0.489197 0.497602 -20 25398490 25399083 1 1 1.218677 1.390608 1.553730 0.437730 0.476120 0.495946 -20 25405596 25470212 15 11 1.072084 1.114885 1.172830 0.438331 0.484138 0.495441 +20 23344770 23347986 2 2 0.784379 0.895208 0.996667 0.457406 0.486262 0.496485 +20 23349148 23476803 23 3 0.930992 0.973755 1.008134 0.456870 0.480390 0.497556 +20 23528151 23549339 6 8 0.918465 0.996926 1.107777 0.447500 0.481803 0.495308 +20 23583896 23804992 12 4 0.888770 0.959020 1.015016 0.448333 0.490936 0.498522 +20 23805596 23807549 2 2 0.974566 1.124046 1.262117 0.456094 0.487877 0.497049 +20 23856574 25058753 44 9 1.019328 1.037878 1.070047 0.435547 0.481043 0.496653 +20 25059122 25059830 1 1 0.929910 1.107691 1.338866 0.439596 0.473385 0.494929 +20 25059831 25250095 19 2 1.047704 1.076587 1.107808 0.451161 0.487525 0.495906 +20 25251768 25269459 12 15 1.032362 1.081958 1.157877 0.328503 0.432552 0.497541 +20 25270235 25398090 24 12 0.991888 1.033597 1.086257 0.388162 0.473173 0.492448 +20 25398490 25399083 1 1 1.218677 1.390608 1.553730 0.445157 0.482511 0.498461 +20 25405596 25470212 15 11 1.072084 1.114885 1.172830 0.414419 0.487009 0.498430 20 25470260 25520944 12 0 1.021558 1.075534 1.145459 NaN NaN NaN -20 25596310 25829597 8 6 1.098352 1.234171 1.333143 0.397657 0.462887 0.497475 +20 25596310 25829597 8 6 1.098352 1.234171 1.333143 0.368155 0.434792 0.491948 20 26061550 26072430 3 0 0.346585 0.476691 0.592981 NaN NaN NaN -20 26083858 30126381 33 7 1.128613 1.155134 1.189744 0.433831 0.483528 0.496667 -20 30132499 31644756 283 1 1.742213 1.754708 1.770965 0.436856 0.475611 0.496588 -20 31646933 31657031 7 5 1.486861 1.580170 1.653185 0.444664 0.471426 0.495946 -20 31657443 31673054 9 1 1.587447 1.648094 1.701662 0.457106 0.488117 0.497674 -20 31673576 31677070 2 2 1.367535 1.437547 1.576903 0.454234 0.482689 0.498518 +20 26083858 30126381 33 7 1.128613 1.155134 1.189744 0.423524 0.480248 0.498177 +20 30132499 31644756 283 1 1.742213 1.754708 1.770965 0.452846 0.489331 0.498481 +20 31646933 31657031 7 5 1.486861 1.580170 1.653185 0.463974 0.487154 0.499090 +20 31657443 31673054 9 1 1.587447 1.648094 1.701662 0.467945 0.486271 0.499540 +20 31673576 31677070 2 2 1.367535 1.437547 1.576903 0.464843 0.486571 0.495059 20 31677071 31805721 18 0 1.636028 1.675802 1.722761 NaN NaN NaN -20 31811366 31828443 9 5 1.547919 1.623082 1.678306 0.406299 0.471450 0.496816 -20 31828940 32700168 105 1 1.627604 1.651674 1.666737 0.450647 0.488298 0.497500 +20 31811366 31828443 9 5 1.547919 1.623082 1.678306 0.399502 0.485225 0.497984 +20 31828940 32700168 105 1 1.627604 1.651674 1.666737 0.452951 0.486761 0.498920 20 32847930 32981939 14 0 0.981523 1.032955 1.097114 NaN NaN NaN -20 32996206 32996850 1 1 -44.144161 -23.442478 6.075372 0.441531 0.486796 0.498200 -20 33000070 34218538 286 6 1.106545 1.121904 1.136853 0.376880 0.464391 0.495483 -20 34218539 34243516 10 4 1.059556 1.117523 1.199210 0.425429 0.472382 0.492492 -20 34246603 34302563 22 2 1.156840 1.183857 1.209517 0.459783 0.485626 0.498282 -20 34304411 34501521 25 16 1.133764 1.161469 1.186708 0.446864 0.490285 0.499201 -20 34501704 34505357 2 2 1.023992 1.129776 1.243862 0.457191 0.492502 0.498569 -20 34505358 35065005 53 8 1.093915 1.118065 1.140264 0.462744 0.486942 0.498102 -20 35067906 35068523 1 1 0.841778 1.092655 1.330495 0.448476 0.485228 0.498517 -20 35070879 35468094 64 1 1.090973 1.110308 1.127704 0.450405 0.484837 0.498576 -20 35490811 35491997 1 1 0.881239 1.050916 1.252413 0.461223 0.485843 0.497804 +20 32996206 32996850 1 1 -44.144161 -23.442478 6.075372 0.451163 0.486603 0.497835 +20 33000070 34218538 286 6 1.106545 1.121904 1.136853 0.412121 0.474008 0.497931 +20 34218539 34243516 10 4 1.059556 1.117523 1.199210 0.448864 0.482595 0.494705 +20 34246603 34302563 22 2 1.156840 1.183857 1.209517 0.430640 0.488297 0.497836 +20 34304411 34501521 25 16 1.133764 1.161469 1.186708 0.448843 0.479987 0.495198 +20 34501704 34505357 2 2 1.023992 1.129776 1.243862 0.465768 0.486219 0.497196 +20 34505358 35065005 53 8 1.093915 1.118065 1.140264 0.430981 0.478559 0.497583 +20 35067906 35068523 1 1 0.841778 1.092655 1.330495 0.454404 0.483187 0.498185 +20 35070879 35468094 64 1 1.090973 1.110308 1.127704 0.458199 0.488719 0.499301 +20 35490811 35491997 1 1 0.881239 1.050916 1.252413 0.475227 0.492415 0.499002 20 35504327 35555907 18 0 0.992799 1.064285 1.109742 NaN NaN NaN -20 35558912 35559530 1 1 0.920315 1.079069 1.257841 0.434159 0.476086 0.495184 -20 35563181 35757820 38 4 0.936493 0.973360 1.002878 0.455034 0.485798 0.498183 -20 35765963 35769967 2 2 0.774601 0.951250 1.057507 0.426728 0.480781 0.496349 -20 35771870 35833556 14 4 0.942110 0.983035 1.026967 0.467737 0.488991 0.496488 -20 35835425 35838822 2 4 0.738773 0.890097 1.000615 0.418123 0.476152 0.495263 -20 35841912 36784743 74 11 0.909883 0.932272 0.944864 0.433347 0.482283 0.497554 -20 36789571 36846128 5 6 0.809076 0.875575 0.946742 0.453502 0.488412 0.499434 -20 36846395 36946389 16 5 0.901904 0.935909 0.990166 0.433242 0.475947 0.494414 -20 36946564 36963147 8 5 0.851695 0.915816 0.982273 0.454641 0.491101 0.498921 -20 36963749 37268279 65 6 0.951057 0.971139 0.999376 0.465846 0.485789 0.497945 -20 37272097 37279609 7 11 0.829791 0.897668 0.977499 0.441992 0.487394 0.499113 -20 37353117 37667438 46 6 0.920441 0.944903 0.968250 0.449098 0.480317 0.495612 -20 39316268 45878435 698 90 0.116500 0.125577 0.134277 0.476517 0.491417 0.499391 -20 45890779 45891424 1 1 -0.195750 -0.083534 0.091984 0.468558 0.481017 0.496755 -20 45904807 62905205 1317 284 0.092283 0.099282 0.107203 0.484183 0.492933 0.498847 +20 35558912 35559530 1 1 0.920315 1.079069 1.257841 0.422901 0.486827 0.497734 +20 35563181 35757820 38 4 0.936493 0.973360 1.002878 0.456153 0.485114 0.497181 +20 35765963 35769967 2 2 0.774601 0.951250 1.057507 0.452966 0.486821 0.498353 +20 35771870 35833556 14 4 0.942110 0.983035 1.026967 0.464561 0.489627 0.499305 +20 35835425 35838822 2 4 0.738773 0.890097 1.000615 0.423247 0.474563 0.496526 +20 35841912 36784743 74 11 0.909883 0.932272 0.944864 0.432027 0.489073 0.498199 +20 36789571 36846128 5 6 0.809076 0.875575 0.946742 0.440550 0.478764 0.494482 +20 36846395 36946389 16 5 0.901904 0.935909 0.990166 0.455391 0.478252 0.496626 +20 36946564 36963147 8 5 0.851695 0.915816 0.982273 0.463448 0.490635 0.498627 +20 36963749 37268279 65 6 0.951057 0.971139 0.999376 0.449183 0.482902 0.497956 +20 37272097 37279609 7 11 0.829791 0.897668 0.977499 0.454187 0.480527 0.492579 +20 37353117 37667438 46 6 0.920441 0.944903 0.968250 0.455150 0.487227 0.497249 +20 39316268 45878435 698 90 0.116500 0.125577 0.134277 0.473332 0.491645 0.498786 +20 45890779 45891424 1 1 -0.195750 -0.083534 0.091984 0.447779 0.488067 0.498147 +20 45904807 62905205 1317 284 0.092283 0.099282 0.107203 0.488598 0.494875 0.499061 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.af.igv.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.af.igv.seg index 10e268ac898..727cdadd21f 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.af.igv.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.af.igv.seg @@ -1,10 +1,10 @@ Sample Chromosome Start End Num_Probes Segment_Mean -SM-74P4M-1 20 138125 1552430 49 0.310482 -SM-74P4M-1 20 1559330 2779257 34 0.331388 -SM-74P4M-1 20 2796471 3838441 33 0.330721 -SM-74P4M-1 20 3870124 13060331 76 0.315462 -SM-74P4M-1 20 13071871 25841650 149 0.262686 -SM-74P4M-1 20 25846283 31025231 23 0.340765 -SM-74P4M-1 20 31647126 34782171 52 0.242045 -SM-74P4M-1 20 35491033 37396262 55 0.301540 -SM-74P4M-1 20 38354742 62871232 356 0.496904 +SM-74P4M-1 20 138125 1552430 49 0.313709 +SM-74P4M-1 20 1559330 2779257 34 0.340767 +SM-74P4M-1 20 2796471 3838441 33 0.333826 +SM-74P4M-1 20 3870124 17460005 94 0.310069 +SM-74P4M-1 20 17474690 25841650 131 0.254511 +SM-74P4M-1 20 25846283 31025231 23 0.330888 +SM-74P4M-1 20 31647126 33879478 28 0.222819 +SM-74P4M-1 20 34218673 37396262 79 0.292410 +SM-74P4M-1 20 38354742 62871232 356 0.494893 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.igv.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.igv.seg index 37cb07c9193..f0376bdda14 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.igv.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.igv.seg @@ -2,9 +2,9 @@ Sample Chromosome Start End Num_Probes Segment_Mean SM-74P4M-1 20 138125 1552430 0 NaN SM-74P4M-1 20 1559330 2779257 0 NaN SM-74P4M-1 20 2796471 3838441 0 NaN -SM-74P4M-1 20 3870124 13060331 0 NaN -SM-74P4M-1 20 13071871 25841650 0 NaN +SM-74P4M-1 20 3870124 17460005 0 NaN +SM-74P4M-1 20 17474690 25841650 0 NaN SM-74P4M-1 20 25846283 31025231 0 NaN -SM-74P4M-1 20 31647126 34782171 0 NaN -SM-74P4M-1 20 35491033 37396262 0 NaN +SM-74P4M-1 20 31647126 33879478 0 NaN +SM-74P4M-1 20 34218673 37396262 0 NaN SM-74P4M-1 20 38354742 62871232 0 NaN diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.seg index 2db501a0499..494695f2f5e 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.cr.seg @@ -5,9 +5,9 @@ CONTIG START END NUM_POINTS_COPY_RATIO MEAN_LOG2_COPY_RATIO 20 138125 1552430 0 NaN 20 1559330 2779257 0 NaN 20 2796471 3838441 0 NaN -20 3870124 13060331 0 NaN -20 13071871 25841650 0 NaN +20 3870124 17460005 0 NaN +20 17474690 25841650 0 NaN 20 25846283 31025231 0 NaN -20 31647126 34782171 0 NaN -20 35491033 37396262 0 NaN +20 31647126 33879478 0 NaN +20 34218673 37396262 0 NaN 20 38354742 62871232 0 NaN diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.af.param index 04f1b0882cd..c01d4e5c8e2 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.065001 1.070465 1.073150 1.077038 1.078562 1.082153 1.087074 1.089658 1.091769 -BIAS_VARIANCE 0.026059 0.027576 0.029252 0.030330 0.032522 0.034146 0.034816 0.036562 0.039798 -OUTLIER_PROBABILITY 0.055326 0.064962 0.071506 0.074164 0.081333 0.085060 0.089944 0.095421 0.103508 +MEAN_BIAS 1.064979 1.069976 1.072287 1.074434 1.075888 1.077744 1.079786 1.081268 1.087864 +BIAS_VARIANCE 0.023228 0.025380 0.028014 0.030125 0.031415 0.032020 0.034953 0.036126 0.038595 +OUTLIER_PROBABILITY 0.053104 0.068030 0.072079 0.077273 0.083907 0.086835 0.092636 0.101832 0.116526 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.seg index f59b83c9932..9d423b511c8 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelBegin.seg @@ -2,49 +2,49 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 138125 139576 0 5 NaN NaN NaN 0.307582 0.346773 0.438145 -20 168466 377226 0 18 NaN NaN NaN 0.330926 0.347455 0.367309 -20 389456 402921 0 4 NaN NaN NaN 0.318461 0.352416 0.395247 -20 425606 1458504 0 14 NaN NaN NaN 0.308598 0.335077 0.363829 -20 1517979 1552430 0 8 NaN NaN NaN 0.311232 0.343111 0.373709 -20 1559330 1592312 0 6 NaN NaN NaN 0.447784 0.484865 0.497913 -20 1600524 1616892 0 6 NaN NaN NaN 0.336560 0.362889 0.396577 -20 1895889 1896060 0 3 NaN NaN NaN 0.460422 0.486434 0.498040 -20 2056358 2517825 0 6 NaN NaN NaN 0.353765 0.385550 0.448352 -20 2552805 2621998 0 10 NaN NaN NaN 0.311485 0.345045 0.369987 -20 2633380 2779257 0 3 NaN NaN NaN 0.435613 0.479867 0.496273 -20 2796471 3838441 0 33 NaN NaN NaN 0.325125 0.334590 0.351038 -20 3870124 4055656 0 2 NaN NaN NaN 0.442941 0.478607 0.498017 -20 4155948 4843609 0 7 NaN NaN NaN 0.377582 0.399804 0.432501 -20 4880308 5482307 0 15 NaN NaN NaN 0.329403 0.351695 0.371260 -20 5528518 6100230 0 13 NaN NaN NaN 0.333372 0.350985 0.371450 -20 6194421 6195664 0 2 NaN NaN NaN 0.374732 0.463121 0.494839 -20 7866261 8703145 0 9 NaN NaN NaN 0.309391 0.343965 0.369563 -20 8707900 8707927 0 2 NaN NaN NaN 0.407690 0.463100 0.495038 -20 8737734 8770932 0 7 NaN NaN NaN 0.277306 0.307132 0.346704 -20 8773096 10032413 0 11 NaN NaN NaN 0.274085 0.305374 0.329942 -20 10329888 10629525 0 6 NaN NaN NaN 0.301127 0.338250 0.482567 -20 13054633 13060331 0 2 NaN NaN NaN 0.384441 0.478201 0.496186 -20 13071871 16730522 0 15 NaN NaN NaN 0.289290 0.309515 0.322158 -20 17459905 17460005 0 3 NaN NaN NaN 0.363929 0.400084 0.456407 -20 17474690 18446024 0 22 NaN NaN NaN 0.283351 0.300435 0.319628 -20 18806046 22714612 0 34 NaN NaN NaN 0.257412 0.268365 0.283623 -20 23345844 25011423 0 24 NaN NaN NaN 0.259794 0.272567 0.286583 -20 25038484 25255415 0 6 NaN NaN NaN 0.228080 0.250970 0.274484 -20 25257260 25282944 0 21 NaN NaN NaN 0.234277 0.251599 0.265177 -20 25288505 25398876 0 5 NaN NaN NaN 0.246085 0.274298 0.308657 -20 25434351 25470056 0 8 NaN NaN NaN 0.239093 0.255439 0.285947 -20 25597236 25838130 0 7 NaN NaN NaN 0.248991 0.278405 0.316273 -20 25838802 25841650 0 4 NaN NaN NaN 0.401315 0.463642 0.494459 -20 25846283 25900162 0 3 NaN NaN NaN 0.459655 0.485372 0.498836 -20 25900379 30037783 0 16 NaN NaN NaN 0.356864 0.458995 0.493495 -20 30053255 31025231 0 4 NaN NaN NaN 0.453880 0.490586 0.498220 -20 31647126 31677476 0 8 NaN NaN NaN 0.183849 0.205084 0.227366 -20 31811551 33879478 0 20 NaN NaN NaN 0.234299 0.244505 0.263952 -20 34218673 34782171 0 24 NaN NaN NaN 0.265194 0.282690 0.301982 -20 35491033 35869619 0 19 NaN NaN NaN 0.287529 0.305609 0.319915 -20 36022539 36937246 0 16 NaN NaN NaN 0.291775 0.304733 0.314173 -20 36946848 36965617 0 4 NaN NaN NaN 0.337974 0.452887 0.488730 -20 36989269 37279458 0 11 NaN NaN NaN 0.307611 0.334935 0.358422 -20 37377139 37396262 0 5 NaN NaN NaN 0.335320 0.369374 0.412040 -20 38354742 62871232 0 356 NaN NaN NaN 0.490904 0.495706 0.498569 +20 138125 139576 0 5 NaN NaN NaN 0.308293 0.339029 0.375295 +20 168466 377226 0 18 NaN NaN NaN 0.327036 0.348428 0.368614 +20 389456 402921 0 4 NaN NaN NaN 0.326848 0.352694 0.391841 +20 425606 1458504 0 14 NaN NaN NaN 0.314029 0.333098 0.347429 +20 1517979 1552430 0 8 NaN NaN NaN 0.308972 0.342341 0.366315 +20 1559330 1592312 0 6 NaN NaN NaN 0.444949 0.481833 0.496871 +20 1600524 1616892 0 6 NaN NaN NaN 0.326215 0.365393 0.397058 +20 1895889 1896060 0 3 NaN NaN NaN 0.452867 0.482624 0.497125 +20 2056358 2517825 0 6 NaN NaN NaN 0.351681 0.393595 0.448896 +20 2552805 2621998 0 10 NaN NaN NaN 0.320245 0.343728 0.374045 +20 2633380 2779257 0 3 NaN NaN NaN 0.419440 0.471906 0.493589 +20 2796471 3838441 0 33 NaN NaN NaN 0.323449 0.332979 0.346263 +20 3870124 4055656 0 2 NaN NaN NaN 0.435462 0.492200 0.498869 +20 4155948 4843609 0 7 NaN NaN NaN 0.367923 0.396476 0.435051 +20 4880308 5482307 0 15 NaN NaN NaN 0.327069 0.350866 0.375718 +20 5528518 6100230 0 13 NaN NaN NaN 0.336238 0.350827 0.371627 +20 6194421 6195664 0 2 NaN NaN NaN 0.438623 0.489070 0.497910 +20 7866261 8703145 0 9 NaN NaN NaN 0.314281 0.334591 0.369431 +20 8707900 8707927 0 2 NaN NaN NaN 0.390812 0.444791 0.490994 +20 8737734 8770932 0 7 NaN NaN NaN 0.278027 0.310407 0.356609 +20 8773096 10032413 0 11 NaN NaN NaN 0.285616 0.309854 0.336216 +20 10329888 10629525 0 6 NaN NaN NaN 0.295792 0.344451 0.488663 +20 13054633 13060331 0 2 NaN NaN NaN 0.350108 0.446891 0.492924 +20 13071871 16730522 0 15 NaN NaN NaN 0.288995 0.308153 0.334858 +20 17459905 17460005 0 3 NaN NaN NaN 0.351944 0.390735 0.477194 +20 17474690 18446024 0 22 NaN NaN NaN 0.288469 0.304401 0.322490 +20 18806046 22714612 0 34 NaN NaN NaN 0.251695 0.269344 0.282756 +20 23345844 25011423 0 24 NaN NaN NaN 0.255886 0.269573 0.283058 +20 25038484 25255415 0 6 NaN NaN NaN 0.228550 0.243600 0.267038 +20 25257260 25282944 0 21 NaN NaN NaN 0.238815 0.249759 0.265142 +20 25288505 25398876 0 5 NaN NaN NaN 0.257330 0.459628 0.494389 +20 25434351 25470056 0 8 NaN NaN NaN 0.236346 0.260178 0.280356 +20 25597236 25838130 0 7 NaN NaN NaN 0.245072 0.277076 0.322202 +20 25838802 25841650 0 4 NaN NaN NaN 0.378249 0.429661 0.493250 +20 25846283 25900162 0 3 NaN NaN NaN 0.453579 0.481617 0.497553 +20 25900379 30037783 0 16 NaN NaN NaN 0.339240 0.455992 0.497208 +20 30053255 31025231 0 4 NaN NaN NaN 0.432501 0.486036 0.498669 +20 31647126 31677476 0 8 NaN NaN NaN 0.186306 0.203736 0.228313 +20 31811551 33879478 0 20 NaN NaN NaN 0.238200 0.249918 0.269297 +20 34218673 34782171 0 24 NaN NaN NaN 0.268272 0.280104 0.295469 +20 35491033 35869619 0 19 NaN NaN NaN 0.283399 0.300067 0.318457 +20 36022539 36937246 0 16 NaN NaN NaN 0.287923 0.304225 0.319391 +20 36946848 36965617 0 4 NaN NaN NaN 0.347528 0.431325 0.489126 +20 36989269 37279458 0 11 NaN NaN NaN 0.304763 0.330131 0.362966 +20 37377139 37396262 0 5 NaN NaN NaN 0.350772 0.372221 0.411310 +20 38354742 62871232 0 356 NaN NaN NaN 0.485004 0.495130 0.498904 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.af.param index 62e366134cb..b902d4b5ecc 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.071219 1.074761 1.079743 1.084029 1.087154 1.089152 1.090474 1.093839 1.098595 -BIAS_VARIANCE 0.027265 0.028460 0.030686 0.032551 0.033488 0.035178 0.037179 0.038672 0.039563 -OUTLIER_PROBABILITY 0.033591 0.038581 0.040129 0.042728 0.045875 0.048124 0.052671 0.055083 0.057366 +MEAN_BIAS 1.060195 1.070838 1.072904 1.075003 1.078570 1.080291 1.082617 1.085703 1.091312 +BIAS_VARIANCE 0.023671 0.026876 0.028157 0.029099 0.029852 0.031301 0.031531 0.033205 0.034780 +OUTLIER_PROBABILITY 0.032842 0.038724 0.039614 0.042207 0.047856 0.054548 0.057929 0.061304 0.069610 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.seg index 69f57fb4052..b18f53170eb 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac-nac.modelFinal.seg @@ -2,12 +2,12 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 138125 1552430 0 49 NaN NaN NaN 0.301656 0.310482 0.321020 -20 1559330 2779257 0 34 NaN NaN NaN 0.321121 0.331388 0.351097 -20 2796471 3838441 0 33 NaN NaN NaN 0.311604 0.330721 0.346451 -20 3870124 13060331 0 76 NaN NaN NaN 0.295467 0.315462 0.329249 -20 13071871 25841650 0 149 NaN NaN NaN 0.253458 0.262686 0.277703 -20 25846283 31025231 0 23 NaN NaN NaN 0.283981 0.340765 0.421111 -20 31647126 34782171 0 52 NaN NaN NaN 0.222884 0.242045 0.262660 -20 35491033 37396262 0 55 NaN NaN NaN 0.289958 0.301540 0.314308 -20 38354742 62871232 0 356 NaN NaN NaN 0.488923 0.496904 0.499041 +20 138125 1552430 0 49 NaN NaN NaN 0.298624 0.313709 0.326040 +20 1559330 2779257 0 34 NaN NaN NaN 0.320567 0.340767 0.361811 +20 2796471 3838441 0 33 NaN NaN NaN 0.319240 0.333826 0.348229 +20 3870124 17460005 0 94 NaN NaN NaN 0.301268 0.310069 0.321773 +20 17474690 25841650 0 131 NaN NaN NaN 0.248601 0.254511 0.262415 +20 25846283 31025231 0 23 NaN NaN NaN 0.268522 0.330888 0.392249 +20 31647126 33879478 0 28 NaN NaN NaN 0.206467 0.222819 0.239564 +20 34218673 37396262 0 79 NaN NaN NaN 0.282908 0.292410 0.301721 +20 38354742 62871232 0 356 NaN NaN NaN 0.489260 0.494893 0.499112 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.af.igv.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.af.igv.seg index 6376f02f30f..1c1bd11f5d6 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.af.igv.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.af.igv.seg @@ -1,3 +1,5 @@ Sample Chromosome Start End Num_Probes Segment_Mean -SM-74P4M-1 20 138125 37396262 743 0.303751 -SM-74P4M-1 20 37404951 62904542 483 0.496547 +SM-74P4M-1 20 138125 18446024 348 0.329600 +SM-74P4M-1 20 18806046 23807028 80 0.274873 +SM-74P4M-1 20 23842032 37396262 315 0.283610 +SM-74P4M-1 20 37404951 62904542 483 0.496253 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.igv.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.igv.seg index 236905bb2f6..fb086d4506f 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.igv.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.igv.seg @@ -1,3 +1,5 @@ Sample Chromosome Start End Num_Probes Segment_Mean -SM-74P4M-1 20 138125 37396262 0 NaN +SM-74P4M-1 20 138125 18446024 0 NaN +SM-74P4M-1 20 18806046 23807028 0 NaN +SM-74P4M-1 20 23842032 37396262 0 NaN SM-74P4M-1 20 37404951 62904542 0 NaN diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.seg index 10dd4a7e87b..058b4585231 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.cr.seg @@ -2,5 +2,7 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO MEAN_LOG2_COPY_RATIO -20 138125 37396262 0 NaN +20 138125 18446024 0 NaN +20 18806046 23807028 0 NaN +20 23842032 37396262 0 NaN 20 37404951 62904542 0 NaN diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.af.param index 1019aba1e75..b6afaf39cf0 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.059231 1.073764 1.082538 1.091104 1.099210 1.107675 1.124835 1.142061 1.156225 -BIAS_VARIANCE 0.337549 0.355694 0.367646 0.371785 0.380377 0.397368 0.428090 0.446462 0.484917 -OUTLIER_PROBABILITY 0.009441 0.014040 0.016986 0.022264 0.027119 0.031235 0.034292 0.044029 0.047521 +MEAN_BIAS 1.090256 1.099481 1.109172 1.119249 1.124900 1.130002 1.142848 1.147598 1.158294 +BIAS_VARIANCE 0.386686 0.397327 0.403015 0.408885 0.416855 0.423181 0.443412 0.459471 0.483977 +OUTLIER_PROBABILITY 0.010941 0.012792 0.014915 0.022995 0.028332 0.030680 0.034429 0.039288 0.052753 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.seg index 037bb2eeeaf..dbc1d03ce2f 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelBegin.seg @@ -2,71 +2,71 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 138125 139576 0 5 NaN NaN NaN 0.402598 0.458690 0.489257 -20 168466 259156 0 13 NaN NaN NaN 0.466822 0.487670 0.497309 -20 259818 360306 0 8 NaN NaN NaN 0.408195 0.481713 0.498844 -20 368905 377226 0 3 NaN NaN NaN 0.452640 0.483733 0.496855 -20 389456 402921 0 4 NaN NaN NaN 0.439883 0.475307 0.494706 -20 425606 1285933 0 16 NaN NaN NaN 0.447089 0.479530 0.494184 -20 1417397 1896244 0 30 NaN NaN NaN 0.311661 0.374359 0.452280 -20 2036954 2552805 0 12 NaN NaN NaN 0.465444 0.488381 0.498581 -20 2593006 2621998 0 10 NaN NaN NaN 0.460950 0.485237 0.497729 -20 2624956 2779257 0 5 NaN NaN NaN 0.472348 0.492532 0.498647 -20 2796471 3838441 0 43 NaN NaN NaN 0.426428 0.485532 0.498052 -20 3858985 4055656 0 3 NaN NaN NaN 0.455864 0.484473 0.493982 -20 4138585 5068730 0 17 NaN NaN NaN 0.455611 0.484819 0.497596 -20 5159344 5482307 0 16 NaN NaN NaN 0.469968 0.489276 0.498473 -20 5528518 6100391 0 21 NaN NaN NaN 0.438522 0.487269 0.497109 -20 6194421 6798939 0 5 NaN NaN NaN 0.439933 0.487875 0.498050 -20 7866261 8625108 0 6 NaN NaN NaN 0.431096 0.480998 0.495239 -20 8625250 8639443 0 4 NaN NaN NaN 0.452132 0.490778 0.498100 -20 8665751 8703145 0 5 NaN NaN NaN 0.464700 0.486542 0.498388 -20 8707900 8742326 0 6 NaN NaN NaN 0.451179 0.482977 0.496961 -20 8755243 8770932 0 4 NaN NaN NaN 0.465033 0.490912 0.499373 -20 8773096 8773155 0 2 NaN NaN NaN 0.457933 0.481761 0.497595 -20 9108585 9376019 0 4 NaN NaN NaN 0.456850 0.490451 0.497941 -20 9417870 9510263 0 4 NaN NaN NaN 0.450214 0.471448 0.498505 -20 9624587 10024951 0 6 NaN NaN NaN 0.460308 0.487576 0.498544 -20 10026357 10032413 0 4 NaN NaN NaN 0.383593 0.482721 0.497445 -20 10329888 10393145 0 4 NaN NaN NaN 0.451740 0.483709 0.499096 -20 10426975 12113410 0 10 NaN NaN NaN 0.463732 0.483361 0.498896 -20 13054307 13074243 0 8 NaN NaN NaN 0.460254 0.480012 0.496881 -20 13090745 13845726 0 12 NaN NaN NaN 0.442980 0.480915 0.494221 -20 13872093 15967327 0 14 NaN NaN NaN 0.438024 0.478811 0.498088 -20 16729262 16730522 0 3 NaN NaN NaN 0.450649 0.487730 0.498631 -20 17028059 17460132 0 5 NaN NaN NaN 0.451572 0.474350 0.496080 -20 17474690 18327570 0 30 NaN NaN NaN 0.449200 0.480355 0.494322 -20 18429497 18429509 0 2 NaN NaN NaN 0.471028 0.486146 0.499530 -20 18432690 18446024 0 4 NaN NaN NaN 0.440645 0.487903 0.497942 -20 18806046 22714612 0 54 NaN NaN NaN 0.292756 0.326880 0.362237 -20 23345844 23807028 0 26 NaN NaN NaN 0.331547 0.481088 0.497273 -20 23842032 24938195 0 12 NaN NaN NaN 0.466514 0.492118 0.498481 -20 24939590 24959386 0 2 NaN NaN NaN 0.452099 0.485577 0.496816 -20 24993414 25011423 0 4 NaN NaN NaN 0.444157 0.485087 0.496990 -20 25038484 25059442 0 2 NaN NaN NaN 0.413650 0.477351 0.498441 -20 25190598 25286059 0 27 NaN NaN NaN 0.285450 0.335143 0.440814 -20 25288505 25424713 0 11 NaN NaN NaN 0.369824 0.438819 0.495847 -20 25434351 25470056 0 11 NaN NaN NaN 0.449188 0.484455 0.498332 -20 25597236 25755672 0 12 NaN NaN NaN 0.435903 0.485251 0.498070 -20 25756059 25841650 0 7 NaN NaN NaN 0.466450 0.489128 0.498105 -20 25846283 25900162 0 3 NaN NaN NaN 0.375980 0.459039 0.492023 -20 25900379 26134237 0 4 NaN NaN NaN 0.438987 0.484034 0.496397 -20 26138206 29449678 0 3 NaN NaN NaN 0.441430 0.490041 0.498022 -20 29516670 30037783 0 20 NaN NaN NaN 0.466100 0.486705 0.494903 -20 30053255 31025163 0 2 NaN NaN NaN 0.460866 0.491822 0.498690 -20 31647126 31676804 0 8 NaN NaN NaN 0.420384 0.476044 0.497287 -20 31811551 31826027 0 4 NaN NaN NaN 0.358847 0.479664 0.495201 -20 31828265 32330930 0 6 NaN NaN NaN 0.443005 0.484786 0.496641 -20 32340077 32710710 0 8 NaN NaN NaN 0.362631 0.428692 0.489771 -20 32935192 33006597 0 6 NaN NaN NaN 0.451948 0.485780 0.498018 -20 33030405 33150503 0 9 NaN NaN NaN 0.367456 0.441215 0.493514 -20 33178782 33882791 0 9 NaN NaN NaN 0.465225 0.486634 0.498055 -20 34218673 34782171 0 53 NaN NaN NaN 0.434052 0.476885 0.497838 -20 34974252 35869619 0 32 NaN NaN NaN 0.317636 0.363562 0.409450 -20 36022539 36944379 0 24 NaN NaN NaN 0.429298 0.476811 0.495536 -20 36946848 36965617 0 8 NaN NaN NaN 0.462958 0.483369 0.498854 -20 36989269 37291486 0 19 NaN NaN NaN 0.449951 0.479868 0.496863 -20 37366218 37396262 0 9 NaN NaN NaN 0.466491 0.484398 0.497237 -20 37404951 61444697 0 402 NaN NaN NaN 0.486953 0.494099 0.499177 -20 61444785 61453348 0 2 NaN NaN NaN 0.453088 0.473369 0.497858 -20 61453549 62904542 0 79 NaN NaN NaN 0.483483 0.491975 0.498251 +20 138125 139576 0 5 NaN NaN NaN 0.440798 0.479702 0.497599 +20 168466 259156 0 13 NaN NaN NaN 0.440494 0.488599 0.496826 +20 259818 360306 0 8 NaN NaN NaN 0.453937 0.487197 0.496708 +20 368905 377226 0 3 NaN NaN NaN 0.464748 0.490570 0.498988 +20 389456 402921 0 4 NaN NaN NaN 0.455061 0.484825 0.498592 +20 425606 1285933 0 16 NaN NaN NaN 0.455865 0.489725 0.497571 +20 1417397 1896244 0 30 NaN NaN NaN 0.359240 0.443016 0.492340 +20 2036954 2552805 0 12 NaN NaN NaN 0.476290 0.491636 0.499129 +20 2593006 2621998 0 10 NaN NaN NaN 0.464514 0.491787 0.498511 +20 2624956 2779257 0 5 NaN NaN NaN 0.435842 0.481883 0.497459 +20 2796471 3838441 0 43 NaN NaN NaN 0.444566 0.484396 0.496843 +20 3858985 4055656 0 3 NaN NaN NaN 0.456114 0.481442 0.499047 +20 4138585 5068730 0 17 NaN NaN NaN 0.467622 0.486902 0.498036 +20 5159344 5482307 0 16 NaN NaN NaN 0.465595 0.489608 0.499188 +20 5528518 6100391 0 21 NaN NaN NaN 0.465393 0.486382 0.497495 +20 6194421 6798939 0 5 NaN NaN NaN 0.461229 0.489925 0.498863 +20 7866261 8625108 0 6 NaN NaN NaN 0.437814 0.479370 0.496951 +20 8625250 8639443 0 4 NaN NaN NaN 0.458029 0.483078 0.495324 +20 8665751 8703145 0 5 NaN NaN NaN 0.451941 0.478444 0.496848 +20 8707900 8742326 0 6 NaN NaN NaN 0.443505 0.484670 0.497819 +20 8755243 8770932 0 4 NaN NaN NaN 0.424924 0.480004 0.497533 +20 8773096 8773155 0 2 NaN NaN NaN 0.466812 0.487851 0.498420 +20 9108585 9376019 0 4 NaN NaN NaN 0.447496 0.482482 0.497583 +20 9417870 9510263 0 4 NaN NaN NaN 0.443796 0.480370 0.498457 +20 9624587 10024951 0 6 NaN NaN NaN 0.463675 0.490557 0.498368 +20 10026357 10032413 0 4 NaN NaN NaN 0.420220 0.474803 0.496140 +20 10329888 10393145 0 4 NaN NaN NaN 0.458186 0.484965 0.497048 +20 10426975 12113410 0 10 NaN NaN NaN 0.459159 0.487033 0.495408 +20 13054307 13074243 0 8 NaN NaN NaN 0.422730 0.479198 0.495801 +20 13090745 13845726 0 12 NaN NaN NaN 0.459112 0.488688 0.498798 +20 13872093 15967327 0 14 NaN NaN NaN 0.469241 0.489931 0.498706 +20 16729262 16730522 0 3 NaN NaN NaN 0.458029 0.487920 0.498656 +20 17028059 17460132 0 5 NaN NaN NaN 0.445134 0.486996 0.498367 +20 17474690 18327570 0 30 NaN NaN NaN 0.442347 0.482205 0.496573 +20 18429497 18429509 0 2 NaN NaN NaN 0.442946 0.477879 0.497855 +20 18432690 18446024 0 4 NaN NaN NaN 0.461632 0.487390 0.497677 +20 18806046 22714612 0 54 NaN NaN NaN 0.311032 0.333551 0.365837 +20 23345844 23807028 0 26 NaN NaN NaN 0.316373 0.412002 0.489998 +20 23842032 24938195 0 12 NaN NaN NaN 0.460769 0.488878 0.497288 +20 24939590 24959386 0 2 NaN NaN NaN 0.447806 0.480658 0.498828 +20 24993414 25011423 0 4 NaN NaN NaN 0.450815 0.487411 0.498519 +20 25038484 25059442 0 2 NaN NaN NaN 0.394328 0.471879 0.495716 +20 25190598 25286059 0 27 NaN NaN NaN 0.281397 0.342294 0.492798 +20 25288505 25424713 0 11 NaN NaN NaN 0.398046 0.482640 0.497572 +20 25434351 25470056 0 11 NaN NaN NaN 0.378380 0.464472 0.493703 +20 25597236 25755672 0 12 NaN NaN NaN 0.442179 0.483619 0.498683 +20 25756059 25841650 0 7 NaN NaN NaN 0.448212 0.479904 0.497603 +20 25846283 25900162 0 3 NaN NaN NaN 0.341213 0.462817 0.496427 +20 25900379 26134237 0 4 NaN NaN NaN 0.455921 0.490608 0.498795 +20 26138206 29449678 0 3 NaN NaN NaN 0.439211 0.486197 0.497057 +20 29516670 30037783 0 20 NaN NaN NaN 0.456562 0.491430 0.498024 +20 30053255 31025163 0 2 NaN NaN NaN 0.444929 0.482061 0.499409 +20 31647126 31676804 0 8 NaN NaN NaN 0.430324 0.471191 0.495301 +20 31811551 31826027 0 4 NaN NaN NaN 0.409054 0.476855 0.492332 +20 31828265 32330930 0 6 NaN NaN NaN 0.431338 0.474485 0.495541 +20 32340077 32710710 0 8 NaN NaN NaN 0.356173 0.451210 0.497063 +20 32935192 33006597 0 6 NaN NaN NaN 0.468295 0.490199 0.496922 +20 33030405 33150503 0 9 NaN NaN NaN 0.402144 0.473202 0.497573 +20 33178782 33882791 0 9 NaN NaN NaN 0.456522 0.484069 0.498129 +20 34218673 34782171 0 53 NaN NaN NaN 0.429611 0.476297 0.495476 +20 34974252 35869619 0 32 NaN NaN NaN 0.336243 0.380496 0.458634 +20 36022539 36944379 0 24 NaN NaN NaN 0.428000 0.483294 0.498555 +20 36946848 36965617 0 8 NaN NaN NaN 0.440872 0.485605 0.497363 +20 36989269 37291486 0 19 NaN NaN NaN 0.442259 0.482437 0.497222 +20 37366218 37396262 0 9 NaN NaN NaN 0.452619 0.485731 0.498013 +20 37404951 61444697 0 402 NaN NaN NaN 0.484274 0.494096 0.499134 +20 61444785 61453348 0 2 NaN NaN NaN 0.451488 0.485654 0.496916 +20 61453549 62904542 0 79 NaN NaN NaN 0.472371 0.490990 0.498263 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.af.param b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.af.param index 5bb69d76ced..52de07ca503 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.af.param +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.af.param @@ -1,6 +1,6 @@ @HD VN:1.6 @RG ID:GATKCopyNumber SM:SM-74P4M-1 PARAMETER_NAME POSTERIOR_10 POSTERIOR_20 POSTERIOR_30 POSTERIOR_40 POSTERIOR_50 POSTERIOR_60 POSTERIOR_70 POSTERIOR_80 POSTERIOR_90 -MEAN_BIAS 1.069255 1.073963 1.078146 1.080389 1.082496 1.087311 1.089726 1.092997 1.097136 -BIAS_VARIANCE 0.048473 0.052003 0.052692 0.054348 0.056050 0.058032 0.060749 0.066364 0.069438 -OUTLIER_PROBABILITY 0.007462 0.011329 0.013651 0.015995 0.019026 0.019725 0.021521 0.023417 0.030548 +MEAN_BIAS 1.052579 1.059157 1.063855 1.067549 1.071192 1.075970 1.079045 1.083201 1.087549 +BIAS_VARIANCE 0.038132 0.039991 0.040937 0.041641 0.042978 0.044380 0.046389 0.047301 0.048955 +OUTLIER_PROBABILITY 0.012181 0.013084 0.015014 0.017866 0.019282 0.021425 0.022695 0.024926 0.031160 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.seg index 64ff0b444c6..4421257a69a 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-ac.modelFinal.seg @@ -2,5 +2,7 @@ @SQ SN:20 LN:63025520 UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta AS:GRCh37 M5:0dec9660ec1efaaf33281c0d5ea2560f SP:Homo Sapiens @RG ID:GATKCopyNumber SM:SM-74P4M-1 CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATIO_POSTERIOR_10 LOG2_COPY_RATIO_POSTERIOR_50 LOG2_COPY_RATIO_POSTERIOR_90 MINOR_ALLELE_FRACTION_POSTERIOR_10 MINOR_ALLELE_FRACTION_POSTERIOR_50 MINOR_ALLELE_FRACTION_POSTERIOR_90 -20 138125 37396262 0 743 NaN NaN NaN 0.295187 0.303751 0.312721 -20 37404951 62904542 0 483 NaN NaN NaN 0.490964 0.496547 0.499700 +20 138125 18446024 0 348 NaN NaN NaN 0.322288 0.329600 0.340519 +20 18806046 23807028 0 80 NaN NaN NaN 0.260987 0.274873 0.288961 +20 23842032 37396262 0 315 NaN NaN NaN 0.277454 0.283610 0.291280 +20 37404951 62904542 0 483 NaN NaN NaN 0.490406 0.496253 0.498829 diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-cr-ac-nac.modelBegin.seg b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-cr-ac-nac.modelBegin.seg index 9a0db9fbc00..e9459ff54bd 100644 --- a/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-cr-ac-nac.modelBegin.seg +++ b/src/test/resources/org/broadinstitute/hellbender/tools/copynumber/model-segments-expected/single-sample-cr-ac-nac.modelBegin.seg @@ -11,6 +11,6 @@ CONTIG START END NUM_POINTS_COPY_RATIO NUM_POINTS_ALLELE_FRACTION LOG2_COPY_RATI 20 25270235 30126381 96 30 1.082384 1.110710 1.129877 0.221805 0.233278 0.250439 20 30132499 31673054 299 8 1.732520 1.745058 1.762498 0.166325 0.184239 0.203376 20 31673576 31677616 3 3 1.397140 1.520348 1.651265 0.458801 0.488136 0.496235 -20 31678263 32700168 131 6 1.630741 1.645129 1.659100 0.218809 0.247486 0.270917 +20 31678263 32700168 131 6 1.630741 1.645129 1.659100 0.218810 0.247490 0.270924 20 32847930 37667438 775 83 1.052254 1.059208 1.066407 0.279490 0.286181 0.292944 20 39316268 62905205 2016 323 0.099098 0.110945 0.118745 0.485522 0.494328 0.499528 From d74c038b72a867872fdde3398df728f91647120c Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Mon, 6 Feb 2023 09:56:33 -0500 Subject: [PATCH 07/36] Update scala to fix DirectBuffer access issue. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index df6dfeae528..554a0b3d69f 100644 --- a/build.gradle +++ b/build.gradle @@ -64,7 +64,7 @@ final htsjdkVersion = System.getProperty('htsjdk.version','3.0.1') final picardVersion = System.getProperty('picard.version','2.27.5') final barclayVersion = System.getProperty('barclay.version','4.1.0') final sparkVersion = System.getProperty('spark.version', '3.3.0') -final scalaVersion = System.getProperty('scala.version', '2.12') +final scalaVersion = System.getProperty('scala.version', '2.12.15') final hadoopVersion = System.getProperty('hadoop.version', '3.3.1') final disqVersion = System.getProperty('disq.version','0.3.6') final genomicsdbVersion = System.getProperty('genomicsdb.version','1.4.4') From 737f2d5b7b68d36256a5044e4b3c7cf9d38e7cf8 Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Mon, 6 Feb 2023 14:34:42 -0500 Subject: [PATCH 08/36] Fix scala dependencies. --- build.gradle | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 554a0b3d69f..dcaefe6fdf5 100644 --- a/build.gradle +++ b/build.gradle @@ -232,7 +232,7 @@ configurations { exclude module: 'javax.servlet' exclude module: 'servlet-api' exclude group: 'com.esotericsoftware.kryo' - exclude module: 'spark-mllib_2.12' + exclude module: 'spark-mllib_2.12.15' exclude group: 'org.scala-lang' exclude module: 'kryo' } @@ -313,7 +313,10 @@ dependencies { implementation ('org.ojalgo:ojalgo-commons-math3:1.0.0') { exclude group: 'org.apache.commons' } - implementation ('org.apache.spark:spark-mllib_' + scalaVersion + ':' + sparkVersion) { + + //TODO: there is no mllib_2.12.15:3.3.0 + //implementation ('org.apache.spark:spark-mllib_' + scalaVersion + ':' + sparkVersion) { + implementation ('org.apache.spark:spark-mllib_2.12:3.3.0') { // JUL is used by Google Dataflow as the backend logger, so exclude jul-to-slf4j to avoid a loop exclude module: 'jul-to-slf4j' exclude module: 'javax.servlet' @@ -322,7 +325,8 @@ dependencies { implementation 'com.thoughtworks.paranamer:paranamer:2.8' implementation 'org.bdgenomics.bdg-formats:bdg-formats:0.5.0' - implementation('org.bdgenomics.adam:adam-core-spark2_' + scalaVersion + ':0.28.0') { + //implementation('org.bdgenomics.adam:adam-core-spark2_' + scalaVersion + ':0.28.0') { + implementation('org.bdgenomics.adam:adam-core-spark2_2.12:0.28.0') { exclude group: 'org.slf4j' exclude group: 'org.apache.hadoop' exclude group: 'org.scala-lang' @@ -376,7 +380,8 @@ dependencies { // natural sort implementation('net.grey-panther:natural-comparator:1.1') - implementation('com.fasterxml.jackson.module:jackson-module-scala_' + scalaVersion + ':2.9.8') + //implementation('com.fasterxml.jackson.module:jackson-module-scala_' + scalaVersion + ':2.9.8') + implementation('com.fasterxml.jackson.module:jackson-module-scala_2.12:2.9.8') testUtilsImplementation sourceSets.main.output testUtilsImplementation 'org.testng:testng:' + testNGVersion From 2907ec0e34e995e9c1dcb9b072d794e786afcdf3 Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Mon, 6 Feb 2023 17:04:07 -0500 Subject: [PATCH 09/36] Update Spark version. --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index dcaefe6fdf5..b3ca9e2c6d5 100644 --- a/build.gradle +++ b/build.gradle @@ -63,8 +63,8 @@ repositories { final htsjdkVersion = System.getProperty('htsjdk.version','3.0.1') final picardVersion = System.getProperty('picard.version','2.27.5') final barclayVersion = System.getProperty('barclay.version','4.1.0') -final sparkVersion = System.getProperty('spark.version', '3.3.0') -final scalaVersion = System.getProperty('scala.version', '2.12.15') +final sparkVersion = System.getProperty('spark.version', '3.3.1') +final scalaVersion = System.getProperty('scala.version', '2.13') final hadoopVersion = System.getProperty('hadoop.version', '3.3.1') final disqVersion = System.getProperty('disq.version','0.3.6') final genomicsdbVersion = System.getProperty('genomicsdb.version','1.4.4') From 3ac0dc02f101b0d5220ad4b806509214cccafecd Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Tue, 7 Feb 2023 10:40:46 -0500 Subject: [PATCH 10/36] Repair manifest syntax. --- build.gradle | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index b3ca9e2c6d5..0f88c36b949 100644 --- a/build.gradle +++ b/build.gradle @@ -524,11 +524,17 @@ logger.info("build for version:" + version) group = 'org.broadinstitute' tasks.withType(Jar) { - // transform the list of --add-opens directives into manifest format - final manifestAddOpens = runtimeAddOpens.stream().collect(java.util.stream.Collectors.joining(" ")) + // transform the list of --add-opens directives into manifest format, which requires only the source + // package (unlike the command line equivalent, the "ALL-UNNAMED" target is implied, and should not + // be included in the manifest entry) + //TODO: refactor this once it passes tests + final manifestAddOpens = runtimeAddOpens.stream() + .map(o -> o.substring(0, (o.length() - "ALL-UNNAMED".length()) - 1)) + .collect(java.util.stream.Collectors.joining(' ')) + println(manifestAddOpens) manifest { attributes 'Implementation-Title': 'The Genome Analysis Toolkit (GATK)', - 'Implementation-Version': archiveVersion, + 'Implementation-Version': archiveVersion.get(), 'Toolkit-Short-Name' : 'GATK', 'Main-Class': project.mainClassName, 'Picard-Version': picardVersion, From 87f6d6f68f19e56f4ba5532f84c3f1258f285e67 Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Mon, 13 Feb 2023 10:09:40 -0500 Subject: [PATCH 11/36] Clean up build aand test files. --- .github/workflows/gatk-tests.yml | 6 ++-- build.gradle | 30 +++++++------------ scripts/docker/dockertest.gradle | 2 +- .../run_vcf_site_level_filtering_wdl.sh | 4 +-- 4 files changed, 15 insertions(+), 27 deletions(-) diff --git a/.github/workflows/gatk-tests.yml b/.github/workflows/gatk-tests.yml index bc1f28b3f34..561bb9a13b9 100644 --- a/.github/workflows/gatk-tests.yml +++ b/.github/workflows/gatk-tests.yml @@ -75,7 +75,7 @@ jobs: matrix: java: [ 17.0.1+12 ] experimental: [ false ] - scalaVersion: [ 2.12 ] + scalaVersion: [ 2.13 ] testType: [ cloud, integration, unit ] fail-fast: false continue-on-error: ${{ matrix.experimental }} @@ -151,7 +151,7 @@ jobs: matrix: java: [ 17.0.1+12 ] experimental: [ false ] - scalaVersion: [ 2.12 ] + scalaVersion: [ 2.13 ] testType: [ integration, unit, variantcalling, conda ] fail-fast: false continue-on-error: ${{ matrix.experimental }} @@ -340,8 +340,6 @@ jobs: run: | echo "Running CNV somatic workflows"; bash scripts/cnv_cromwell_tests/somatic/run_cnv_somatic_workflows.sh; - echo "Gather CNV somatic cromwell workflows logs"; - bash -c "find /home/runner/work/gatk/gatk/scripts/cnv_cromwell_tests/somatic/cromwell-executions -exec cat {} \;"; - name: "M2_WDL_TEST" if: ${{ matrix.wdlTest == 'RUN_M2_WDL' }} diff --git a/build.gradle b/build.gradle index 0f88c36b949..43a363b38af 100644 --- a/build.gradle +++ b/build.gradle @@ -184,10 +184,6 @@ configurations.all { force googleCloudNioDependency force 'com.esotericsoftware:kryo:4.0.0' - - // hadoop uses an old jetty that doesn't like the new java version numbering scheme but 11.0.1 is - //missing methods used by org.apache.hadoop.http.HttpServer2 - //force 'org.eclipse.jetty:jetty-servlet:9.4.40.v20210413' } all*.exclude group: 'org.slf4j', module: 'slf4j-jdk14' //exclude this to prevent slf4j complaining about to many slf4j bindings all*.exclude group: 'com.google.guava', module: 'guava-jdk5' @@ -314,8 +310,7 @@ dependencies { exclude group: 'org.apache.commons' } - //TODO: there is no mllib_2.12.15:3.3.0 - //implementation ('org.apache.spark:spark-mllib_' + scalaVersion + ':' + sparkVersion) { + //there is no mllib_2.12.15:3.3.0, so stay use 2.12:3.3.0 implementation ('org.apache.spark:spark-mllib_2.12:3.3.0') { // JUL is used by Google Dataflow as the backend logger, so exclude jul-to-slf4j to avoid a loop exclude module: 'jul-to-slf4j' @@ -325,7 +320,6 @@ dependencies { implementation 'com.thoughtworks.paranamer:paranamer:2.8' implementation 'org.bdgenomics.bdg-formats:bdg-formats:0.5.0' - //implementation('org.bdgenomics.adam:adam-core-spark2_' + scalaVersion + ':0.28.0') { implementation('org.bdgenomics.adam:adam-core-spark2_2.12:0.28.0') { exclude group: 'org.slf4j' exclude group: 'org.apache.hadoop' @@ -357,14 +351,14 @@ dependencies { // Dependency change for including MLLib implementation('com.esotericsoftware:kryo:5.3.0'){ - //exclude group: 'com.esotericsoftware', module: 'reflectasm' + exclude group: 'com.esotericsoftware', module: 'reflectasm' exclude group: 'org.ow2.asm', module: 'asm' } -// // Dependency change for including MLLib -// implementation('com.esotericsoftware:reflectasm:1.10.0:shaded') { -// transitive = false -// } + // Dependency change for including MLLib + implementation('com.esotericsoftware:reflectasm:1.10.0:shaded') { + transitive = false + } implementation('com.intel.gkl:gkl:0.8.8') { exclude module: 'htsjdk' @@ -380,7 +374,6 @@ dependencies { // natural sort implementation('net.grey-panther:natural-comparator:1.1') - //implementation('com.fasterxml.jackson.module:jackson-module-scala_' + scalaVersion + ':2.9.8') implementation('com.fasterxml.jackson.module:jackson-module-scala_2.12:2.9.8') testUtilsImplementation sourceSets.main.output @@ -393,10 +386,9 @@ dependencies { testImplementation "com.google.jimfs:jimfs:1.1" } -// The --add-open directives required to run GATK. This list needs to be kept in sync with the corresponding -// list in scripts/dockertest.gradle. +// This list needs to be kept in sync with the corresponding list in scripts/dockertest.gradle. // -// These directives need to be: +// The --add-open directives required to run GATK. These directives need to be: // - included as properties in the manifest file in the jar(s) // - passed to java via the gradle "jvmArgs" task property for any task that executes GATK code from a // classpath that does use a jar (i.e., gradle run, test, javadoc, gatkDoc and jacoco tasks, etc.) @@ -525,13 +517,11 @@ group = 'org.broadinstitute' tasks.withType(Jar) { // transform the list of --add-opens directives into manifest format, which requires only the source - // package (unlike the command line equivalent, the "ALL-UNNAMED" target is implied, and should not - // be included in the manifest entry) - //TODO: refactor this once it passes tests + // package (unlike the command line equivalent, in the manifest the "ALL-UNNAMED" target is implied + // and can't be included in the manifest entry syntax) final manifestAddOpens = runtimeAddOpens.stream() .map(o -> o.substring(0, (o.length() - "ALL-UNNAMED".length()) - 1)) .collect(java.util.stream.Collectors.joining(' ')) - println(manifestAddOpens) manifest { attributes 'Implementation-Title': 'The Genome Analysis Toolkit (GATK)', 'Implementation-Version': archiveVersion.get(), diff --git a/scripts/docker/dockertest.gradle b/scripts/docker/dockertest.gradle index 1849e0bbcde..3d9d1a6df7c 100644 --- a/scripts/docker/dockertest.gradle +++ b/scripts/docker/dockertest.gradle @@ -146,7 +146,7 @@ task testOnPackagedReleaseJar(type: Test){ jvmArgs = getJVMArgs(runtimeAddOpens, testAddOpens) - classpath = files( gatkJar, testClassesJar, testDependencyJar) + classpath = files( gatkJar, testDependencyJar, testClassesJar) testClassesDirs = files(testClassesUnpacked) } diff --git a/scripts/vcf_site_level_filtering_cromwell_tests/run_vcf_site_level_filtering_wdl.sh b/scripts/vcf_site_level_filtering_cromwell_tests/run_vcf_site_level_filtering_wdl.sh index 442a0c4fa01..7eadf76e5d1 100644 --- a/scripts/vcf_site_level_filtering_cromwell_tests/run_vcf_site_level_filtering_wdl.sh +++ b/scripts/vcf_site_level_filtering_cromwell_tests/run_vcf_site_level_filtering_wdl.sh @@ -33,7 +33,7 @@ sed -r "s/__GATK_DOCKER__/broadinstitute\/gatk\:$HASH_TO_USE/g" $CROMWELL_TEST_D echo "Running Filtering WDL through cromwell" cat $WORKING_DIR/vcf_site_level_filtering_mod.json -java -DLOG_LEVEL=TRACE -jar $CROMWELL_JAR run $WDL_DIR/JointVcfFiltering.wdl -i $WORKING_DIR/vcf_site_level_filtering_mod.json +java -jar $CROMWELL_JAR run $WDL_DIR/JointVcfFiltering.wdl -i $WORKING_DIR/vcf_site_level_filtering_mod.json cat $WORKING_DIR/vcf_site_level_filtering_pos_neg_mod.json -java -DLOG_LEVEL=TRACE -jar $CROMWELL_JAR run $WDL_DIR/JointVcfFiltering.wdl -i $WORKING_DIR/vcf_site_level_filtering_pos_neg_mod.json +java -jar $CROMWELL_JAR run $WDL_DIR/JointVcfFiltering.wdl -i $WORKING_DIR/vcf_site_level_filtering_pos_neg_mod.json From 8aba9405738cbef812507ad948aaffc985b581a6 Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Mon, 20 Jun 2022 14:49:20 -0400 Subject: [PATCH 12/36] Java 17 doclets. --- build.gradle | 532 +++++++++--------- .../walkers/haplotypecaller/graphs/Path.java | 3 +- .../utils/help/GATKDocWorkUnit.java | 88 +-- .../utils/help/GATKGSONWorkUnit.java | 37 +- .../help/GATKHelpDocWorkUnitHandler.java | 127 +++-- .../hellbender/utils/help/GATKHelpDoclet.java | 203 ++++--- ...ocumentationGenerationIntegrationTest.java | 144 ++--- 7 files changed, 571 insertions(+), 563 deletions(-) diff --git a/build.gradle b/build.gradle index 43a363b38af..08164e6b337 100644 --- a/build.gradle +++ b/build.gradle @@ -21,10 +21,7 @@ plugins { import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import de.undercouch.gradle.tasks.download.Download - -import javax.tools.ToolProvider import java.time.format.DateTimeFormatter -import java.time.ZonedDateTime mainClassName = "org.broadinstitute.hellbender.Main" @@ -48,7 +45,6 @@ task downloadGsaLibFile(type: Download) { repositories { mavenCentral() - jcenter() maven { url "https://broadinstitute.jfrog.io/broadinstitute/libs-snapshot/" //for htsjdk snapshots } @@ -141,11 +137,11 @@ def ensureBuildPrerequisites(largeResourcesFolder, buildPrerequisitesMessage, sk if (!JavaVersion.current().equals(JavaVersion.VERSION_17)) { println("Warning: using Java ${JavaVersion.current()} but only Java 17 has been tested.") } - if (!JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17)) { - throw new GradleException( - "A Java 17 compatible (Java 17 or later) version is required to build GATK, but ${JavaVersion.current()} was found. " - + "$buildPrerequisitesMessage") - } +// if (!JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17)) { +// throw new GradleException( +// "A Java 17 compatible (Java 17 or later) version is required to build GATK, but ${JavaVersion.current()} was found. " +// + "$buildPrerequisitesMessage") +// } if (!skipGitCheck && !looksLikeWereInAGitRepository() ) { throw new GradleException("This doesn't appear to be a git folder. " + "The GATK Github repository must be cloned using \"git clone\" to run the build. " + @@ -234,15 +230,7 @@ configurations { } } -// Get the jdk files we need to run javaDoc. We need to use these during compile, testCompile, -// test execution, and gatkDoc generation, but we don't want them as part of the runtime -// classpath and we don't want to redistribute them in the uber jar. -final javadocJDKFiles = ToolProvider.getSystemToolClassLoader() == null ? files([]) : files(((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs()) - dependencies { - // javadoc utilities; compile/test only to prevent redistribution of sdk jars - compileOnly(javadocJDKFiles) - testImplementation(javadocJDKFiles) implementation 'org.broadinstitute:barclay:' + barclayVersion // Library for configuration: @@ -729,36 +717,36 @@ task testUtilsJar(type: Jar){ from sourceSets.testUtils.output } -//tasks.withType(Javadoc) { -// // do this for all javadoc tasks, including gatkDoc -// options.addStringOption('Xdoclint:none') -// options.addStringOption('encoding', 'UTF-8') -//} -// -//javadoc { -// // This is a hack to disable the java default javadoc lint until we fix the html formatting -// // We only want to do this for the javadoc task, not gatkDoc -// options.addStringOption('Xdoclint:none', '-quiet') -// source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) -// include '**/*.java' -//} -// -// -//task testUtilsJavadoc(type: Javadoc) { -// // This is a hack to disable the java default javadoc lint until we fix the html formatting -// // We only want to do this for the javadoc task, not gatkDoc -// options.addStringOption('Xdoclint:none', '-quiet') -// source = sourceSets.testUtils.allJava -// classpath = sourceSets.testUtils.runtimeClasspath -// destinationDir = file("$docBuildDir/testUtilsJavadoc") -// include '**/*.java' -//} -// -//task testUtilsJavadocJar(type: Jar, dependsOn: testUtilsJavadoc){ -// archiveBaseName = "$project.name-test-utils" -// archiveClassifier = 'javadoc' -// from "$docBuildDir/testUtilsJavadoc" -//} +tasks.withType(Javadoc) { + // do this for all javadoc tasks, including gatkDoc + options.addStringOption('Xdoclint:none') + options.addStringOption('encoding', 'UTF-8') +} + +javadoc { + // This is a hack to disable the java default javadoc lint until we fix the html formatting + // We only want to do this for the javadoc task, not gatkDoc + options.addStringOption('Xdoclint:none', '-quiet') + source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) + include '**/*.java' +} + + +task testUtilsJavadoc(type: Javadoc) { + // This is a hack to disable the java default javadoc lint until we fix the html formatting + // We only want to do this for the javadoc task, not gatkDoc + options.addStringOption('Xdoclint:none', '-quiet') + source = sourceSets.testUtils.allJava + classpath = sourceSets.testUtils.runtimeClasspath + destinationDir = file("$docBuildDir/testUtilsJavadoc") + include '**/*.java' +} + +task testUtilsJavadocJar(type: Jar, dependsOn: testUtilsJavadoc){ + archiveBaseName = "$project.name-test-utils" + archiveClassifier = 'javadoc' + from "$docBuildDir/testUtilsJavadoc" +} task testUtilsSourcesJar(type: Jar){ archiveBaseName = "$project.name-test-utils" @@ -767,234 +755,234 @@ task testUtilsSourcesJar(type: Jar){ } // Generate GATK Online Doc -//task gatkDoc(type: Javadoc, dependsOn: classes) { -// final File gatkDocDir = new File("$docBuildDir/gatkdoc") -// doFirst { -// // make sure the output folder exists or we can create it -// if (!gatkDocDir.exists() && !gatkDocDir.mkdirs()) { -// throw new GradleException(String.format("Failure creating folder (%s) for GATK doc output in task (%s)", -// gatkDocDir.getAbsolutePath(), -// it.name)); -// } -// copy { -// from('src/main/resources/org/broadinstitute/hellbender/utils/helpTemplates') -// include 'gatkDoc.css' -// into gatkDocDir -// } -// } -// // Include the Picard source jar, which contains various .R, .sh, .css, .html, .xml and .MF files and -// // other resources, but we only want the files that javadoc can handle, so just take the .java files. -// source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) -// include '**/*.java' -// -// // The gatkDoc process instantiates any documented feature classes, so to run it we need the entire -// // runtime classpath. -// classpath = sourceSets.main.runtimeClasspath -// options.docletpath = classpath.asType(List) -// options.doclet = "org.broadinstitute.hellbender.utils.help.GATKHelpDoclet" -// -// //gradle 6.x+ defaults to setting this true which breaks the barclay doclet -// options.noTimestamp(false) -// -// outputs.dir(gatkDocDir) -// options.destinationDirectory(gatkDocDir) -// -// options.addStringOption("settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/helpTemplates"); -// if (project.hasProperty('phpDoc')) { -// // use -PphpDoc to generate .php file extensions, otherwise rely on default of .html -// final String phpExtension = "php" -// options.addStringOption("output-file-extension", phpExtension) -// options.addStringOption("index-file-extension", phpExtension) -// } -// options.addStringOption("absolute-version", getVersion()) -// options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) -//} -// +task gatkDoc(type: Javadoc, dependsOn: classes) { + final File gatkDocDir = new File("$docBuildDir/gatkdoc") + doFirst { + // make sure the output folder exists or we can create it + if (!gatkDocDir.exists() && !gatkDocDir.mkdirs()) { + throw new GradleException(String.format("Failure creating folder (%s) for GATK doc output in task (%s)", + gatkDocDir.getAbsolutePath(), + it.name)); + } + copy { + from('src/main/resources/org/broadinstitute/hellbender/utils/helpTemplates') + include 'gatkDoc.css' + into gatkDocDir + } + } + // Include the Picard source jar, which contains various .R, .sh, .css, .html, .xml and .MF files and + // other resources, but we only want the files that javadoc can handle, so just take the .java files. + source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) + include '**/*.java' + + // The gatkDoc process instantiates any documented feature classes, so to run it we need the entire + // runtime classpath. + classpath = sourceSets.main.runtimeClasspath + options.docletpath = classpath.asType(List) + options.doclet = "org.broadinstitute.hellbender.utils.help.GATKHelpDoclet" + + //gradle 6.x+ defaults to setting this true which breaks the barclay doclet + options.noTimestamp(false) + + outputs.dir(gatkDocDir) + options.destinationDirectory(gatkDocDir) + + options.addStringOption("settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/helpTemplates"); + if (project.hasProperty('phpDoc')) { + // use -PphpDoc to generate .php file extensions, otherwise rely on default of .html + final String phpExtension = "php" + options.addStringOption("output-file-extension", phpExtension) + options.addStringOption("index-file-extension", phpExtension) + } + options.addStringOption("absolute-version", getVersion()) + options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME).toString()) +} + // Generate GATK Bash Tab Completion File -//task gatkTabComplete(type: Javadoc, dependsOn: classes) { -// final File tabCompletionDir = new File("$docBuildDir/tabCompletion") -// doFirst { -// // make sure the output folder exists or we can create it -// if (!tabCompletionDir.exists() && !tabCompletionDir.mkdirs()) { -// throw new GradleException(String.format("Failure creating folder (%s) for GATK tab completion output in task (%s)", -// tabCompletionDir.getAbsolutePath(), -// it.name)); -// } -// } -// // Include the Picard source jar, which contains various .R, .sh, .css, .html, .xml and .MF files and -// // other resources, but we only want the files that javadoc can handle, so just take the .java files. -// source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) -// include '**/*.java' -// -// // The gatkDoc process instantiates any documented feature classes, so to run it we need the entire -// // runtime classpath, includin Picard. -// classpath = sourceSets.main.runtimeClasspath -// -// options.docletpath = classpath.asType(List) -// options.doclet = "org.broadinstitute.barclay.help.BashTabCompletionDoclet" -// -// //gradle 6.x+ defaults to setting this true which breaks the barclay doclet -// options.noTimestamp(false) -// -// outputs.dir(tabCompletionDir) -// options.destinationDirectory(tabCompletionDir) -// -// // This is a hack to work around a gross Gradle bug: -// options.addStringOption('use-default-templates', '-use-default-templates') -// -// options.addStringOption("output-file-extension", "sh") -// options.addStringOption("index-file-extension", "sh") -// options.addStringOption("absolute-version", getVersion()) -// options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) -// -// options.addStringOption("caller-script-name", "gatk") -// -// options.addStringOption("caller-pre-legal-args", "--help --list --dry-run --java-options") -// options.addStringOption("caller-pre-arg-val-types", "null null null String") -// options.addStringOption("caller-pre-mutex-args", "--help;list,dry-run,java-options --list;help,dry-run,java-options") -// options.addStringOption("caller-pre-alias-args", "--help;-h") -// options.addStringOption("caller-pre-arg-min-occurs", "0 0 0 0") -// options.addStringOption("caller-pre-arg-max-occurs", "1 1 1 1") -// -// options.addStringOption("caller-post-legal-args", "--spark-runner --spark-master --cluster --dry-run --java-options --conf --driver-memory --driver-cores --executor-memory --executor-cores --num-executors") -// options.addStringOption("caller-post-arg-val-types", "String String String null String file int int int int int") -// options.addStringOption("caller-post-mutex-args", "") -// options.addStringOption("caller-post-alias-args", "") -// options.addStringOption("caller-post-arg-min-occurs", "0 0 0 0 0 0 0 0 0 0") -// options.addStringOption("caller-post-arg-max-occurs", "1 1 1 1 1 1 1 1 1 1") -//} -// -//def getWDLInputJSONTestFileNameFromWDLName(File wdlName) { -// String fileWithoutExt = wdlName.name.take(wdlName.name.lastIndexOf('.')) -// return new File (wdlName.getParentFile(), fileWithoutExt + "Inputs.json").getAbsolutePath() -//} +task gatkTabComplete(type: Javadoc, dependsOn: classes) { + final File tabCompletionDir = new File("$docBuildDir/tabCompletion") + doFirst { + // make sure the output folder exists or we can create it + if (!tabCompletionDir.exists() && !tabCompletionDir.mkdirs()) { + throw new GradleException(String.format("Failure creating folder (%s) for GATK tab completion output in task (%s)", + tabCompletionDir.getAbsolutePath(), + it.name)); + } + } + // Include the Picard source jar, which contains various .R, .sh, .css, .html, .xml and .MF files and + // other resources, but we only want the files that javadoc can handle, so just take the .java files. + source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) + include '**/*.java' + + // The gatkDoc process instantiates any documented feature classes, so to run it we need the entire + // runtime classpath, includin Picard. + classpath = sourceSets.main.runtimeClasspath + + options.docletpath = classpath.asType(List) + options.doclet = "org.broadinstitute.barclay.help.BashTabCompletionDoclet" + + //gradle 6.x+ defaults to setting this true which breaks the barclay doclet + options.noTimestamp(false) + + outputs.dir(tabCompletionDir) + options.destinationDirectory(tabCompletionDir) + + // This is a hack to work around a gross Gradle bug: + options.addStringOption('use-default-templates', '-use-default-templates') + + options.addStringOption("output-file-extension", "sh") + options.addStringOption("index-file-extension", "sh") + options.addStringOption("absolute-version", getVersion()) + options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) + + options.addStringOption("caller-script-name", "gatk") + + options.addStringOption("caller-pre-legal-args", "--help --list --dry-run --java-options") + options.addStringOption("caller-pre-arg-val-types", "null null null String") + options.addStringOption("caller-pre-mutex-args", "--help;list,dry-run,java-options --list;help,dry-run,java-options") + options.addStringOption("caller-pre-alias-args", "--help;-h") + options.addStringOption("caller-pre-arg-min-occurs", "0 0 0 0") + options.addStringOption("caller-pre-arg-max-occurs", "1 1 1 1") + + options.addStringOption("caller-post-legal-args", "--spark-runner --spark-master --cluster --dry-run --java-options --conf --driver-memory --driver-cores --executor-memory --executor-cores --num-executors") + options.addStringOption("caller-post-arg-val-types", "String String String null String file int int int int int") + options.addStringOption("caller-post-mutex-args", "") + options.addStringOption("caller-post-alias-args", "") + options.addStringOption("caller-post-arg-min-occurs", "0 0 0 0 0 0 0 0 0 0") + options.addStringOption("caller-post-arg-max-occurs", "1 1 1 1 1 1 1 1 1 1") +} + +def getWDLInputJSONTestFileNameFromWDLName(File wdlName) { + String fileWithoutExt = wdlName.name.take(wdlName.name.lastIndexOf('.')) + return new File (wdlName.getParentFile(), fileWithoutExt + "Inputs.json").getAbsolutePath() +} // Generate GATK Tool WDL -//task gatkWDLGen(type: Javadoc, dependsOn: classes) { -// final File gatkWDLDir = new File("$docBuildDir/wdlGen") -// outputs.dir(gatkWDLDir) -// doFirst { -// // make sure the output folder exists or we can create it -// if (!gatkWDLDir.exists() && !gatkWDLDir.mkdirs()) { -// throw new GradleException(String.format("Failure creating folder (%s) for GATK WDL output in task (%s)", -// gatkWDLDir.getAbsolutePath(), -// it.name)); -// } -// copy { -// from('src/main/resources/org/broadinstitute/hellbender/utils/wdlTemplates/common.html') -// into gatkWDLDir -// } -// } -// source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) -// include '**/*.java' -// -// // The gatkWDLGen process instantiates any documented feature classes, so to run it we need the entire -// // runtime classpath, including picard. -// classpath = sourceSets.main.runtimeClasspath -// options.docletpath = classpath.asType(List) -// options.doclet = "org.broadinstitute.hellbender.utils.help.GATKWDLDoclet" -// -// //gradle 6.x+ defaults to setting this true which breaks the barclay doclet -// options.noTimestamp(false) -// -// outputs.dir(gatkWDLDir) -// options.destinationDirectory(gatkWDLDir) -// -// options.addStringOption("settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/wdlTemplates"); -// options.addStringOption("output-file-extension", "wdl") -// options.addStringOption("index-file-extension", "html") -// -// options.addStringOption("absolute-version", getVersion()) -// options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) -// -// // the wdl doclet will populate the test JSON input files with the name of a dummy -// // file in this location, in order to satisfy cromwell's attempts to localize inputs and outputs -// options.addStringOption("build-dir", System.getenv("TRAVIS_BUILD_DIR") ?: new File(".").getAbsolutePath()) -//} -// -//def execWDLValidation = { validateWDL -> -// println "Executing: $validateWDL" -// try { -// def retCode = validateWDL.execute().waitFor() -// if (retCode.intValue() != 0) { -// throw new GradleException("Execution of \"$validateWDL\" failed with exit code: $retCode.") -// } -// return retCode -// } catch (IOException e) { -// throw new GradleException("An IOException occurred while attempting to execute the command $validateWDL.") -// } -//} -// -//task gatkValidateScriptsWdl() { -// doFirst { -// // running this task requires a local cromwell installation, with environment variables CROMWELL_JAR, -// // WOMTOOL_JAR set to the jar locations -// if (System.getenv('CROMWELL_JAR') == null || System.getenv('WOMTOOL_JAR') == null) { -// throw new GradleException("Running this task requires the CROMWELL_JAR and WOMTOOL_JAR environment variables to be set") -// } -// } -// -// doLast { -// // Run the womtool validator on all WDL files in the 'scripts' directory -// final File wdlFolder = new File("scripts") -// def wdlFiles = fileTree(dir: wdlFolder).filter { -// f -> f.getAbsolutePath().endsWith(".wdl") -// } -// final womtoolLocation = System.getenv('WOMTOOL_JAR') -// wdlFiles.any() { wdlFile -> -// final validateWDLCommand = "java -jar $womtoolLocation validate $wdlFile" -// execWDLValidation(validateWDLCommand) -// } -// } -//} -// -//task gatkValidateGeneratedWdl(dependsOn: [gatkWDLGen, shadowJar]) { -// doFirst { -// // running this task requires a local cromwell installation, with environment variables CROMWELL_JAR, -// // WOMTOOL_JAR set to the jar locations -// if (System.getenv('CROMWELL_JAR') == null || System.getenv('WOMTOOL_JAR') == null) { -// throw new GradleException("Running this task requires the CROMWELL_JAR and WOMTOOL_JAR environment variables to be set") -// } -// } -// -// doLast { -// // first, run the womtool validator on WDL files in the 'docs/wdlGen' directory -// final File wdlGenFolder = new File("$docBuildDir/wdlGen") -// def wdlFiles = fileTree(dir: wdlGenFolder).filter { -// f -> !f.getAbsolutePath().endsWith(".html") && !f.getAbsolutePath().endsWith(".json") -// } -// final womtoolLocation = System.getenv('WOMTOOL_JAR') -// wdlFiles.any() { wdlFile -> -// final validateWDLCommand = "java -jar $womtoolLocation validate $wdlFile" -// execWDLValidation(validateWDLCommand) -// } -// -// // now execute the *AllArgs test wdls using cromwell -// wdlFiles = fileTree(dir: wdlGenFolder).filter { -// f -> f.getAbsolutePath().endsWith("AllArgsTest.wdl") -// } -// -// // the test JSON input file is populated by the WDL gen process with the name of this dummy file -// // to satisfy cromwell's attempt to de/localize input/output files -// def buildDir = System.getenv("TRAVIS_BUILD_DIR") ?: new File(".").getAbsolutePath() -// final dummyWDLTestFileName = "$buildDir/dummyWDLTestFile" -// final File dummyWDLTestFile = file(dummyWDLTestFileName) -// final cromwellLocation = System.getenv('CROMWELL_JAR') -// try { -// wdlFiles.any() { wdlFile -> -// final testInputJSON = getWDLInputJSONTestFileNameFromWDLName(wdlFile) -// final runWDLCommand = "java -jar $cromwellLocation run --inputs $testInputJSON $wdlFile" -// execWDLValidation("touch $dummyWDLTestFileName") -// execWDLValidation(runWDLCommand) -// } -// } finally { -// // delete the dummy test file and the 'cromwell-executions' directory left behind by cromwell -// dummyWDLTestFile.delete() -// file("$buildDir/cromwell-executions").deleteDir() -// file("$buildDir/cromwell-workflow-logs").deleteDir() -// } -// } -//} +task gatkWDLGen(type: Javadoc, dependsOn: classes) { + final File gatkWDLDir = new File("$docBuildDir/wdlGen") + outputs.dir(gatkWDLDir) + doFirst { + // make sure the output folder exists or we can create it + if (!gatkWDLDir.exists() && !gatkWDLDir.mkdirs()) { + throw new GradleException(String.format("Failure creating folder (%s) for GATK WDL output in task (%s)", + gatkWDLDir.getAbsolutePath(), + it.name)); + } + copy { + from('src/main/resources/org/broadinstitute/hellbender/utils/wdlTemplates/common.html') + into gatkWDLDir + } + } + source = sourceSets.main.allJava + files(configurations.externalSourceConfiguration.collect { zipTree(it) }) + include '**/*.java' + + // The gatkWDLGen process instantiates any documented feature classes, so to run it we need the entire + // runtime classpath, including picard. + classpath = sourceSets.main.runtimeClasspath + options.docletpath = classpath.asType(List) + options.doclet = "org.broadinstitute.hellbender.utils.help.GATKWDLDoclet" + + //gradle 6.x+ defaults to setting this true which breaks the barclay doclet + options.noTimestamp(false) + + outputs.dir(gatkWDLDir) + options.destinationDirectory(gatkWDLDir) + + options.addStringOption("settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/wdlTemplates"); + options.addStringOption("output-file-extension", "wdl") + options.addStringOption("index-file-extension", "html") + + options.addStringOption("absolute-version", getVersion()) + options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) + + // the wdl doclet will populate the test JSON input files with the name of a dummy + // file in this location, in order to satisfy cromwell's attempts to localize inputs and outputs + options.addStringOption("build-dir", System.getenv("TRAVIS_BUILD_DIR") ?: new File(".").getAbsolutePath()) +} + +def execWDLValidation = { validateWDL -> + println "Executing: $validateWDL" + try { + def retCode = validateWDL.execute().waitFor() + if (retCode.intValue() != 0) { + throw new GradleException("Execution of \"$validateWDL\" failed with exit code: $retCode.") + } + return retCode + } catch (IOException e) { + throw new GradleException("An IOException occurred while attempting to execute the command $validateWDL.") + } +} + +task gatkValidateScriptsWdl() { + doFirst { + // running this task requires a local cromwell installation, with environment variables CROMWELL_JAR, + // WOMTOOL_JAR set to the jar locations + if (System.getenv('CROMWELL_JAR') == null || System.getenv('WOMTOOL_JAR') == null) { + throw new GradleException("Running this task requires the CROMWELL_JAR and WOMTOOL_JAR environment variables to be set") + } + } + + doLast { + // Run the womtool validator on all WDL files in the 'scripts' directory + final File wdlFolder = new File("scripts") + def wdlFiles = fileTree(dir: wdlFolder).filter { + f -> f.getAbsolutePath().endsWith(".wdl") + } + final womtoolLocation = System.getenv('WOMTOOL_JAR') + wdlFiles.any() { wdlFile -> + final validateWDLCommand = "java -jar $womtoolLocation validate $wdlFile" + execWDLValidation(validateWDLCommand) + } + } +} + +task gatkValidateGeneratedWdl(dependsOn: [gatkWDLGen, shadowJar]) { + doFirst { + // running this task requires a local cromwell installation, with environment variables CROMWELL_JAR, + // WOMTOOL_JAR set to the jar locations + if (System.getenv('CROMWELL_JAR') == null || System.getenv('WOMTOOL_JAR') == null) { + throw new GradleException("Running this task requires the CROMWELL_JAR and WOMTOOL_JAR environment variables to be set") + } + } + + doLast { + // first, run the womtool validator on WDL files in the 'docs/wdlGen' directory + final File wdlGenFolder = new File("$docBuildDir/wdlGen") + def wdlFiles = fileTree(dir: wdlGenFolder).filter { + f -> !f.getAbsolutePath().endsWith(".html") && !f.getAbsolutePath().endsWith(".json") + } + final womtoolLocation = System.getenv('WOMTOOL_JAR') + wdlFiles.any() { wdlFile -> + final validateWDLCommand = "java -jar $womtoolLocation validate $wdlFile" + execWDLValidation(validateWDLCommand) + } + + // now execute the *AllArgs test wdls using cromwell + wdlFiles = fileTree(dir: wdlGenFolder).filter { + f -> f.getAbsolutePath().endsWith("AllArgsTest.wdl") + } + + // the test JSON input file is populated by the WDL gen process with the name of this dummy file + // to satisfy cromwell's attempt to de/localize input/output files + def buildDir = System.getenv("TRAVIS_BUILD_DIR") ?: new File(".").getAbsolutePath() + final dummyWDLTestFileName = "$buildDir/dummyWDLTestFile" + final File dummyWDLTestFile = file(dummyWDLTestFileName) + final cromwellLocation = System.getenv('CROMWELL_JAR') + try { + wdlFiles.any() { wdlFile -> + final testInputJSON = getWDLInputJSONTestFileNameFromWDLName(wdlFile) + final runWDLCommand = "java -jar $cromwellLocation run --inputs $testInputJSON $wdlFile" + execWDLValidation("touch $dummyWDLTestFileName") + execWDLValidation(runWDLCommand) + } + } finally { + // delete the dummy test file and the 'cromwell-executions' directory left behind by cromwell + dummyWDLTestFile.delete() + file("$buildDir/cromwell-executions").deleteDir() + file("$buildDir/cromwell-workflow-logs").deleteDir() + } + } +} /** diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/graphs/Path.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/graphs/Path.java index 90f80c04dcb..52040450438 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/graphs/Path.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/graphs/Path.java @@ -2,7 +2,6 @@ import com.google.common.annotations.VisibleForTesting; import htsjdk.samtools.Cigar; -import joptsimple.internal.Strings; import org.apache.commons.lang3.ArrayUtils; import org.broadinstitute.gatk.nativebindings.smithwaterman.SWOverhangStrategy; import org.broadinstitute.gatk.nativebindings.smithwaterman.SWParameters; @@ -153,7 +152,7 @@ public boolean containsVertex(final V v) { @Override public String toString() { - final String joinedPath = Strings.join(getVertices().stream().map(BaseVertex::getSequenceString).collect(Collectors.toList()), "->"); + final String joinedPath = getVertices().stream().map(BaseVertex::getSequenceString).collect(Collectors.joining("->")); return String.format("Path{path=%s}", joinedPath); } diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java index b94df3c80b8..d80d678a56d 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java @@ -1,41 +1,47 @@ -//package org.broadinstitute.hellbender.utils.help; -// -//import org.broadinstitute.barclay.help.DocWorkUnit; -//import org.broadinstitute.barclay.help.DocWorkUnitHandler; -//import org.broadinstitute.barclay.help.DocumentedFeature; -// -//import org.broadinstitute.hellbender.utils.runtime.RuntimeUtils; -// -///** -// * Custom DocWorkUnit used for generating GATK help/documentation. Overrides the defaults to provide tool -// * names that are annotated with a " (Picard)" suffix for Picard tools. -// * -// * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called -// * by methods that are used by the GATK runtime. This class has a dependency on com.sun.javadoc classes, -// * which may not be present since they're not provided as part of the normal GATK runtime classpath. -// */ -//@SuppressWarnings("removal") -//public class GATKDocWorkUnit extends DocWorkUnit { -// -// public GATKDocWorkUnit( -// final DocWorkUnitHandler workUnitHandler, -// final DocumentedFeature documentedFeatureAnnotation, -// final com.sun.javadoc.ClassDoc classDoc, -// final Class clazz) { -// super(workUnitHandler, documentedFeatureAnnotation, classDoc, clazz); -// } -// -// @Override -// public String getName() { -// // Override getName to return a display name that annotates Picard tool names with " (Picard)" -// return RuntimeUtils.toolDisplayName(getClazz()); -// } -// -// /** -// * Sort in order of the name of this WorkUnit -// */ -// @Override -// public int compareTo(DocWorkUnit other) { -// return this.getName().compareTo(other.getName()); -// } -//} +package org.broadinstitute.hellbender.utils.help; + +import org.broadinstitute.barclay.argparser.NamedArgumentDefinition; +import org.broadinstitute.barclay.help.DocWorkUnit; +import org.broadinstitute.barclay.help.DocWorkUnitHandler; +import org.broadinstitute.barclay.help.DocumentedFeature; + +import org.broadinstitute.hellbender.utils.runtime.RuntimeUtils; + +import javax.lang.model.element.Element; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Custom DocWorkUnit used for generating GATK help/documentation. Overrides the defaults to provide tool + * names that are annotated with a " (Picard)" suffix for Picard tools. + * + * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called + * by methods that are used by the GATK runtime. This class has a dependency on com.sun.javadoc classes, + * which may not be present since they're not provided as part of the normal GATK runtime classpath. + */ +@SuppressWarnings("removal") +public class GATKDocWorkUnit extends DocWorkUnit { + + public GATKDocWorkUnit( + final DocWorkUnitHandler workUnitHandler, + final Element classElement, + final Class clazz, + final DocumentedFeature documentedFeatureAnnotation) { + super(workUnitHandler, classElement, clazz, documentedFeatureAnnotation); + } + + @Override + public String getName() { + // Override getName to return a display name that annotates Picard tool names with " (Picard)" + return RuntimeUtils.toolDisplayName(getClazz()); + } + + /** + * Sort in order of the name of this WorkUnit + */ + @Override + public int compareTo(DocWorkUnit other) { + return this.getName().compareTo(other.getName()); + } +} diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKGSONWorkUnit.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKGSONWorkUnit.java index 0216ab9b707..11c5f1e5259 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKGSONWorkUnit.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKGSONWorkUnit.java @@ -1,17 +1,20 @@ -//package org.broadinstitute.hellbender.utils.help; -// -//import org.broadinstitute.barclay.help.GSONWorkUnit; -// -///** -// * Class representing a GSONWorkUnit for GATK work units. -// * -// * Adds "walkertype" to the base gson object created by Barclay. -// */ -//public class GATKGSONWorkUnit extends GSONWorkUnit { -// -// private String walkerType; -// -// public void setWalkerType(final String walkerType){ -// this.walkerType = walkerType; -// } -//} +package org.broadinstitute.hellbender.utils.help; + +import org.broadinstitute.barclay.help.DocWorkUnit; +import org.broadinstitute.barclay.help.GSONWorkUnit; + +/** + * Class representing a GSONWorkUnit for GATK work units. + * + * Adds "walkertype" to the base gson object created by Barclay. + */ +public class GATKGSONWorkUnit extends GSONWorkUnit { + + private String walkerType; + + public GATKGSONWorkUnit(DocWorkUnit workUnit) { super(workUnit); } + + public void setWalkerType(final String walkerType){ + this.walkerType = walkerType; + } +} diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java index b31bfcc640a..2bd660f3354 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java @@ -1,61 +1,66 @@ -//package org.broadinstitute.hellbender.utils.help; -// -//import org.broadinstitute.barclay.argparser.CommandLineProgramProperties; -//import org.broadinstitute.barclay.help.DefaultDocWorkUnitHandler; -//import org.broadinstitute.barclay.help.DocWorkUnit; -// -//import org.broadinstitute.barclay.help.HelpDoclet; -// -///** -// * The GATK Documentation work unit handler class that is the companion to GATKHelpDoclet. -// * -// * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called -// * by methods that are used by the GATK runtime, as this class assumes a dependency on com.sun.javadoc classes -// * which may not be present. -// */ -//public class GATKHelpDocWorkUnitHandler extends DefaultDocWorkUnitHandler { -// -// private final static String GATK_JAVADOC_TAG_PREFIX = "GATK"; // prefix for custom javadoc tags used by GATK -// -// private final static String GATK_FREEMARKER_TEMPLATE_NAME = "generic.template.html"; -// -// public GATKHelpDocWorkUnitHandler(final HelpDoclet doclet) { -// super(doclet); -// } -// /** -// * @return Prefix for custom GATK tags that should be lifted from the javadoc and stored in the -// * FreeMarker map. These will be available in the template returned by {@link #getTemplateName}. -// */ -// @Override -// protected String getTagFilterPrefix() { return GATK_JAVADOC_TAG_PREFIX; } -// -// /** -// * @param workUnit the classdoc object being processed -// * @return the name of a the freemarker template to be used for the class being documented. -// * Must reside in the folder passed to the Barclay Doclet via the "-settings-dir" parameter to -// * Javadoc. -// */ -// @Override -// public String getTemplateName(final DocWorkUnit workUnit) { return GATK_FREEMARKER_TEMPLATE_NAME; } -// -// -// /** -// * Add any custom freemarker bindings discovered via custom javadoc tags. Subclasses can override this to -// * provide additional custom bindings. -// * -// * @param currentWorkUnit the work unit for the feature being documented -// */ -// @Override -// protected void addCustomBindings(final DocWorkUnit currentWorkUnit) { -// super.addCustomBindings(currentWorkUnit); -// -// // Picard tools use the summary line for the long overview section, so extract that -// // from Picard tools only, and put it in the freemarker map. -// Class toolClass = currentWorkUnit.getClazz(); -// if (picard.cmdline.CommandLineProgram.class.isAssignableFrom(toolClass)) { -// final CommandLineProgramProperties clpProperties = currentWorkUnit.getCommandLineProperties(); -// currentWorkUnit.setProperty("picardsummary", clpProperties.summary()); -// } -// } -// -//} +package org.broadinstitute.hellbender.utils.help; + +import org.broadinstitute.barclay.argparser.CommandLineProgramProperties; +import org.broadinstitute.barclay.argparser.NamedArgumentDefinition; +import org.broadinstitute.barclay.help.DefaultDocWorkUnitHandler; +import org.broadinstitute.barclay.help.DocWorkUnit; + +import org.broadinstitute.barclay.help.HelpDoclet; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * The GATK Documentation work unit handler class that is the companion to GATKHelpDoclet. + * + * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called + * by methods that are used by the GATK runtime, as this class assumes a dependency on com.sun.javadoc classes + * which may not be present. + */ +public class GATKHelpDocWorkUnitHandler extends DefaultDocWorkUnitHandler { + + private final static String GATK_JAVADOC_TAG_PREFIX = "GATK"; // prefix for custom javadoc tags used by GATK + + private final static String GATK_FREEMARKER_TEMPLATE_NAME = "generic.template.html"; + + public GATKHelpDocWorkUnitHandler(final HelpDoclet doclet) { + super(doclet); + } + /** + * @return Prefix for custom GATK tags that should be lifted from the javadoc and stored in the + * FreeMarker map. These will be available in the template returned by {@link #getTemplateName}. + */ + @Override + protected String getTagFilterPrefix() { return GATK_JAVADOC_TAG_PREFIX; } + + /** + * @param workUnit the classdoc object being processed + * @return the name of a the freemarker template to be used for the class being documented. + * Must reside in the folder passed to the Barclay Doclet via the "-settings-dir" parameter to + * Javadoc. + */ + @Override + public String getTemplateName(final DocWorkUnit workUnit) { return GATK_FREEMARKER_TEMPLATE_NAME; } + + + /** + * Add any custom freemarker bindings discovered via custom javadoc tags. Subclasses can override this to + * provide additional custom bindings. + * + * @param currentWorkUnit the work unit for the feature being documented + */ + @Override + protected void addCustomBindings(final DocWorkUnit currentWorkUnit) { + super.addCustomBindings(currentWorkUnit); + + // Picard tools use the summary line for the long overview section, so extract that + // from Picard tools only, and put it in the freemarker map. + Class toolClass = currentWorkUnit.getClazz(); + if (picard.cmdline.CommandLineProgram.class.isAssignableFrom(toolClass)) { + final CommandLineProgramProperties clpProperties = currentWorkUnit.getCommandLineProperties(); + currentWorkUnit.setProperty("picardsummary", clpProperties.summary()); + } + } + +} diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDoclet.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDoclet.java index 9175d6bd557..6e3b222f9cc 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDoclet.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDoclet.java @@ -1,106 +1,97 @@ -//package org.broadinstitute.hellbender.utils.help; -// -//import org.broadinstitute.barclay.help.DocumentedFeature; -//import org.broadinstitute.barclay.help.DocWorkUnit; -//import org.broadinstitute.barclay.help.GSONWorkUnit; -//import org.broadinstitute.barclay.help.HelpDoclet; -// -//import java.io.IOException; -//import java.util.List; -//import java.util.Map; -// -///** -// * Custom Barclay-based Javadoc Doclet used for generating GATK help/documentation. -// * -// * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called -// * by methods that are used by the GATK runtime. This class has a dependency on com.sun.javadoc classes, -// * which may not be present since they're not provided as part of the normal GATK runtime classpath. -// */ -//@SuppressWarnings("removal") -//public class GATKHelpDoclet extends HelpDoclet { -// -// private final static String GATK_FREEMARKER_INDEX_TEMPLATE_NAME = "generic.index.template.html"; -// private final static String WALKER_TYPE_MAP_ENTRY = "walkertype"; // populated from javadoc custom tag -// -// /** -// * Create a doclet of the appropriate type and generate the FreeMarker templates properties. -// * @param rootDoc -// * @throws IOException -// */ -// public static boolean start(final com.sun.javadoc.RootDoc rootDoc) throws IOException { -// return new GATKHelpDoclet().startProcessDocs(rootDoc); -// } -// -// /** -// * Return the name of the freemarker template to be used for the index generated by Barclay. -// * Must reside in the folder passed to the Barclay Javadc Doclet via the "-settings-dir" parameter. -// * @return name of freemarker index template -// */ -// @Override -// public String getIndexTemplateName() { -// return GATK_FREEMARKER_INDEX_TEMPLATE_NAME; -// } -// -// /** -// * @return Create and return a DocWorkUnit-derived object to handle documentation -// * for the target feature(s) represented by documentedFeature. -// * -// * @param documentedFeature DocumentedFeature annotation for the target feature -// * @param classDoc javadoc classDoc for the target feature -// * @param clazz class of the target feature -// * @return DocWorkUnit to be used for this feature -// */ -// @Override -// protected DocWorkUnit createWorkUnit( -// final DocumentedFeature documentedFeature, -// final com.sun.javadoc.ClassDoc classDoc, -// final Class clazz) -// { -// return new GATKDocWorkUnit( -// new GATKHelpDocWorkUnitHandler(this), -// documentedFeature, -// classDoc, -// clazz); -// } -// -// /** -// * Create a GSONWorkUnit-derived object that holds our custom data. This method should create the object, and -// * propagate any custom javadoc tags from the template map to the newly created GSON object; specifically -// * "walkertype", which is pulled from a custom javadoc tag. -// * -// * @param workUnit work unit for which a GSON object is required -// * @param groupMaps -// * @param featureMaps -// * @return a GSONWorkUnit-derived object for this work unit, populated with any custom values -// */ -// @Override -// protected GSONWorkUnit createGSONWorkUnit( -// final DocWorkUnit workUnit, -// final List> groupMaps, -// final List> featureMaps) -// { -// GATKGSONWorkUnit gatkGSONWorkUnit = new GATKGSONWorkUnit(); -// gatkGSONWorkUnit.setWalkerType((String)workUnit.getRootMap().get(WALKER_TYPE_MAP_ENTRY)); -// return gatkGSONWorkUnit; -// } -// -// /** -// * Adds a super-category so that we can custom-order the categories in the doc index -// * -// * @param docWorkUnit -// * @return -// */ -// @Override -// protected final Map getGroupMap(final DocWorkUnit docWorkUnit) { -// final Map root = super.getGroupMap(docWorkUnit); -// -// /** -// * Add-on super-category definitions. The super-category and spark value strings need to be the -// * same as used in the Freemarker template. -// */ -// root.put("supercat", HelpConstants.getSuperCategoryProperty(docWorkUnit.getGroupName())); -// -// return root; -// } -// -//} +package org.broadinstitute.hellbender.utils.help; + +import org.broadinstitute.barclay.help.DocumentedFeature; +import org.broadinstitute.barclay.help.DocWorkUnit; +import org.broadinstitute.barclay.help.GSONWorkUnit; +import org.broadinstitute.barclay.help.HelpDoclet; + +import javax.lang.model.element.Element; +import java.util.List; +import java.util.Map; + +/** + * Custom Barclay-based Javadoc Doclet used for generating GATK help/documentation. + * + * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called + * by methods that are used by the GATK runtime. This class has a dependency on com.sun.javadoc classes, + * which may not be present since they're not provided as part of the normal GATK runtime classpath. + */ +@SuppressWarnings("removal") +public class GATKHelpDoclet extends HelpDoclet { + + private final static String GATK_FREEMARKER_INDEX_TEMPLATE_NAME = "generic.index.template.html"; + private final static String WALKER_TYPE_MAP_ENTRY = "walkertype"; // populated from javadoc custom tag + + /** + * Return the name of the freemarker template to be used for the index generated by Barclay. + * Must reside in the folder passed to the Barclay Javadc Doclet via the "-settings-dir" parameter. + * @return name of freemarker index template + */ + @Override + public String getIndexTemplateName() { + return GATK_FREEMARKER_INDEX_TEMPLATE_NAME; + } + + /** + * @return Create and return a DocWorkUnit-derived object to handle documentation + * for the target feature(s) represented by documentedFeature. + * + * @param classElement Element for the target feature + * @param clazz class of the target feature + * @param documentedFeature DocumentedFeature annotation for the target feature + * @return DocWorkUnit to be used for this feature + */ + @Override + public DocWorkUnit createWorkUnit( + final Element classElement, + final Class clazz, + final DocumentedFeature documentedFeature) + { + return new GATKDocWorkUnit( + new GATKHelpDocWorkUnitHandler(this), + classElement, + clazz, + documentedFeature); + } + + /** + * Create a GSONWorkUnit-derived object that holds our custom data. This method should create the object, and + * propagate any custom javadoc tags from the template map to the newly created GSON object; specifically + * "walkertype", which is pulled from a custom javadoc tag. + * + * @param workUnit work unit for which a GSON object is required + * @param groupMaps + * @param featureMaps + * @return a GSONWorkUnit-derived object for this work unit, populated with any custom values + */ + @Override + protected GSONWorkUnit createGSONWorkUnit( + final DocWorkUnit workUnit, + final List> groupMaps, + final List> featureMaps) + { + GATKGSONWorkUnit gatkGSONWorkUnit = new GATKGSONWorkUnit(workUnit); + gatkGSONWorkUnit.setWalkerType((String)workUnit.getRootMap().get(WALKER_TYPE_MAP_ENTRY)); + return gatkGSONWorkUnit; + } + + /** + * Adds a super-category so that we can custom-order the categories in the doc index + * + * @param docWorkUnit + * @return + */ + @Override + protected final Map getGroupMap(final DocWorkUnit docWorkUnit) { + final Map root = super.getGroupMap(docWorkUnit); + + /** + * Add-on super-category definitions. The super-category and spark value strings need to be the + * same as used in the Freemarker template. + */ + root.put("supercat", HelpConstants.getSuperCategoryProperty(docWorkUnit.getGroupName())); + + return root; + } + +} diff --git a/src/test/java/org/broadinstitute/hellbender/utils/help/DocumentationGenerationIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/utils/help/DocumentationGenerationIntegrationTest.java index 2b695b4bdc3..4e1bd2578d8 100644 --- a/src/test/java/org/broadinstitute/hellbender/utils/help/DocumentationGenerationIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/utils/help/DocumentationGenerationIntegrationTest.java @@ -1,64 +1,80 @@ -//package org.broadinstitute.hellbender.utils.help; -// -//import org.broadinstitute.hellbender.CommandLineProgramTest; -//import org.testng.Assert; -//import org.testng.annotations.Test; -// -//import java.io.File; -//import java.util.ArrayList; -//import java.util.Arrays; -//import java.util.List; -// -///** -// * Smoke test to run doc gen on a subset of classes to make sure it doesn't regress. -// */ -//public class DocumentationGenerationIntegrationTest extends CommandLineProgramTest { -// /** -// * Entry point for manually running the gatkDoc process on a subset of packages from within GATK. -// */ -// private static String[] docTestPackages = { -// "org.broadinstitute.hellbender.cmdline.argumentcollections", -// "org.broadinstitute.hellbender.cmdline.GATKPlugin", -// "org.broadinstitute.hellbender.engine.filters", -// "org.broadinstitute.hellbender.tools", -// "org.broadinstitute.hellbender.tools.spark", -// "org.broadinstitute.hellbender.tools.spark.pipelines", -// "org.broadinstitute.hellbender.tools.spark.pipelines.metrics", -// "org.broadinstitute.hellbender.tools.spark.transforms.bqsr", -// "org.broadinstitute.hellbender.tools.spark.transforms.markduplicates", -// "org.broadinstitute.hellbender.tools.walkers.bqsr", -// "org.broadinstitute.hellbender.tools.walkers.vqsr", -// "org.broadinstitute.hellbender.tools.walkers.variantutils", -// "picard.fingerprint", -// "picard.analysis" -// }; -// -// // suppress deprecation warning on Java 11 since we're using deprecated javadoc APIs -// @SuppressWarnings({"deprecation","removal"}) -// @Test -// public static void documentationSmokeTest() { -// final File docTestTarget = createTempDir("docgentest"); -// final String[] argArray = new String[]{ -// "javadoc", -// "-doclet", GATKHelpDoclet.class.getName(), -// "-docletpath", System.getProperty("java.class.path"), -// "-sourcepath", "src/main/java", -// "-settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/helpTemplates", -// "-d", docTestTarget.getAbsolutePath(), // directory must exist -// "-output-file-extension", "html", -// "-build-timestamp", "2016/11/11 11:11:11", -// "-absolute-version", "1.1-111", -// "-verbose" -// }; -// -// final List docArgList = new ArrayList<>(); -// docArgList.addAll(Arrays.asList(argArray)); -// docArgList.add("-cp"); -// docArgList.add(System.getProperty("java.class.path")); -// docArgList.addAll(Arrays.asList(docTestPackages)); -// -// // Run javadoc in the current JVM with the custom doclet, and make sure it succeeds (this is a smoke test; -// // we just want to make sure it doesn't blow up). -// Assert.assertEquals(com.sun.tools.javadoc.Main.execute(docArgList.toArray(new String[] {})), 0); -// } -//} +package org.broadinstitute.hellbender.utils.help; + +import org.broadinstitute.hellbender.CommandLineProgramTest; +import org.testng.Assert; +import org.testng.annotations.Test; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.ServiceLoader; +import java.util.spi.ToolProvider; + +/** + * Smoke test to run doc gen on a subset of classes to make sure it doesn't regress. + */ +public class DocumentationGenerationIntegrationTest extends CommandLineProgramTest { + /** + * Entry point for manually running the gatkDoc process on a subset of packages from within GATK. + */ + private static String[] docTestPackages = { + "org.broadinstitute.hellbender.cmdline.argumentcollections", + "org.broadinstitute.hellbender.cmdline.GATKPlugin", + "org.broadinstitute.hellbender.engine.filters", + "org.broadinstitute.hellbender.tools", + "org.broadinstitute.hellbender.tools.spark", + "org.broadinstitute.hellbender.tools.spark.pipelines", + "org.broadinstitute.hellbender.tools.spark.pipelines.metrics", + //"org.broadinstitute.hellbender.tools.spark.transforms.bqsr", + "org.broadinstitute.hellbender.tools.spark.transforms.markduplicates", + "org.broadinstitute.hellbender.tools.walkers.bqsr", + "org.broadinstitute.hellbender.tools.walkers.vqsr", + "org.broadinstitute.hellbender.tools.walkers.variantutils", + //"picard.fingerprint", + //"picard.analysis" + }; + + @Test + public static void documentationSmokeTest() { + final File docTestTarget = createTempDir("docgentest"); + final String[] argArray = new String[]{ + "-doclet", GATKHelpDoclet.class.getName(), + "-docletpath", System.getProperty("java.class.path"), + "-sourcepath", "src/main/java", + "-settings-dir", "src/main/resources/org/broadinstitute/hellbender/utils/helpTemplates", + "-d", docTestTarget.getAbsolutePath(), // directory must exist + "-output-file-extension", "html", + "-build-timestamp", "2016/11/11 11:11:11", + "-absolute-version", "1.1-111", + "-verbose" + }; + + final List docArgList = new ArrayList<>(); + docArgList.addAll(Arrays.asList(argArray)); + docArgList.add("-cp"); + docArgList.add(System.getProperty("java.class.path")); + docArgList.addAll(Arrays.asList(docTestPackages)); + + // Run javadoc in the current JVM with the custom doclet, and make sure it succeeds (this is a smoke test; + // we just want to make sure it doesn't blow up). + //Assert.assertEquals(com.sun.tools.javadoc.Main.execute(docArgList.toArray(new String[] {})), 0); + + ToolProvider jdProvider = null; + for (final ToolProvider tp : ServiceLoader.load(ToolProvider.class)) { + if (tp.name().equals("javadoc")) { + jdProvider = tp; + break; + } + } + if (jdProvider == null) { + throw new IllegalStateException("Can't find javadoc tool"); + } + + final String[] args = docArgList.toArray(new String[] {}); + + final int retCode = jdProvider.run(System.out, System.err, args); + Assert.assertEquals(retCode, 0); + + } +} From 3eed060fbef6680e34977c34ba9cfc275b633c0f Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Mon, 9 Jan 2023 14:37:21 -0500 Subject: [PATCH 13/36] Port gatkWDLGen doclet to Java 17. --- build.gradle | 1 + .../utils/help/GATKDocWorkUnit.java | 6 - .../help/GATKHelpDocWorkUnitHandler.java | 6 - .../hellbender/utils/help/GATKWDLDoclet.java | 426 ++++++----- .../utils/help/GATKWDLWorkUnitHandler.java | 712 +++++++++--------- ...ocumentationGenerationIntegrationTest.java | 1 - .../help/TabCompletionIntegrationTest.java | 203 ++--- .../hellbender/utils/help/TestWDLTool.java | 652 ++++++++-------- .../help/WDLGenerationIntegrationTest.java | 297 ++++---- 9 files changed, 1157 insertions(+), 1147 deletions(-) diff --git a/build.gradle b/build.gradle index 08164e6b337..5d489dd419e 100644 --- a/build.gradle +++ b/build.gradle @@ -232,6 +232,7 @@ configurations { dependencies { + implementation ('org.freemarker:freemarker:2.3.30') implementation 'org.broadinstitute:barclay:' + barclayVersion // Library for configuration: implementation 'org.aeonbits.owner:owner:1.0.9' diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java index d80d678a56d..3c1891dcc6a 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java @@ -1,16 +1,10 @@ package org.broadinstitute.hellbender.utils.help; -import org.broadinstitute.barclay.argparser.NamedArgumentDefinition; import org.broadinstitute.barclay.help.DocWorkUnit; import org.broadinstitute.barclay.help.DocWorkUnitHandler; import org.broadinstitute.barclay.help.DocumentedFeature; - import org.broadinstitute.hellbender.utils.runtime.RuntimeUtils; - import javax.lang.model.element.Element; -import java.util.HashMap; -import java.util.List; -import java.util.Map; /** * Custom DocWorkUnit used for generating GATK help/documentation. Overrides the defaults to provide tool diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java index 2bd660f3354..098e81caf75 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java @@ -1,16 +1,10 @@ package org.broadinstitute.hellbender.utils.help; import org.broadinstitute.barclay.argparser.CommandLineProgramProperties; -import org.broadinstitute.barclay.argparser.NamedArgumentDefinition; import org.broadinstitute.barclay.help.DefaultDocWorkUnitHandler; import org.broadinstitute.barclay.help.DocWorkUnit; - import org.broadinstitute.barclay.help.HelpDoclet; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - /** * The GATK Documentation work unit handler class that is the companion to GATKHelpDoclet. * diff --git a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLDoclet.java b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLDoclet.java index 47fabca8f09..2fa6eec600d 100644 --- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLDoclet.java +++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLDoclet.java @@ -1,222 +1,216 @@ -//package org.broadinstitute.hellbender.utils.help; -// -//import freemarker.template.Configuration; -//import freemarker.template.Template; -//import freemarker.template.TemplateException; -//import org.apache.commons.io.FilenameUtils; -//import org.broadinstitute.barclay.argparser.CommandLineProgramProperties; -//import org.broadinstitute.barclay.argparser.WorkflowProperties; -//import org.broadinstitute.barclay.help.*; -// -//import java.io.*; -//import java.util.List; -//import java.util.Map; -// -///** -// * Custom Barclay-based Javadoc Doclet used for generating tool WDL. -// * -// * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called -// * by methods that are used by the GATK runtime. This class has a dependency on com.sun.javadoc classes, -// * which may not be present since they're not provided as part of the normal GATK runtime classpath. -// */ -//@SuppressWarnings("removal") -//public class GATKWDLDoclet extends WDLDoclet { -// -// // emit an index file with links to all of the .wdl files -// private final static String GATK_FREEMARKER_INDEX_TEMPLATE_NAME = "wdlIndexTemplate.html.ftl"; -// -// // the directory where the wdlgen build is running -// public final static String OPT_BUILD_DIR = "-build-dir"; -// private String buildDir; -// -// @Override -// public String getIndexFileExtension() { return "html"; } -// -// /** -// * Validates the given options against options supported by this doclet. -// * -// * @param option Option to validate. -// * @return Number of potential parameters; 0 if not supported. -// */ -// public static int optionLength(final String option) { -// // Any arguments used for the doclet need to be recognized here. Many javadoc plugins (ie. gradle) -// // automatically add some such as "-doctitle", "-windowtitle", which we ignore. -// if (option.equals(OPT_BUILD_DIR)) { -// return 2; -// } -// return WDLDoclet.optionLength(option); -// } -// -// @Override -// protected boolean parseOption(final String[] option) { -// if (option[0].equals(OPT_BUILD_DIR)) { -// buildDir = option[1]; -// return true; -// } else { -// return super.parseOption(option); -// } -// } -// +package org.broadinstitute.hellbender.utils.help; + +import freemarker.template.Configuration; +import freemarker.template.Template; +import freemarker.template.TemplateException; +import jdk.javadoc.doclet.Doclet; +import org.apache.commons.io.FilenameUtils; +import org.broadinstitute.barclay.help.*; + +import javax.lang.model.element.Element; +import java.io.*; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * Custom Barclay-based Javadoc Doclet used for generating tool WDL. + * + * NOTE: Methods in this class are intended to be called by Gradle/Javadoc only, and should not be called + * by methods that are used by the GATK runtime. This class has a dependency on com.sun.javadoc classes, + * which may not be present since they're not provided as part of the normal GATK runtime classpath. + */ +@SuppressWarnings("removal") +public class GATKWDLDoclet extends WDLDoclet { + + // emit an index file with links to all the .wdl files + private final static String GATK_FREEMARKER_INDEX_TEMPLATE_NAME = "wdlIndexTemplate.html.ftl"; + + // the directory where the wdlgen build is running + public final static String OPT_BUILD_DIR = "-build-dir"; + private String buildDir; + + @Override + public String getIndexFileExtension() { return "html"; } + + @Override + public Set getSupportedOptions() { + final Set