From b09e7231d1e2b85aead765e16ca9f9da69f4c555 Mon Sep 17 00:00:00 2001 From: rpoplin Date: Tue, 11 May 2010 01:08:52 +0000 Subject: [PATCH] A quick implementation of the experimental covariates for the TGen folks to work with. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3344 348d0f76-0448-11de-a6fe-93d51630548a --- .../sting/gatk/walkers/recalibration/Covariate.java | 1 - .../sting/gatk/walkers/recalibration/CycleCovariate.java | 4 +++- .../sting/gatk/walkers/recalibration/DinucCovariate.java | 3 ++- .../gatk/walkers/recalibration/GCContentCovariate.java | 4 +++- .../gatk/walkers/recalibration/HomopolymerCovariate.java | 4 +++- .../gatk/walkers/recalibration/MappingQualityCovariate.java | 4 +++- .../gatk/walkers/recalibration/MinimumNQSCovariate.java | 4 +++- .../sting/gatk/walkers/recalibration/PositionCovariate.java | 4 +++- .../gatk/walkers/recalibration/PrimerRoundCovariate.java | 6 ++++-- .../gatk/walkers/recalibration/QualityScoreCovariate.java | 2 ++ .../gatk/walkers/recalibration/ReadGroupCovariate.java | 2 ++ .../sting/gatk/walkers/recalibration/TileCovariate.java | 1 + 12 files changed, 29 insertions(+), 10 deletions(-) diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/Covariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/Covariate.java index 996528a6c..46ce006ee 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/Covariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/Covariate.java @@ -39,7 +39,6 @@ import net.sf.samtools.SAMRecord; public interface Covariate { public void initialize( RecalibrationArgumentCollection RAC ); // Initialize any member variables using the command-line arguments passed to the walkers - public Comparable getValue( SAMRecord read, int offset ); // Used to pick out the covariate's value from attributes of the read public Comparable getValue( String str ); // Used to get the covariate's value from input csv file in TableRecalibrationWalker public void getValues( SAMRecord read, Comparable[] comparable ); //Takes an array of size (at least) read.getReadLength() and fills it with covariate //values for each position in the read. This method was created as an optimization over calling getValue( read, offset ) for each offset and allows 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 c460dadc5..760f4b897 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CycleCovariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CycleCovariate.java @@ -61,6 +61,7 @@ public class CycleCovariate implements StandardCovariate { } } + /* // Used to pick out the covariate's value from attributes of the read public final Comparable getValue( final SAMRecord read, final int offset ) { @@ -158,8 +159,9 @@ public class CycleCovariate implements StandardCovariate { return cycle; } + */ - + // Used to pick out the covariate's value from attributes of the read public void getValues(SAMRecord read, Comparable[] comparable) { //----------------------------- diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/DinucCovariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/DinucCovariate.java index c7be5057a..ef55c2302 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/DinucCovariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/DinucCovariate.java @@ -61,6 +61,7 @@ public class DinucCovariate implements StandardCovariate { dinucHashMap.put( Dinuc.hashBytes(NO_CALL, NO_CALL), NO_DINUC ); } + /* // Used to pick out the covariate's value from attributes of the read public final Comparable getValue( final SAMRecord read, final int offset ) { @@ -93,7 +94,7 @@ public class DinucCovariate implements StandardCovariate { return dinucHashMap.get( Dinuc.hashBytes( prevBase, base ) ); } - + */ /** * Takes an array of size (at least) read.getReadLength() and fills it with the covariate values for each position in the read. diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/GCContentCovariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/GCContentCovariate.java index a66acdba8..be4e4ebfc 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/GCContentCovariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/GCContentCovariate.java @@ -77,7 +77,9 @@ public class GCContentCovariate implements ExperimentalCovariate { } public void getValues(SAMRecord read, Comparable[] comparable) { - throw new IllegalStateException("Not yet implemented"); + for(int iii = 0; iii < read.getReadLength(); iii++) { + comparable[iii] = getValue(read, iii); // BUGBUG: this can be optimized + } } // Used to get the covariate's value from input csv file in TableRecalibrationWalker diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/HomopolymerCovariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/HomopolymerCovariate.java index 4ed1a6a27..f9a75de6f 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/HomopolymerCovariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/HomopolymerCovariate.java @@ -91,7 +91,9 @@ public class HomopolymerCovariate implements ExperimentalCovariate { } public void getValues(SAMRecord read, Comparable[] comparable) { - throw new IllegalStateException("Not yet implemented"); + for(int iii = 0; iii < read.getReadLength(); iii++) { + comparable[iii] = getValue(read, iii); // BUGBUG: this can be optimized + } } // Used to get the covariate's value from input csv file in TableRecalibrationWalker diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/MappingQualityCovariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/MappingQualityCovariate.java index e7147cbca..f9149a528 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/MappingQualityCovariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/MappingQualityCovariate.java @@ -52,7 +52,9 @@ public class MappingQualityCovariate implements ExperimentalCovariate { } public void getValues(SAMRecord read, Comparable[] comparable) { - throw new IllegalStateException("Not yet implemented"); + for(int iii = 0; iii < read.getReadLength(); iii++) { + comparable[iii] = getValue(read, iii); // BUGBUG: this can be optimized + } } } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/MinimumNQSCovariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/MinimumNQSCovariate.java index 6b8100e17..64cae2b62 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/MinimumNQSCovariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/MinimumNQSCovariate.java @@ -67,6 +67,8 @@ public class MinimumNQSCovariate implements ExperimentalCovariate { } public void getValues(SAMRecord read, Comparable[] comparable) { - throw new IllegalStateException("Not yet implemented"); + for(int iii = 0; iii < read.getReadLength(); iii++) { + comparable[iii] = getValue(read, iii); // BUGBUG: this can be optimized + } } } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/PositionCovariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/PositionCovariate.java index 5242d05fc..2495df57a 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/PositionCovariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/PositionCovariate.java @@ -57,7 +57,9 @@ public class PositionCovariate implements ExperimentalCovariate { } public void getValues(SAMRecord read, Comparable[] comparable) { - throw new IllegalStateException("Not yet implemented"); + for(int iii = 0; iii < read.getReadLength(); iii++) { + comparable[iii] = getValue(read, iii); // BUGBUG: this can be optimized + } } } \ No newline at end of file diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/PrimerRoundCovariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/PrimerRoundCovariate.java index 684c149f9..23fdeebe3 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/PrimerRoundCovariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/PrimerRoundCovariate.java @@ -45,7 +45,7 @@ public class PrimerRoundCovariate implements ExperimentalCovariate { // Used to pick out the covariate's value from attributes of the read public final Comparable getValue( final SAMRecord read, final int offset ) { - if( read.getReadGroup().getPlatform().equalsIgnoreCase( "SOLID" ) ) { + if( read.getReadGroup().getPlatform().equalsIgnoreCase( "SOLID" ) || read.getReadGroup().getPlatform().equalsIgnoreCase( "ABI_SOLID" ) ) { int pos = offset; if( read.getReadNegativeStrandFlag() ) { pos = read.getReadLength() - (offset + 1); @@ -63,6 +63,8 @@ public class PrimerRoundCovariate implements ExperimentalCovariate { } public void getValues(SAMRecord read, Comparable[] comparable) { - throw new IllegalStateException("Not yet implemented"); + for(int iii = 0; iii < read.getReadLength(); iii++) { + comparable[iii] = getValue(read, iii); // BUGBUG: this can be optimized + } } } \ No newline at end of file diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/QualityScoreCovariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/QualityScoreCovariate.java index bd1f957bb..df0101e18 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/QualityScoreCovariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/QualityScoreCovariate.java @@ -41,10 +41,12 @@ public class QualityScoreCovariate implements RequiredCovariate { public void initialize( final RecalibrationArgumentCollection RAC ) { } + /* // Used to pick out the covariate's value from attributes of the read public final Comparable getValue( final SAMRecord read, final int offset ) { return (int)(read.getBaseQualities()[offset]); } + */ public void getValues(SAMRecord read, Comparable[] comparable) { byte[] baseQualities = read.getBaseQualities(); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/ReadGroupCovariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/ReadGroupCovariate.java index f1ae7b24b..0c853c349 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/ReadGroupCovariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/ReadGroupCovariate.java @@ -43,10 +43,12 @@ public class ReadGroupCovariate implements RequiredCovariate{ public void initialize( final RecalibrationArgumentCollection RAC ) { } + /* // 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.getReadGroup().getReadGroupId(); } + */ public void getValues(SAMRecord read, Comparable[] comparable) { final String readGroupId = read.getReadGroup().getReadGroupId(); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/TileCovariate.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/TileCovariate.java index 0c725cafc..a3affb22b 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/TileCovariate.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/TileCovariate.java @@ -41,6 +41,7 @@ public class TileCovariate implements ExperimentalCovariate { exceptionWhenNoTile = RAC.EXCEPTION_IF_NO_TILE; } + // Used to pick out the covariate's value from attributes of the read public Comparable getValue(final SAMRecord read, final int offset) { Integer tile = IlluminaUtil.getTileFromReadName(read.getReadName());