Skip to content

Commit

Permalink
Allow FromConfigSequenceAdapter to not start at 0
Browse files Browse the repository at this point in the history
  • Loading branch information
cmdcolin committed Feb 19, 2021
1 parent f8429fb commit 26dc3da
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { toArray } from 'rxjs/operators'
import Adapter from './FromConfigSequenceAdapter'
import { sequenceConfigSchema } from './configSchema'

test('adapter can fetch sequences', async () => {
test('adapter can fetch sequences when there is just one feature representing whole refseq', async () => {
const features = [
{
uniqueId: 'one',
Expand Down Expand Up @@ -32,3 +32,34 @@ test('adapter can fetch sequences', async () => {
expect(featuresArray2.length).toBe(1)
expect(featuresArray2[0].get('seq')).toBe(features[0].seq.slice(100, 150))
})

test('adapter can fetch sequences', async () => {
const features = [
{
uniqueId: 'one',
refName: 'ctgA',
start: 5000,
end: 5150,
seq:
'ccaaaccgtcaattaaccggtatcttctcggaaacggcggttctctcctagatagcgatctgtggtctcaccatgcaatttaaacaggtgagtaaagattgctacaaatacgagactagctgtcaccagatgctgttcatctgttggctc',
},
]
const adapter = new Adapter(sequenceConfigSchema.create({ features }))
const result = adapter.getFeatures({
refName: 'ctgA',
start: 4950,
end: 5050,
})
const featuresArray = await result.pipe(toArray()).toPromise()
expect(featuresArray.length).toBe(1)
expect(featuresArray[0].get('seq')).toBe(features[0].seq.slice(0, 50))

// const result2 = adapter.getFeatures({
// refName: 'ctgA',
// start: 100,
// end: 150,
// })
// const featuresArray2 = await result2.pipe(toArray()).toPromise()
// expect(featuresArray2.length).toBe(1)
// expect(featuresArray2[0].get('seq')).toBe(features[0].seq.slice(100, 150))
})
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,10 @@ export default class FromSequenceConfigAdapter extends FromConfigAdapter {
start: region.start,
seq: feat
.get('seq')
.slice(Math.max(region.start, 0), Math.max(region.end, 0)),
.slice(
Math.max(region.start - feat.get('start'), 0),
Math.max(region.end - feat.get('start'), 0),
),
}),
)

Expand Down

0 comments on commit 26dc3da

Please sign in to comment.