Merge branch 'master' of ssh://gsa2.broadinstitute.org/humgen/gsa-scr1/gsa-engineering/git/unstable

This commit is contained in:
Ryan Poplin 2012-06-07 10:56:55 -04:00
commit d449f169d3
4 changed files with 33 additions and 18 deletions

View File

@ -20,11 +20,11 @@ import java.util.List;
import java.util.Map;
/**
* Counts of bases from SLX, 454, and SOLiD at this site
* Counts of bases from Illumina, 454, and SOLiD at this site
*/
@Hidden
public class TechnologyComposition extends InfoFieldAnnotation implements ExperimentalAnnotation {
private String nSLX = "NumSLX";
private String nIllumina = "NumIllumina";
private String n454 ="Num454";
private String nSolid = "NumSOLiD";
private String nOther = "NumOther";
@ -46,7 +46,7 @@ public class TechnologyComposition extends InfoFieldAnnotation implements Experi
reads454++;
else if (ReadUtils.isSOLiDRead(p.getRead()))
readsSolid++;
else if (ReadUtils.isSLXRead(p.getRead()))
else if (ReadUtils.isIlluminaRead(p.getRead()))
readsIllumina++;
else
readsOther++;
@ -55,16 +55,16 @@ public class TechnologyComposition extends InfoFieldAnnotation implements Experi
}
Map<String, Object> map = new HashMap<String, Object>();
map.put(nSLX, String.format("%d", readsIllumina));
map.put(nIllumina, String.format("%d", readsIllumina));
map.put(n454, String.format("%d", reads454));
map.put(nSolid, String.format("%d", readsSolid));
map.put(nOther, String.format("%d", readsOther));
return map;
}
public List<String> getKeyNames() { return Arrays.asList(nSLX,n454,nSolid,nOther); }
public List<String> getKeyNames() { return Arrays.asList(nIllumina,n454,nSolid,nOther); }
public List<VCFInfoHeaderLine> getDescriptions() { return Arrays.asList(new VCFInfoHeaderLine(nSLX, 1, VCFHeaderLineType.Integer, "Number of SLX reads"),
public List<VCFInfoHeaderLine> getDescriptions() { return Arrays.asList(new VCFInfoHeaderLine(nIllumina, 1, VCFHeaderLineType.Integer, "Number of Illumina reads"),
new VCFInfoHeaderLine(n454, 1, VCFHeaderLineType.Integer, "Number of 454 reads"),
new VCFInfoHeaderLine(nSolid, 1, VCFHeaderLineType.Integer, "Number of SOLiD reads"),
new VCFInfoHeaderLine(nOther, 1, VCFHeaderLineType.Integer, "Number of Other technology reads")); }

View File

@ -103,7 +103,7 @@ import java.util.*;
* -T IndelRealigner \
* -targetIntervals intervalListFromRTC.intervals \
* -o realignedBam.bam \
* [--known /path/to/indels.vcf] \
* [-known /path/to/indels.vcf] \
* [-compress 0] (this argument recommended to speed up the process *if* this is only a temporary file; otherwise, use the default value)
* </pre>
*
@ -532,8 +532,9 @@ public class IndelRealigner extends ReadWalker<Integer, Integer> {
read.getMappingQuality() == 0 ||
read.getAlignmentStart() == SAMRecord.NO_ALIGNMENT_START ||
ConstrainedMateFixingManager.iSizeTooBigToMove(read, MAX_ISIZE_FOR_MOVEMENT) ||
ReadUtils.is454Read(read);
// TODO -- it would be nice if we could use indels from 454 reads as alternate consenses
ReadUtils.is454Read(read) ||
ReadUtils.isIonRead(read);
// TODO -- it would be nice if we could use indels from 454/Ion reads as alternate consenses
}
private void cleanAndCallMap(ReferenceContext ref, GATKSAMRecord read, ReadMetaDataTracker metaDataTracker, GenomeLoc readLoc) {

View File

@ -81,6 +81,7 @@ public enum NGSPlatform {
* @return an NGSPlatform object matching the PL field of the header, of UNKNOWN if there was no match
*/
public static final NGSPlatform fromReadGroup(SAMReadGroupRecord rg) {
if ( rg == null ) return UNKNOWN;
return fromReadGroupPL(rg.getPlatform());
}

View File

@ -31,6 +31,7 @@ import net.sf.samtools.*;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.MathUtils;
import org.broadinstitute.sting.utils.NGSPlatform;
import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
@ -211,43 +212,55 @@ public class ReadUtils {
}
/**
* is the read a 454 read ?
* is the read a 454 read?
*
* @param read the read to test
* @return checks the read group tag PL for the default 454 tag
*/
public static boolean is454Read(SAMRecord read) {
return isPlatformRead(read, "454");
return NGSPlatform.fromRead(read) == NGSPlatform.LS454;
}
/**
* is the read a SOLiD read ?
* is the read an IonTorrent read?
*
* @param read the read to test
* @return checks the read group tag PL for the default ion tag
*/
public static boolean isIonRead(SAMRecord read) {
return NGSPlatform.fromRead(read) == NGSPlatform.ION_TORRENT;
}
/**
* is the read a SOLiD read?
*
* @param read the read to test
* @return checks the read group tag PL for the default SOLiD tag
*/
public static boolean isSOLiDRead(SAMRecord read) {
return isPlatformRead(read, "SOLID");
return NGSPlatform.fromRead(read) == NGSPlatform.SOLID;
}
/**
* is the read a SLX read ?
* is the read a SLX read?
*
* @param read the read to test
* @return checks the read group tag PL for the default SLX tag
*/
public static boolean isSLXRead(SAMRecord read) {
return isPlatformRead(read, "ILLUMINA");
public static boolean isIlluminaRead(SAMRecord read) {
return NGSPlatform.fromRead(read) == NGSPlatform.ILLUMINA;
}
/**
* checks if the read has a platform tag in the readgroup equal to 'name' ?
* checks if the read has a platform tag in the readgroup equal to 'name'.
* Assumes that 'name' is upper-cased.
*
* @param read the read to test
* @param name the platform name to test
* @param name the upper-cased platform name to test
* @return whether or not name == PL tag in the read group of read
*/
public static boolean isPlatformRead(SAMRecord read, String name) {
SAMReadGroupRecord readGroup = read.getReadGroup();
if (readGroup != null) {
Object readPlatformAttr = readGroup.getAttribute("PL");