Skip to content

Commit

Permalink
various cram bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
rbuels committed Jul 12, 2018
1 parent bcdc4ff commit dbf29bb
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/JBrowse/Store/SeqFeature/CRAM.js
Expand Up @@ -87,6 +87,8 @@ return declare( [ SeqFeatureStore, DeferredStatsMixin, DeferredFeaturesMixin, Gl
cramArgs.index = new CraiIndex({ filehandle: new BlobWrapper(args.crai)})
else if (args.craiUrlTemplate)
cramArgs.index = new CraiIndex({filehandle: new BlobWrapper(new XHRBlob(this.resolveUrl(args.craiUrlTemplate)))})
else if (args.urlTemplate)
cramArgs.index = new CraiIndex({filehandle: new BlobWrapper(new XHRBlob(this.resolveUrl(args.urlTemplate+'.crai')))})
else throw new Error('no index provided, must provide a CRAM index')
// TODO: need to add .csi index support

Expand Down Expand Up @@ -199,7 +201,7 @@ return declare( [ SeqFeatureStore, DeferredStatsMixin, DeferredFeaturesMixin, Gl
return
}

this.cram.getFeaturesForRange(refSeqNumber, query.start+1, query.end)
this.cram.getRecordsForRange(refSeqNumber, query.start+1, query.end)
.then(records => {
records.forEach( record => {
featCallback( this._cramRecordToFeature(record))
Expand All @@ -223,6 +225,7 @@ return declare( [ SeqFeatureStore, DeferredStatsMixin, DeferredFeaturesMixin, Gl
strand: record.isReverseComplemented() ? -1 : 1,
qual: (record.qualityScores || []).map(q => q+33).join(' '),
seq: record.readBases,
seq_id: this._refIdToName(record.sequenceId),

qc_failed: record.isFailedQc(),
secondary_alignment: record.isSecondary(),
Expand All @@ -231,9 +234,9 @@ return declare( [ SeqFeatureStore, DeferredStatsMixin, DeferredFeaturesMixin, Gl
multi_segment_all_correctly_aligned: record.isProperlyPaired(),
multi_segment_next_segment_unmapped: record.isMateUnmapped(),
unmapped: record.isSegmentUnmapped(),
next_seq_id: record.mate ? this._refIdToName(record.mate.sequenceID) : undefined,
next_seq_id: record.mate ? this._refIdToName(record.mate.sequenceId) : undefined,
next_segment_position: record.mate
? ( this._refIdToName(record.mate.sequenceID)+':'+record.mate.alignmentStart) : undefined,
? ( this._refIdToName(record.mate.sequenceId)+':'+record.mate.alignmentStart) : undefined,
}
Object.assign(data,record.tags || {})
return new SimpleFeature({
Expand Down
8 changes: 8 additions & 0 deletions src/JBrowse/Store/SeqFeature/_MismatchesMixin.js
Expand Up @@ -114,6 +114,14 @@ return declare( null, {
})
} else if (code === 'S') {
// soft clip
const len = data.length
mismatches.push({
start: refPos,
type: 'softclip',
base: 'S'+len,
cliplen: len,
length: 1,
})
} else if (code === 'P') {
// padding
} else if (code === 'H') {
Expand Down

0 comments on commit dbf29bb

Please sign in to comment.