From f2e539c52f3530e8de827158e5461faf9ac224ae Mon Sep 17 00:00:00 2001 From: rpoplin Date: Fri, 15 Jan 2010 18:18:59 +0000 Subject: [PATCH] As per discussions with Tim we are reverting the previous change regarding PairedReadOrderCovariate. The CycleCovariate now differentiates between first and second of pair by multiplying the cycle by -1. PairedReadOrderCovariate has been removed completely. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2592 348d0f76-0448-11de-a6fe-93d51630548a --- .../walkers/recalibration/CycleCovariate.java | 16 ++++++----- .../PairedReadOrderCovariate.java | 26 ------------------ .../recalibration/RecalDataManager.java | 2 +- .../RecalibrationWalkersIntegrationTest.java | 27 +++++++++---------- packages/GenomeAnalysisTK.xml | 2 -- 5 files changed, 24 insertions(+), 49 deletions(-) delete mode 100644 java/src/org/broadinstitute/sting/gatk/walkers/recalibration/PairedReadOrderCovariate.java diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CycleCovariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CycleCovariate.java index 6c601a61c..eaa98bb1d 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CycleCovariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CycleCovariate.java @@ -50,7 +50,8 @@ public class CycleCovariate implements StandardCovariate { // Initialize any member variables using the command-line arguments passed to the walkers public void initialize( final RecalibrationArgumentCollection RAC ) { - if( RAC.DEFAULT_PLATFORM.equalsIgnoreCase( "ILLUMINA" ) || RAC.DEFAULT_PLATFORM.contains( "454" ) || RAC.DEFAULT_PLATFORM.equalsIgnoreCase( "SOLID" ) ) { + if( RAC.DEFAULT_PLATFORM.equalsIgnoreCase( "SLX" ) || RAC.DEFAULT_PLATFORM.equalsIgnoreCase( "ILLUMINA" ) || + RAC.DEFAULT_PLATFORM.contains( "454" ) || RAC.DEFAULT_PLATFORM.equalsIgnoreCase( "SOLID" ) ) { defaultPlatform = RAC.DEFAULT_PLATFORM; } else { throw new StingException( "The requested default platform (" + RAC.DEFAULT_PLATFORM +") is not a recognized platform. Implemented options are illumina, 454, and solid"); @@ -66,7 +67,8 @@ public class CycleCovariate implements StandardCovariate { // ILLUMINA and SOLID //----------------------------- - if( read.getReadGroup().getPlatform().equalsIgnoreCase( "ILLUMINA" ) || read.getReadGroup().getPlatform().equalsIgnoreCase( "SOLID" ) ) { + if( read.getReadGroup().getPlatform().equalsIgnoreCase( "ILLUMINA" ) || read.getReadGroup().getPlatform().equalsIgnoreCase( "SLX" ) || + read.getReadGroup().getPlatform().equalsIgnoreCase( "SOLID" ) ) { // Some bams have "illumina" and others have "SLX" cycle = offset + 1; if( read.getReadNegativeStrandFlag() ) { cycle = read.getReadLength() - offset; @@ -141,11 +143,13 @@ public class CycleCovariate implements StandardCovariate { return getValue( read, offset ); // A recursive call } - // This functionality was moved to PairedReadOrderCovariate // Differentiate between first and second of pair - //if( read.getReadPairedFlag() && read.getSecondOfPairFlag() ) { - // cycle *= -1; - //} + // The sequencing machine cycle keeps incrementing for the second read in a pair. So it is possible for a read group + // to have an error affecting quality at a particular cycle on only second of pair reads. Therefore the cycle covariate must differentiate + // between first and second of pair reads. + if( read.getReadPairedFlag() && read.getSecondOfPairFlag() ) { + cycle *= -1; + } return cycle; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/PairedReadOrderCovariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/PairedReadOrderCovariate.java deleted file mode 100644 index bc3ffda0d..000000000 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/PairedReadOrderCovariate.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.broadinstitute.sting.gatk.walkers.recalibration; - -import net.sf.samtools.SAMRecord; - -/** - * Created by IntelliJ IDEA. - * User: chartl - * Date: Dec 16, 2009 - */ - -public class PairedReadOrderCovariate implements StandardCovariate{ - - // Initialize any member variables using the command-line arguments passed to the walkers - public void initialize ( final RecalibrationArgumentCollection rac ) { /* do nothing */ } - - // Used to pick out the covariate's value from attributes of the read - public final Comparable getValue( final SAMRecord read, final int offset ) { - return read.getReadPairedFlag() ? (read.getFirstOfPairFlag() ? "First_Read" : "Second_Read") : "Not_Paired"; - } - - // Used to get the covariate's value from input csv file in TableRecalibrationWalker - public final Comparable getValue( final String str ) { - return str; - } - -} diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/RecalDataManager.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/RecalDataManager.java index 9c88e46db..4e9a40df4 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/RecalDataManager.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/RecalDataManager.java @@ -57,7 +57,7 @@ public class RecalDataManager { private static boolean warnUserNullReadGroup = false; private static boolean warnUserNoColorSpace = false; - public static final String versionString = "v2.2.11"; // Major version, minor version, and build number + public static final String versionString = "v2.2.12"; // Major version, minor version, and build number RecalDataManager() { data = new NestedHashMap(); diff --git a/java/test/org/broadinstitute/sting/gatk/walkers/recalibration/RecalibrationWalkersIntegrationTest.java b/java/test/org/broadinstitute/sting/gatk/walkers/recalibration/RecalibrationWalkersIntegrationTest.java index 971e5a8f1..e9aa37be2 100755 --- a/java/test/org/broadinstitute/sting/gatk/walkers/recalibration/RecalibrationWalkersIntegrationTest.java +++ b/java/test/org/broadinstitute/sting/gatk/walkers/recalibration/RecalibrationWalkersIntegrationTest.java @@ -16,10 +16,10 @@ public class RecalibrationWalkersIntegrationTest extends WalkerTest { @Test public void testCountCovariates1() { HashMap e = new HashMap(); - e.put( validationDataLocation + "NA12892.SLX.SRP000031.2009_06.selected.bam", "e67a329112061beba0f774844e5f4635" ); - e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SOLID.bam", "a626fa8f9c3836ec9764a718c4b6a27f"); - e.put( validationDataLocation + "NA12873.454.SRP000031.2009_06.chr1.10_20mb.bam", "284939b3760a95f51c350c8340b99b31" ); - e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.allTechs.bam", "c7c28128edf4a54e6ac9e752ebaca697" ); + e.put( validationDataLocation + "NA12892.SLX.SRP000031.2009_06.selected.bam", "e5b2d5a2f4283718dae678cbc84be847" ); + e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SOLID.bam", "89084b43b824f9e3c5e2afdfe0930542"); + e.put( validationDataLocation + "NA12873.454.SRP000031.2009_06.chr1.10_20mb.bam", "7d6428a76e07ed4b99351aa4df89634d" ); + e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.allTechs.bam", "6ede6fc840c4e5070a58a919b48e7504" ); for ( Map.Entry entry : e.entrySet() ) { String bam = entry.getKey(); @@ -37,7 +37,6 @@ public class RecalibrationWalkersIntegrationTest extends WalkerTest { " -cov CycleCovariate" + " -cov DinucCovariate" + " -cov TileCovariate" + - " -cov PairedReadOrderCovariate" + " --solid_recal_mode SET_Q_ZERO" + " -recalFile %s", 1, // just one output file @@ -50,10 +49,10 @@ public class RecalibrationWalkersIntegrationTest extends WalkerTest { @Test public void testTableRecalibrator1() { HashMap e = new HashMap(); - e.put( validationDataLocation + "NA12892.SLX.SRP000031.2009_06.selected.bam", "c0dbc69726e1827e1eabdc777d8435e2" ); - e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SOLID.bam", "b6a1749aa311f5c50097280579c638a3"); - e.put( validationDataLocation + "NA12873.454.SRP000031.2009_06.chr1.10_20mb.bam", "b5bd41672805e15c6a5187c902c1ef9a" ); - e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.allTechs.bam", "51aeb06db11b66d9e1199ebed9c0562c" ); + e.put( validationDataLocation + "NA12892.SLX.SRP000031.2009_06.selected.bam", "6c59d291c37d053e0f188b762f3060a5" ); + e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SOLID.bam", "e06f1397b9c40f75e96cd3df76730ee0"); + e.put( validationDataLocation + "NA12873.454.SRP000031.2009_06.chr1.10_20mb.bam", "7ebdce416b72679e1cf88cc9886a5edc" ); + e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.allTechs.bam", "48ddc93cae054f9423f3a7ed9f36540e" ); for ( Map.Entry entry : e.entrySet() ) { String bam = entry.getKey(); @@ -81,7 +80,7 @@ public class RecalibrationWalkersIntegrationTest extends WalkerTest { @Test public void testTableRecalibratorMaxQ70() { HashMap e = new HashMap(); - e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SOLID.bam", "df4f9bf64cf1a7aa890b28de043cac40" ); + e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SOLID.bam", "665711dfb81d67582b28faea24e26160" ); for ( Map.Entry entry : e.entrySet() ) { String bam = entry.getKey(); @@ -113,7 +112,7 @@ public class RecalibrationWalkersIntegrationTest extends WalkerTest { @Test public void testCountCovariatesVCF() { HashMap e = new HashMap(); - e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SOLID.bam", "e11048d253a5ca719a373a9dd8e18f40"); + e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SOLID.bam", "9b9d21ffb70f15ef2aebad21f3fc05cb"); for ( Map.Entry entry : e.entrySet() ) { String bam = entry.getKey(); @@ -140,7 +139,7 @@ public class RecalibrationWalkersIntegrationTest extends WalkerTest { @Test public void testCountCovariatesVCFPlusDBsnp() { HashMap e = new HashMap(); - e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SOLID.bam", "33fa86ad0116f727dd6428bb5a2daf30"); + e.put( validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SOLID.bam", "cc1cc9c1ff184d388d81574fdccc608e"); for ( Map.Entry entry : e.entrySet() ) { String bam = entry.getKey(); @@ -168,7 +167,7 @@ public class RecalibrationWalkersIntegrationTest extends WalkerTest { @Test public void testCountCovariatesNoReadGroups() { HashMap e = new HashMap(); - e.put( validationDataLocation + "NA12762.SOLID.SRP000031.2009_07.chr1.10_20mb.bam", "e7031fdf3a88c27ce1b3d5d425860286" ); + e.put( validationDataLocation + "NA12762.SOLID.SRP000031.2009_07.chr1.10_20mb.bam", "a86c64f649b847b7f81ac50a808d3d45" ); for ( Map.Entry entry : e.entrySet() ) { String bam = entry.getKey(); @@ -197,7 +196,7 @@ public class RecalibrationWalkersIntegrationTest extends WalkerTest { @Test public void testTableRecalibratorNoReadGroups() { HashMap e = new HashMap(); - e.put( validationDataLocation + "NA12762.SOLID.SRP000031.2009_07.chr1.10_20mb.bam", "de1a08b45250f090f19e6a35d449c50c" ); + e.put( validationDataLocation + "NA12762.SOLID.SRP000031.2009_07.chr1.10_20mb.bam", "32ad300e8c094ed2c1ec6c531180fe70" ); for ( Map.Entry entry : e.entrySet() ) { String bam = entry.getKey(); diff --git a/packages/GenomeAnalysisTK.xml b/packages/GenomeAnalysisTK.xml index 4c917ad2b..9a32eb94d 100644 --- a/packages/GenomeAnalysisTK.xml +++ b/packages/GenomeAnalysisTK.xml @@ -26,7 +26,6 @@ org.broadinstitute.sting.gatk.walkers.recalibration.ReadGroupCovariate org.broadinstitute.sting.gatk.walkers.recalibration.HomopolymerCovariate org.broadinstitute.sting.gatk.walkers.recalibration.TileCovariate - org.broadinstitute.sting.gatk.walkers.recalibration.PairedReadOrderCovariate org.broadinstitute.sting.gatk.walkers.indels.CleanedReadInjector org.broadinstitute.sting.gatk.walkers.indels.IndelIntervalWalker @@ -66,7 +65,6 @@ org.broadinstitute.sting.gatk.walkers.recalibration.ReadGroupCovariate org.broadinstitute.sting.gatk.walkers.recalibration.HomopolymerCovariate org.broadinstitute.sting.gatk.walkers.recalibration.TileCovariate - org.broadinstitute.sting.gatk.walkers.recalibration.PairedReadOrderCovariate