/** * Add a single read to the span * * @param start alignment start * @param span read span on the reference */ public void addSingle(final int start, final int span) { add(start, span, 1); }
/** * Add a single read to the span * * @param start alignment start * @param span read span on the reference */ public void addSingle(final int start, final int span) { add(start, span, 1); }
private static void addSpan(final int seqId, final int start, final int span, final int count, final Map<Integer, AlignmentSpan> map) { if (map.containsKey(seqId)) { map.get(seqId).add(start, span, count); } else { map.put(seqId, new AlignmentSpan(start, span, count)); } }
private static void addSpan(final int seqId, final int start, final int span, final int count, final Map<Integer, AlignmentSpan> map) { if (map.containsKey(seqId)) { map.get(seqId).add(start, span, count); } else { map.put(seqId, new AlignmentSpan(start, span, count)); } }
private static void addSpan(final int seqId, final int start, final int span, final int count, final Map<Integer, AlignmentSpan> map) { if (map.containsKey(seqId)) { map.get(seqId).add(start, span, count); } else { map.put(seqId, new AlignmentSpan(start, span, count)); } }
public static Map<Integer, AlignmentSpan> getSpans(List<SAMRecord> samRecords) { Map<Integer, AlignmentSpan> spans = new HashMap<Integer, AlignmentSpan>(); int unmapped = 0; for (final SAMRecord r : samRecords) { int refId = r.getReferenceIndex(); if (refId == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) { unmapped++; continue; } int start = r.getAlignmentStart(); int end = r.getAlignmentEnd(); if (spans.containsKey(refId)) { spans.get(refId).add(start, end - start, 1); } else { spans.put(refId, new AlignmentSpan(start, end - start)); } } if (unmapped > 0) { AlignmentSpan span = new AlignmentSpan(AlignmentSpan.UNMAPPED_SPAN.getStart(), AlignmentSpan.UNMAPPED_SPAN.getSpan(), unmapped); spans.put(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX, span); } return spans; }