Skip to content

Commit c9b467b

Browse files
committed
[skip ci] All vs All
1 parent eb7eb50 commit c9b467b

File tree

1 file changed

+30
-25
lines changed

1 file changed

+30
-25
lines changed

plugins/comparative-adapters/src/AllVsAllPAFAdapter/AllVsAllPAFAdapter.ts

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -84,31 +84,32 @@ export default class AllVsAllPAFAdapter extends BaseFeatureDataAdapter {
8484
getFeatures(query: Region, opts: PAFOptions = {}) {
8585
return ObservableCreate<Feature>(async observer => {
8686
let pafRecords = await this.setup(opts)
87-
const { config } = opts
8887

8988
// note: this is not the adapter config, it is responding to a display
9089
// setting passed in via the opts parameter
91-
if (config && readConfObject(config, 'colorBy') === 'meanQueryIdentity') {
90+
if (
91+
opts.config &&
92+
readConfObject(opts.config, 'colorBy') === 'meanQueryIdentity'
93+
) {
9294
pafRecords = getWeightedMeans(pafRecords)
9395
}
9496
const assemblyNames = this.getAssemblyNames()
9597

9698
// The index of the assembly name in the query list corresponds to the
9799
// adapter in the subadapters list
98-
const { start: qstart, end: qend, refName: qref, assemblyName } = query
99-
const index = assemblyNames.indexOf(assemblyName)
100+
const index = assemblyNames.indexOf(query.assemblyName)
100101

101102
// if the getFeatures::query is on the query assembly, flip orientation
102103
// of data
103104
const flip = index === 0
104105
if (index === -1) {
105-
console.warn(`${assemblyName} not found in this adapter`)
106+
console.warn(`${query.assemblyName} not found in this adapter`)
106107
observer.complete()
107108
}
108109

109-
// eslint-disable-next-line unicorn/no-for-loop
110-
for (let i = 0; i < pafRecords.length; i++) {
111-
const r = pafRecords[i]!
110+
const len = pafRecords.length
111+
for (let i = 0; i < len; i++) {
112+
const currentPafRecord = pafRecords[i]!
112113
let start = 0
113114
let end = 0
114115
let refName = ''
@@ -117,22 +118,26 @@ export default class AllVsAllPAFAdapter extends BaseFeatureDataAdapter {
117118
let mateEnd = 0
118119

119120
if (flip) {
120-
start = r.qstart
121-
end = r.qend
122-
refName = r.qname
123-
mateName = r.tname
124-
mateStart = r.tstart
125-
mateEnd = r.tend
121+
start = currentPafRecord.qstart
122+
end = currentPafRecord.qend
123+
refName = currentPafRecord.qname
124+
mateName = currentPafRecord.tname
125+
mateStart = currentPafRecord.tstart
126+
mateEnd = currentPafRecord.tend
126127
} else {
127-
start = r.tstart
128-
end = r.tend
129-
refName = r.tname
130-
mateName = r.qname
131-
mateStart = r.qstart
132-
mateEnd = r.qend
128+
start = currentPafRecord.tstart
129+
end = currentPafRecord.tend
130+
refName = currentPafRecord.tname
131+
mateName = currentPafRecord.qname
132+
mateStart = currentPafRecord.qstart
133+
mateEnd = currentPafRecord.qend
133134
}
134-
const { extra, strand } = r
135-
if (refName === qref && doesIntersect2(qstart, qend, start, end)) {
135+
const { extra, strand } = currentPafRecord
136+
const refName2 = refName.replace(`${query.assemblyName}#1#`, '')
137+
if (
138+
refName2 === query.refName &&
139+
doesIntersect2(query.start, query.end, start, end)
140+
) {
136141
const { numMatches = 0, blockLen = 1, cg, ...rest } = extra
137142

138143
let CIGAR = extra.cg
@@ -146,12 +151,12 @@ export default class AllVsAllPAFAdapter extends BaseFeatureDataAdapter {
146151

147152
observer.next(
148153
new SyntenyFeature({
149-
uniqueId: i + assemblyName,
150-
assemblyName,
154+
uniqueId: i + query.assemblyName,
155+
assemblyName: query.assemblyName,
151156
start,
152157
end,
153158
type: 'match',
154-
refName,
159+
refName: refName2,
155160
strand,
156161
...rest,
157162
CIGAR,

0 commit comments

Comments
 (0)