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..fde6626e9f3 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.0.6+10 ]
experimental: [ false ]
- scalaVersion: [ 2.11, 2.12 ]
+ scalaVersion: [ 2.13 ]
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'
@@ -134,7 +125,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 +145,9 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- java: [ 8 ]
+ java: [ 17.0.6+10 ]
experimental: [ false ]
- scalaVersion: [ 2.11 ]
+ scalaVersion: [ 2.13 ]
testType: [ integration, unit, variantcalling, conda ]
fail-fast: false
continue-on-error: ${{ matrix.experimental }}
@@ -174,7 +165,7 @@ jobs:
uses: actions/setup-java@v2
with:
java-version: ${{ matrix.Java }}
- distribution: 'adopt'
+ distribution: 'temurin'
cache: gradle
#Google Cloud stuff
@@ -259,6 +250,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 +270,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 +297,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:
diff --git a/Dockerfile b/Dockerfile
index 22eda099cf0..2e85b4d8c84 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.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz
+RUN tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.*.tar.gz
+RUN mv jdk-17.0.6+10 /opt/
+#
+ENV JAVA_HOME /opt/jdk-17.0.6+10
+ENV PATH $JAVA_HOME/bin:$PATH
+RUN echo $JAVA_HOME
+RUN update-alternatives --install /usr/bin/java java /opt/jdk-17.0.6+10/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.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz
+RUN tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.*.tar.gz
+RUN mv jdk-17.0.6+10 /opt/
+
+ENV JAVA_HOME /opt/jdk-17.0.6+10
+ENV PATH $JAVA_HOME/bin:$PATH
+RUN echo $JAVA_HOME
+RUN update-alternatives --install /usr/bin/java java /opt/jdk-17.0.6+10/bin/java 1
+RUN java -version
+
WORKDIR /gatk
# Location of the unzipped gatk bundle files
@@ -56,11 +89,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..1dc2bb366b8 100644
--- a/README.md
+++ b/README.md
@@ -51,18 +51,16 @@ 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.
- * 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.
* 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 +453,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)
@@ -471,13 +469,13 @@ 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 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 17.
* Click "Finish"
* 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 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..26d7e0a4fc3 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
}
@@ -60,11 +56,10 @@ repositories {
mavenLocal()
}
-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 htsjdkVersion = System.getProperty('htsjdk.version','3.0.5')
+final picardVersion = System.getProperty('picard.version','3.0.0')
+final barclayVersion = System.getProperty('barclay.version','5.0.0')
+final sparkVersion = System.getProperty('spark.version', '3.3.1')
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 +133,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 +171,14 @@ 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'
}
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'
@@ -225,28 +217,21 @@ configurations {
// exclude Hadoop and Spark dependencies, since they are provided when running with Spark
// (ref: http://unethicalblogger.com/2015/07/15/gradle-goodness-excluding-depends-from-shadow.html)
exclude group: 'org.apache.hadoop'
- exclude module: 'spark-core_2.11'
+ exclude module: 'spark-core_2.12'
exclude group: 'org.slf4j'
exclude module: 'jul-to-slf4j'
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.15'
exclude group: 'org.scala-lang'
exclude module: 'kryo'
}
}
-// 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.freemarker:freemarker:2.3.30')
implementation 'org.broadinstitute:barclay:' + barclayVersion
// Library for configuration:
implementation 'org.aeonbits.owner:owner:1.0.9'
@@ -312,7 +297,9 @@ dependencies {
implementation ('org.ojalgo:ojalgo-commons-math3:1.0.0') {
exclude group: 'org.apache.commons'
}
- 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'
exclude module: 'javax.servlet'
@@ -321,7 +308,7 @@ 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'
exclude group: 'org.scala-lang'
@@ -336,7 +323,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
}
@@ -350,17 +337,6 @@ dependencies {
implementation('com.github.fommil.netlib:netlib-native_system-linux-x86_64:1.1:natives')
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'
- exclude group: 'org.ow2.asm', module: 'asm'
- }
-
- // 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'
}
@@ -375,7 +351,7 @@ 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
testUtilsImplementation 'org.testng:testng:' + testNGVersion
@@ -387,6 +363,99 @@ dependencies {
testImplementation "com.google.jimfs:jimfs:1.1"
}
+// This list needs to be kept in sync with the corresponding list in scripts/dockertest.gradle.
+//
+// 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.)
+// - 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 {
+ // 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 {
+ // 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
processResources {
from("gatk")
@@ -399,8 +468,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 {
@@ -424,15 +493,22 @@ logger.info("build for version:" + version)
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, 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(' '))
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,
'htsjdk-Version': htsjdkVersion,
'Spark-Version': sparkVersion,
- 'Multi-Release': 'true'
+ 'Multi-Release': 'true',
+ 'Add-Opens': manifestAddOpens
}
}
@@ -496,6 +572,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 {
@@ -635,7 +712,7 @@ tasks.withType(Javadoc) {
}
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) })
@@ -644,7 +721,7 @@ javadoc {
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
@@ -687,8 +764,8 @@ task gatkDoc(type: Javadoc, dependsOn: classes) {
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"
@@ -706,7 +783,7 @@ task gatkDoc(type: Javadoc, dependsOn: classes) {
options.addStringOption("index-file-extension", phpExtension)
}
options.addStringOption("absolute-version", getVersion())
- options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME))
+ options.addStringOption("build-timestamp", ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME).toString())
}
// Generate GATK Bash Tab Completion File
@@ -726,8 +803,8 @@ task gatkTabComplete(type: Javadoc, dependsOn: classes) {
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, including Picard.
+ classpath = sourceSets.main.runtimeClasspath
options.docletpath = classpath.asType(List)
options.doclet = "org.broadinstitute.barclay.help.BashTabCompletionDoclet"
@@ -788,8 +865,8 @@ task gatkWDLGen(type: Javadoc, dependsOn: classes) {
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 45559912047..c0c455555af 100755
--- a/gatk
+++ b/gatk
@@ -39,10 +39,12 @@ EXTRA_JAVA_OPTIONS_SPARK= "-DGATK_STACKTRACE_ON_USER_EXCEPTION=true " \
"-Dsamjdk.use_async_io_write_tribble=false " \
"-Dsamjdk.compression_level=2 "
-PACKAGED_LOCAL_JAR_OPTIONS= ["-Dsamjdk.use_async_io_read_samtools=false",
+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"
+]
DEFAULT_SPARK_ARGS_PREFIX = '--conf'
DEFAULT_SPARK_ARGS = {
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 7454180f2ae..41d9927a4d4 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/jitpack.yml b/jitpack.yml
deleted file mode 100644
index 55044fd7bfc..00000000000
--- a/jitpack.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-# configuration file for building snapshots and releases with jitpack.io
-jdk:
- - openjdk8
-before_install:
- - ./scripts/prepareJitpackEnvironment.sh
diff --git a/scripts/docker/dockertest.gradle b/scripts/docker/dockertest.gradle
index 3623dc18b52..15b61e4c847 100644
--- a/scripts/docker/dockertest.gradle
+++ b/scripts/docker/dockertest.gradle
@@ -36,6 +36,88 @@ task unpackTestJar(type: Copy){
}
}
+// 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
+}
+
+test {
+ jvmArgs = getJVMArgs(runtimeAddOpens, testAddOpens)
+ jacoco {
+ jvmArgs = getJVMArgs(runtimeAddOpens, testAddOpens)
+ }
+}
+
task testOnPackagedReleaseJar(type: Test){
String testClassesJar = "$System.env.TEST_JAR"
String testDependencyJar = "$System.env.TEST_DEPENDENCY_JAR"
@@ -60,6 +142,8 @@ task testOnPackagedReleaseJar(type: Test){
classpath.each {println it}
}
+ jvmArgs = getJVMArgs(runtimeAddOpens, testAddOpens)
+
classpath = files( gatkJar, testDependencyJar, testClassesJar)
testClassesDirs = files(testClassesUnpacked)
}
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 extends Annotation> 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..e30ad0b62e0 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);
@@ -167,7 +171,7 @@ private static FlatMapFunction, VariantCon
final Broadcast annotatorEngineBroadcast) {
return (FlatMapFunction, VariantContext>) 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/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;
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/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/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..3c1891dcc6a 100644
--- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java
+++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKDocWorkUnit.java
@@ -3,8 +3,8 @@
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;
/**
* Custom DocWorkUnit used for generating GATK help/documentation. Overrides the defaults to provide tool
@@ -19,10 +19,10 @@ 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);
+ final Element classElement,
+ final Class> clazz,
+ final DocumentedFeature documentedFeatureAnnotation) {
+ super(workUnitHandler, classElement, clazz, documentedFeatureAnnotation);
}
@Override
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..11c5f1e5259 100644
--- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKGSONWorkUnit.java
+++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKGSONWorkUnit.java
@@ -12,9 +12,7 @@ public class GATKGSONWorkUnit extends GSONWorkUnit {
private String walkerType;
- public GATKGSONWorkUnit(DocWorkUnit workUnit) {
- super(workUnit);
- }
+ 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 ab2cf1a9d06..098e81caf75 100644
--- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java
+++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDocWorkUnitHandler.java
@@ -3,7 +3,6 @@
import org.broadinstitute.barclay.argparser.CommandLineProgramProperties;
import org.broadinstitute.barclay.help.DefaultDocWorkUnitHandler;
import org.broadinstitute.barclay.help.DocWorkUnit;
-
import org.broadinstitute.barclay.help.HelpDoclet;
/**
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..6e3b222f9cc 100644
--- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDoclet.java
+++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKHelpDoclet.java
@@ -5,7 +5,7 @@
import org.broadinstitute.barclay.help.GSONWorkUnit;
import org.broadinstitute.barclay.help.HelpDoclet;
-import java.io.IOException;
+import javax.lang.model.element.Element;
import java.util.List;
import java.util.Map;
@@ -22,15 +22,6 @@ 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.
@@ -45,22 +36,22 @@ public String getIndexTemplateName() {
* @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 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
- protected DocWorkUnit createWorkUnit(
- final DocumentedFeature documentedFeature,
- final com.sun.javadoc.ClassDoc classDoc,
- final Class> clazz)
+ public DocWorkUnit createWorkUnit(
+ final Element classElement,
+ final Class> clazz,
+ final DocumentedFeature documentedFeature)
{
return new GATKDocWorkUnit(
new GATKHelpDocWorkUnitHandler(this),
- documentedFeature,
- classDoc,
- clazz);
+ classElement,
+ clazz,
+ documentedFeature);
}
/**
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..b90b1d57cf5 100644
--- a/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLDoclet.java
+++ b/src/main/java/org/broadinstitute/hellbender/utils/help/GATKWDLDoclet.java
@@ -3,14 +3,16 @@
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.argparser.CommandLineProgramProperties;
-import org.broadinstitute.barclay.argparser.WorkflowProperties;
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.
@@ -22,7 +24,7 @@
@SuppressWarnings("removal")
public class GATKWDLDoclet extends WDLDoclet {
- // emit an index file with links to all of the .wdl files
+ // 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
@@ -32,38 +34,20 @@ public class GATKWDLDoclet extends WDLDoclet {
@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);
+ public Set extends Option> getSupportedOptions() {
+ final Set options = new LinkedHashSet<>();
+ options.addAll(super.getSupportedOptions());
+ final Doclet.Option localOption =
+ new BarclayDocletOption.SimpleStandardOption(OPT_BUILD_DIR) {
+ @Override
+ public boolean process(String option, List arguments) {
+ buildDir = arguments.get(0);
+ return true;
+ }
+ };
+ options.add(localOption);
+ return options;
}
/**
@@ -87,25 +71,25 @@ public String getIndexTemplateName() {
* @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 classElement the Element for the class for this workunit
* @param clazz class of the target feature
- * @return DocWorkUnit to be used for this feature
+ * @param documentedFeature DocumentedFeature annotation for the target feature
+ * @return
*/
@Override
- protected DocWorkUnit createWorkUnit(
- final DocumentedFeature documentedFeature,
- final com.sun.javadoc.ClassDoc classDoc,
- final Class> clazz)
+ public DocWorkUnit createWorkUnit(
+ final Element classElement,
+ final Class> clazz,
+ final DocumentedFeature documentedFeature)
{
- return includeInDocs(documentedFeature, classDoc, clazz) ?
+ return includeInDocs(documentedFeature, 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) :
+ classElement,
+ clazz,
+ documentedFeature) :
null;
}
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..ee21fd764e1 100644
--- a/src/test/java/org/broadinstitute/hellbender/MainTest.java
+++ b/src/test/java/org/broadinstitute/hellbender/MainTest.java
@@ -1,17 +1,15 @@
package org.broadinstitute.hellbender;
import org.broadinstitute.barclay.argparser.CommandLineProgramProperties;
+import org.broadinstitute.barclay.argparser.ClassFinder;
import org.broadinstitute.hellbender.cmdline.CommandLineProgram;
import org.broadinstitute.hellbender.cmdline.PicardCommandLineProgramExecutor;
import org.broadinstitute.hellbender.cmdline.TestProgramGroup;
import org.broadinstitute.hellbender.exceptions.UserException;
import org.testng.Assert;
import org.testng.annotations.Test;
-import picard.cmdline.ClassFinder;
-import picard.cmdline.PicardCommandLine;
import java.lang.reflect.Modifier;
-import java.security.Permission;
import java.util.Collections;
import java.util.List;
import java.util.function.BiConsumer;
@@ -66,54 +64,6 @@ 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);
- }
- }
-
@Test
public void testEnsureShortDescriptionsAreShort() {
// Test each command line tool to ensure that one line summaries don't exceed the maximum allowable length
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..40a53351ebf 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(), List.of("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..177369c0926 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,7 @@ 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, () -> 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..e1800e1ed29 100644
--- a/src/test/java/org/broadinstitute/hellbender/utils/help/DocumentationGenerationIntegrationTest.java
+++ b/src/test/java/org/broadinstitute/hellbender/utils/help/DocumentationGenerationIntegrationTest.java
@@ -5,9 +5,13 @@
import org.testng.annotations.Test;
import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.spi.ToolProvider;
/**
* Smoke test to run doc gen on a subset of classes to make sure it doesn't regress.
@@ -24,41 +28,51 @@ public class DocumentationGenerationIntegrationTest extends CommandLineProgramTe
"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.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"
+ //"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"
- };
+ public void documentationSmokeTest() throws IOException {
+ if (!isGATKDockerContainer()) {
+ 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));
+ 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);
+ // 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).
+ final ToolProvider jdProvider = ToolProvider.findFirst("javadoc")
+ .orElseThrow(() -> new IllegalStateException("Can't find javadoc tool"));
+
+ try (final StringWriter stringWriter = new StringWriter();
+ final PrintWriter outputWriter = new PrintWriter(stringWriter)) {
+
+ final String[] args = docArgList.toArray(new String[]{});
+ final int retCode = jdProvider.run(outputWriter, outputWriter, args);
+
+ // just make sure the task succeeded
+ Assert.assertEquals(retCode, 0, stringWriter.toString());
+ }
+ }
}
}
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..68a00c55cf5 100644
--- a/src/test/java/org/broadinstitute/hellbender/utils/help/TabCompletionIntegrationTest.java
+++ b/src/test/java/org/broadinstitute/hellbender/utils/help/TabCompletionIntegrationTest.java
@@ -10,6 +10,7 @@
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.spi.ToolProvider;
import java.util.stream.Collectors;
/**
@@ -39,56 +40,67 @@ public class TabCompletionIntegrationTest extends CommandLineProgramTest {
// 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);
+ public void tabCompleteSmokeTest() throws IOException {
+ if (!isGATKDockerContainer()) {
+ final File tabCompletionTestTarget = createTempDir("tabCompletionTest");
+
+ // Setup rote input arguments:
+ final List argList = Arrays.asList(
+
+ "-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).
+ final ToolProvider jdProvider = ToolProvider.findFirst("javadoc")
+ .orElseThrow(() -> new IllegalStateException("Can't find javadoc tool"));
+
+ try (final StringWriter stringWriter = new StringWriter();
+ final PrintWriter outputWriter = new PrintWriter(stringWriter)) {
+
+ final String[] args = docArgList.toArray(new String[]{});
+ final int retCode = jdProvider.run(outputWriter, outputWriter, args);
+
+ // just make sure the task succeeded
+ Assert.assertEquals(retCode, 0, stringWriter.toString());
+ }
+ }
}
}
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..ffd7f79e2f2 100644
--- a/src/test/java/org/broadinstitute/hellbender/utils/help/WDLGenerationIntegrationTest.java
+++ b/src/test/java/org/broadinstitute/hellbender/utils/help/WDLGenerationIntegrationTest.java
@@ -8,13 +8,9 @@
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.io.*;
+import java.util.*;
+import java.util.spi.ToolProvider;
import java.util.stream.Collectors;
import org.broadinstitute.hellbender.testutils.IntegrationTestSpec;
@@ -40,13 +36,15 @@ public class WDLGenerationIntegrationTest extends CommandLineProgramTest {
@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);
+ if (!isGATKDockerContainer()) {
+ 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);
+ }
}
}
@@ -54,54 +52,56 @@ private void wdlGenSmokeTest() throws IOException, ParseException {
// 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));
+ if (!isGATKDockerContainer()) {
+ 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 {
@@ -112,10 +112,9 @@ private void assertValidJSONFile(final File targetFile) throws IOException, Pars
// 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) {
+ private void doWDLGenTest(List testPackages, final String sourcePath, final File wdlTestTargetDir) throws IOException {
final String[] argArray = new String[]{
- "javadoc",
"-doclet", GATKWDLDoclet.class.getName(),
"-docletpath", System.getProperty("java.class.path"),
"-sourcepath", sourcePath,
@@ -134,9 +133,20 @@ private void doWDLGenTest(List testPackages, final String sourcePath, fi
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);
+ // 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).
+ final ToolProvider jdProvider = ToolProvider.findFirst("javadoc")
+ .orElseThrow(() -> new IllegalStateException("Can't find javadoc tool"));
+
+ try (final StringWriter stringWriter = new StringWriter();
+ final PrintWriter outputWriter = new PrintWriter(stringWriter)) {
+
+ final String[] args = docArgList.toArray(new String[]{});
+ final int retCode = jdProvider.run(outputWriter, outputWriter, args);
+
+ // just make sure the task succeeded
+ Assert.assertEquals(retCode, 0, stringWriter.toString());
+ }
}
}
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..eee6ff4e74a 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 " +
+ logger.error( "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(),