public void addQualityScores(final SAMRecord samRecord, final CramCompressionRecord cramRecord, final ReferenceTracks referenceTracks) { if (samRecord.getBaseQualities() == SAMRecord.NULL_QUALS) { cramRecord.qualityScores = SAMRecord.NULL_QUALS; cramRecord.setForcePreserveQualityScores(false); return; } final byte[] scores = new byte[samRecord.getReadLength()]; Arrays.fill(scores, (byte) -1); for (final PreservationPolicy preservationPolicy : policyList) addQS(samRecord, cramRecord, scores, referenceTracks, preservationPolicy); if (!cramRecord.isForcePreserveQualityScores()) { for (int i = 0; i < scores.length; i++) { if (scores[i] > -1) { if (cramRecord.readFeatures == null) cramRecord.readFeatures = new LinkedList<ReadFeature>(); cramRecord.readFeatures.add(new BaseQualityScore(i + 1, scores[i])); } } if (cramRecord.readFeatures != null) Collections.sort(cramRecord.readFeatures, readFeaturePositionComparator); } cramRecord.qualityScores = scores; }
public void addQualityScores(final SAMRecord samRecord, final CramCompressionRecord cramRecord, final ReferenceTracks referenceTracks) { if (samRecord.getBaseQualities() == SAMRecord.NULL_QUALS) { cramRecord.qualityScores = SAMRecord.NULL_QUALS; cramRecord.setForcePreserveQualityScores(false); return; } final byte[] scores = new byte[samRecord.getReadLength()]; Arrays.fill(scores, (byte) -1); for (final PreservationPolicy preservationPolicy : policyList) addQS(samRecord, cramRecord, scores, referenceTracks, preservationPolicy); if (!cramRecord.isForcePreserveQualityScores()) { for (int i = 0; i < scores.length; i++) { if (scores[i] > -1) { if (cramRecord.readFeatures == null) cramRecord.readFeatures = new LinkedList<ReadFeature>(); cramRecord.readFeatures.add(new BaseQualityScore(i + 1, scores[i])); } } if (cramRecord.readFeatures != null) Collections.sort(cramRecord.readFeatures, readFeaturePositionComparator); } cramRecord.qualityScores = scores; }
public void addQualityScores(final SAMRecord s, final CramCompressionRecord r, final ReferenceTracks t) { if (s.getBaseQualities() == SAMRecord.NULL_QUALS) { r.qualityScores = SAMRecord.NULL_QUALS; r.setForcePreserveQualityScores(false); return; } final byte[] scores = new byte[s.getReadLength()]; Arrays.fill(scores, (byte) -1); for (final PreservationPolicy p : policyList) addQS(s, r, scores, t, p); if (!r.isForcePreserveQualityScores()) { for (int i = 0; i < scores.length; i++) { if (scores[i] > -1) { if (r.readFeatures == null || r.readFeatures == Collections.EMPTY_LIST) r.readFeatures = new LinkedList<ReadFeature>(); r.readFeatures.add(new BaseQualityScore(i + 1, scores[i])); } } if (r.readFeatures != null) Collections.sort(r.readFeatures, readFeaturePositionComparator); } r.qualityScores = scores; }
cramRecord.setForcePreserveQualityScores(cramRecord.qualityScores != SAMRecord.NULL_QUALS); else { ReferenceTracks tracks = cramContext.tracks.get(samRecord.getReferenceIndex());
else if (cramRecord.qualityScores != SAMRecord.NULL_QUALS) cramRecord.setForcePreserveQualityScores(true);
else if (cramRecord.qualityScores != SAMRecord.NULL_QUALS) cramRecord.setForcePreserveQualityScores(true);
scores.length); applyBinning(scores); cramRecord.setForcePreserveQualityScores(true); break; case PRESERVE: System.arraycopy(samRecord.getBaseQualities(), 0, scores, 0, scores.length); cramRecord.setForcePreserveQualityScores(true); break; case DROP: cramRecord.qualityScores = null; cramRecord.setForcePreserveQualityScores(false); break; cramRecord.setForcePreserveQualityScores(true);
scores.length); applyBinning(scores); cramRecord.setForcePreserveQualityScores(true); break; case PRESERVE: System.arraycopy(samRecord.getBaseQualities(), 0, scores, 0, scores.length); cramRecord.setForcePreserveQualityScores(true); break; case DROP: cramRecord.qualityScores = null; cramRecord.setForcePreserveQualityScores(false); break; cramRecord.setForcePreserveQualityScores(true);
System.arraycopy(s.getBaseQualities(), 0, scores, 0, scores.length); applyBinning(scores); r.setForcePreserveQualityScores(true); break; case PRESERVE: System.arraycopy(s.getBaseQualities(), 0, scores, 0, scores.length); r.setForcePreserveQualityScores(true); break; case DROP: r.qualityScores = null; r.setForcePreserveQualityScores(false); break; r.setForcePreserveQualityScores(true);