private static boolean testBaseCategory(BaseCategory c, ScoreDiff diff) { switch (c.type) { case FLANKING_DELETION: return diff.nextBaseCoP == CigarOperator.enumToCharacter(CigarOperator.DELETION) || diff.prevBaseCoP == CigarOperator.enumToCharacter(CigarOperator.DELETION); case INSERTION: return diff.cigarOp == CigarOperator.enumToCharacter(CigarOperator.INSERTION); case LOWER_COVERAGE: return diff.coverage < c.param; case MATCH: return diff.base == diff.refBase; case MISMATCH: return diff.base != diff.refBase; case PILEUP: return diff.pileup <= c.param; default: throw new RuntimeException("Unknown read category: " + c.type.name()); } }
public int getMaxSoftClipLength() { if (maxSoftClipLength < 0) { maxSoftClipLength = getCigarDetailMetrics().stream().filter(m -> m.OPERATOR == CigarOperator.enumToCharacter(CigarOperator.SOFT_CLIP)).mapToInt(m -> m.LENGTH).max().orElse(0); } return maxSoftClipLength; } /**
private static List<CigarDetailMetrics> getCigarMetrics(File cigarMetricsFile) { if (cigarMetricsFile == null) return null; List<CigarDetailMetrics> list = new ArrayList<CigarDetailMetrics>(); for (CigarDetailMetrics metric : Iterables.filter(MetricsFile.readBeans(cigarMetricsFile), CigarDetailMetrics.class)) { list.add(metric); } Collections.sort(list, CigarDetailMetricsByLength); for (CigarOperator op : CigarOperator.values()) { List<CigarDetailMetrics> opList = list.stream().filter(cdm -> cdm.OPERATOR == CigarOperator.enumToCharacter(op)).collect(Collectors.toList()); for (int i = 0; i < opList.size(); i++) { if (opList.get(i).LENGTH != i) { String msg = String.format("%s missing cigar metric: expected metric for length %d, found %d", cigarMetricsFile, i, opList.get(0).LENGTH); log.error(msg); throw new RuntimeException(msg); } } } return list; } public InsertSizeDistribution getInsertSizeDistribution() {
@Test(dataProvider = "chars") public void testEnumToCharacter(final char c, final CigarOperator op) throws Exception { Assert.assertEquals(CigarOperator.enumToCharacter(op), c); }
private void acceptCigarElement(CigarElement ce) { List<CigarDetailMetrics> list = cigar.get(ce.getOperator()); int length = ce.getLength(); while (list.size() <= length) { CigarDetailMetrics cdm = new CigarDetailMetrics(); cdm.LENGTH = list.size(); cdm.OPERATOR = (char)CigarOperator.enumToCharacter(ce.getOperator()); cdm.COUNT = 0; list.add(cdm); } list.get(ce.getLength()).COUNT++; }
private void acceptCigarElement(CigarElement ce) { List<CigarDetailMetrics> list = cigar.get(ce.getOperator()); int length = ce.getLength(); while (list.size() <= length) { CigarDetailMetrics cdm = new CigarDetailMetrics(); cdm.LENGTH = list.size(); cdm.OPERATOR = (char)CigarOperator.enumToCharacter(ce.getOperator()); cdm.COUNT = 0; list.add(cdm); } list.get(ce.getLength()).COUNT++; } private void idsvAcceptRecord(SAMRecord record, ReferenceSequence refSeq) {
public CigarSizeDistribution(List<CigarDetailMetrics> list) { this.phred = new double[CigarOperator.values().length][]; for (CigarOperator op : CigarOperator.values()) { char charop = (char)CigarOperator.enumToCharacter(op); this.phred[CigarOperator.enumToBinary(op)] = calcPhred(Lists.newArrayList(Iterables.filter(list, cdm -> cdm.OPERATOR == charop))); } } private static double[] calcPhred(List<CigarDetailMetrics> sc) {
public static char[] cigarArrayFromElements(List<CigarElement> cigar){ int pos = 0; int length = 0; for (CigarElement e : cigar){ length += e.getLength(); } char[] result = new char[length]; for (CigarElement e : cigar){ for (int i = 0; i < e.getLength(); i++){ CigarOperator o = e.getOperator(); result[i+pos] = (char) CigarOperator.enumToCharacter(o); } pos += e.getLength(); } return result; }
public static char[] cigarArrayFromElements(List<CigarElement> cigar){ int pos = 0; int length = 0; for (CigarElement e : cigar){ length += e.getLength(); } char[] result = new char[length]; for (CigarElement e : cigar){ for (int i = 0; i < e.getLength(); i++){ CigarOperator o = e.getOperator(); result[i+pos] = (char) CigarOperator.enumToCharacter(o); } pos += e.getLength(); } return result; }
public static char[] cigarArrayFromElements(List<CigarElement> cigar){ int pos = 0; int length = 0; for (CigarElement e : cigar){ length += e.getLength(); } char[] result = new char[length]; for (CigarElement e : cigar){ for (int i = 0; i < e.getLength(); i++){ CigarOperator o = e.getOperator(); result[i+pos] = (char) CigarOperator.enumToCharacter(o); } pos += e.getLength(); } return result; }
d.refBase = ref[i + posInRef - 1]; ce.getOperator(); d.cigarOp = CigarOperator.enumToCharacter(ce.getOperator()); d.oScore = r1.getBaseQualities()[i + posInRead - 1]; d.score = r2.getBaseQualities()[i + posInRead - 1];