Skip to content

Commit 6f53fbd

Browse files
committed
More status
1 parent 2b057d3 commit 6f53fbd

File tree

2 files changed

+68
-52
lines changed

2 files changed

+68
-52
lines changed

plugins/alignments/src/BamAdapter/BamAdapter.ts

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -83,35 +83,40 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
8383
private async setupPre(opts?: BaseOptions) {
8484
const { statusCallback = () => {} } = opts || {}
8585
const { bam } = await this.configure()
86+
console.log('wow')
8687
this.samHeader = await updateStatus(
8788
'Downloading index',
8889
statusCallback,
8990
async () => {
90-
const samHeader = await bam.getHeader()
91-
92-
// use the @SQ lines in the header to figure out the
93-
// mapping between ref ref ID numbers and names
94-
const idToName: string[] = []
95-
const nameToId: Record<string, number> = {}
96-
samHeader
97-
?.filter(l => l.tag === 'SQ')
98-
.forEach((sqLine, refId) => {
99-
const SN = sqLine.data.find(item => item.tag === 'SN')
100-
if (SN) {
101-
// this is the ref name
102-
const refName = SN.value
103-
nameToId[refName] = refId
104-
idToName[refId] = refName
105-
}
106-
})
107-
108-
return { idToName, nameToId }
91+
return new Promise(res =>
92+
setTimeout(async () => {
93+
const samHeader = await bam.getHeader()
94+
95+
// use the @SQ lines in the header to figure out the
96+
// mapping between ref ref ID numbers and names
97+
const idToName: string[] = []
98+
const nameToId: Record<string, number> = {}
99+
samHeader
100+
?.filter(l => l.tag === 'SQ')
101+
.forEach((sqLine, refId) => {
102+
const SN = sqLine.data.find(item => item.tag === 'SN')
103+
if (SN) {
104+
// this is the ref name
105+
const refName = SN.value
106+
nameToId[refName] = refId
107+
idToName[refId] = refName
108+
}
109+
})
110+
111+
res({ idToName, nameToId })
112+
}, 4000),
113+
)
109114
},
110115
)
111116
return this.samHeader
112117
}
113118

114-
async setup(opts?: BaseOptions) {
119+
async setupPre2(opts?: BaseOptions) {
115120
if (!this.setupP) {
116121
this.setupP = this.setupPre(opts).catch((e: unknown) => {
117122
this.setupP = undefined
@@ -121,6 +126,13 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
121126
return this.setupP
122127
}
123128

129+
async setup(opts?: BaseOptions) {
130+
const { statusCallback = () => {} } = opts || {}
131+
return updateStatus('Downloading index', statusCallback, () =>
132+
this.setupPre2(opts),
133+
)
134+
}
135+
124136
async getRefNames(opts?: BaseOptions) {
125137
const { idToName } = await this.setup(opts)
126138
return idToName

plugins/alignments/src/CramAdapter/CramAdapter.ts

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -148,42 +148,39 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
148148
return sequence
149149
}
150150

151-
private async setupPre(opts?: BaseOptions) {
152-
const { statusCallback = () => {} } = opts || {}
153-
return updateStatus('Downloading index', statusCallback, async () => {
154-
const conf = await this.configure()
155-
const { cram } = conf
156-
const samHeader = await cram.cram.getSamHeader()
157-
158-
// use the @SQ lines in the header to figure out the mapping between ref
159-
// ID numbers and names
160-
const idToName: string[] = []
161-
const nameToId: Record<string, number> = {}
162-
samHeader
163-
.filter(l => l.tag === 'SQ')
164-
.forEach((sqLine, refId) => {
165-
const SN = sqLine.data.find(item => item.tag === 'SN')
166-
if (SN) {
167-
const refName = SN.value
168-
nameToId[refName] = refId
169-
idToName[refId] = refName
170-
}
171-
})
151+
private async setupPre(_opts?: BaseOptions) {
152+
const conf = await this.configure()
153+
const { cram } = conf
154+
const samHeader = await cram.cram.getSamHeader()
155+
156+
// use the @SQ lines in the header to figure out the mapping between ref
157+
// ID numbers and names
158+
const idToName: string[] = []
159+
const nameToId: Record<string, number> = {}
160+
samHeader
161+
.filter(l => l.tag === 'SQ')
162+
.forEach((sqLine, refId) => {
163+
const SN = sqLine.data.find(item => item.tag === 'SN')
164+
if (SN) {
165+
const refName = SN.value
166+
nameToId[refName] = refId
167+
idToName[refId] = refName
168+
}
169+
})
172170

173-
const readGroups = samHeader
174-
.filter(l => l.tag === 'RG')
175-
.map(rgLine => rgLine.data.find(item => item.tag === 'ID')?.value)
171+
const readGroups = samHeader
172+
.filter(l => l.tag === 'RG')
173+
.map(rgLine => rgLine.data.find(item => item.tag === 'ID')?.value)
176174

177-
const data = { idToName, nameToId, readGroups }
178-
this.samHeader = data
179-
return {
180-
samHeader: data,
181-
...conf,
182-
}
183-
})
175+
const data = { idToName, nameToId, readGroups }
176+
this.samHeader = data
177+
return {
178+
samHeader: data,
179+
...conf,
180+
}
184181
}
185182

186-
private async setup(opts?: BaseOptions) {
183+
private async setupPre2(opts?: BaseOptions) {
187184
if (!this.setupP) {
188185
this.setupP = this.setupPre(opts).catch((e: unknown) => {
189186
this.setupP = undefined
@@ -193,6 +190,13 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
193190
return this.setupP
194191
}
195192

193+
async setup(opts?: BaseOptions) {
194+
const { statusCallback = () => {} } = opts || {}
195+
return updateStatus('Downloading index', statusCallback, () =>
196+
this.setupPre2(opts),
197+
)
198+
}
199+
196200
async getRefNames(opts?: BaseOptions) {
197201
const { samHeader } = await this.setup(opts)
198202
if (!samHeader.idToName) {

0 commit comments

Comments
 (0)