Skip to content

Commit

Permalink
Codify that the fromsequenceadapter only takes a single feature conve…
Browse files Browse the repository at this point in the history
…ring refseq
  • Loading branch information
cmdcolin committed Feb 19, 2021
1 parent ed0d12f commit 125c8fc
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 40 deletions.
15 changes: 7 additions & 8 deletions packages/core/assemblyManager/assemblyManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ import {
} from 'mobx-state-tree'
import { when } from '../util'
import { readConfObject } from '../configuration'
import { AnyConfigurationModel } from '../configuration/configurationSchema'
import {
AnyConfigurationModel,
AnyConfigurationSchemaType,
} from '../configuration/configurationSchema'

import assemblyFactory from './assembly'
import PluginManager from '../PluginManager'
Expand All @@ -32,7 +35,7 @@ export default function assemblyManagerFactory(
return [
...getParent(self).jbrowse.assemblies,
...(getParent(self).session.sessionAssemblies || []),
]
] as AnyConfigurationModel[]
},

get rpcManager() {
Expand Down Expand Up @@ -125,12 +128,8 @@ export default function assemblyManagerFactory(
self,
reaction(
// have to slice it to be properly reacted to
// eslint-disable-next-line @typescript-eslint/no-explicit-any
() => self.assemblyList as any,
(
assemblyConfigs: Instance<typeof Assembly> &
AnyConfigurationModel[],
) => {
() => self.assemblyList,
assemblyConfigs => {
self.assemblies.forEach(asm => {
if (!asm.configuration) {
this.removeAssembly(asm)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,47 +7,28 @@ test('adapter can fetch sequences', async () => {
{
uniqueId: 'one',
refName: 'ctgA',
start: 250,
end: 400,
start: 0,
end: 150,
seq:
'ccaaaccgtcaattaaccggtatcttctcggaaacggcggttctctcctagatagcgatctgtggtctcaccatgcaatttaaacaggtgagtaaagattgctacaaatacgagactagctgtcaccagatgctgttcatctgttggctc',
},
{
uniqueId: 'two',
refName: 'ctgA',
start: 150,
end: 250,
seq:
'attctgattcagcctgacttctcttggaaccctgcccataaatcaaagggttagtgcggccaaaacgttggacaacggtattagaagaccaacctgacca',
},
{
uniqueId: 'three',
refName: 'ctgB',
start: 50,
end: 60,
seq: 'TACATGCTAGC',
},
]
const adapter = new Adapter(sequenceConfigSchema.create({ features }))
const result = adapter.getFeatures({
refName: 'ctgA',
start: 0,
end: 500,
end: 50,
})
const featuresArray = await result.pipe(toArray()).toPromise()
expect(featuresArray.length).toBe(2)
})
expect(featuresArray.length).toBe(1)
expect(featuresArray[0].get('seq')).toBe(features[0].seq.slice(0, 50))

test('adapter can fetch regions 1', async () => {
const features = [
{ uniqueId: 'one', refName: 'ctgA', start: 250, end: 400 },
{ uniqueId: 'two', refName: 'ctgA', start: 150, end: 300 },
{ uniqueId: 'three', refName: 'ctgB', start: 50, end: 60 },
]
const adapter = new Adapter(sequenceConfigSchema.create({ features }))
const result = await adapter.getRegions()
expect(result).toEqual([
{ refName: 'ctgA', start: 150, end: 400 },
{ refName: 'ctgB', start: 50, end: 60 },
])
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))
})

0 comments on commit 125c8fc

Please sign in to comment.