jbrowse-plugin-mafviewer 1.5.1 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +89 -21
  2. package/dist/BgzipTaffyAdapter/BgzipTaffyAdapter.d.ts +11 -4
  3. package/dist/BgzipTaffyAdapter/BgzipTaffyAdapter.js +38 -27
  4. package/dist/BgzipTaffyAdapter/BgzipTaffyAdapter.js.map +1 -1
  5. package/dist/BgzipTaffyAdapter/configSchema.d.ts +2 -2
  6. package/dist/BgzipTaffyAdapter/rowInstructions.d.ts +15 -0
  7. package/dist/BgzipTaffyAdapter/rowInstructions.js +18 -17
  8. package/dist/BgzipTaffyAdapter/rowInstructions.js.map +1 -1
  9. package/dist/BigMafAdapter/BigMafAdapter.d.ts +2 -2
  10. package/dist/BigMafAdapter/BigMafAdapter.js +23 -25
  11. package/dist/BigMafAdapter/BigMafAdapter.js.map +1 -1
  12. package/dist/BigMafAdapter/configSchema.d.ts +2 -2
  13. package/dist/LinearMafDisplay/components/useDragSelection.js +14 -3
  14. package/dist/LinearMafDisplay/components/useDragSelection.js.map +1 -1
  15. package/dist/LinearMafDisplay/configSchema.d.ts +29 -2
  16. package/dist/LinearMafDisplay/stateModel.d.ts +21 -37
  17. package/dist/LinearMafRenderer/LinearMafRenderer.d.ts +1 -1
  18. package/dist/LinearMafRenderer/LinearMafRenderer.js +16 -1
  19. package/dist/LinearMafRenderer/LinearMafRenderer.js.map +1 -1
  20. package/dist/LinearMafRenderer/configSchema.d.ts +1 -1
  21. package/dist/LinearMafRenderer/makeImageData.d.ts +0 -14
  22. package/dist/LinearMafRenderer/makeImageData.js +0 -11
  23. package/dist/LinearMafRenderer/makeImageData.js.map +1 -1
  24. package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js +1 -1
  25. package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js.map +1 -1
  26. package/dist/MafSequenceWidget/MafSequenceWidget.js +7 -1
  27. package/dist/MafSequenceWidget/MafSequenceWidget.js.map +1 -1
  28. package/dist/MafSequenceWidget/configSchema.d.ts +1 -1
  29. package/dist/MafTabixAdapter/MafTabixAdapter.d.ts +4 -6
  30. package/dist/MafTabixAdapter/MafTabixAdapter.js +20 -26
  31. package/dist/MafTabixAdapter/MafTabixAdapter.js.map +1 -1
  32. package/dist/MafTabixAdapter/configSchema.d.ts +4 -4
  33. package/dist/MafTrack/configSchema.d.ts +8 -8
  34. package/dist/jbrowse-plugin-mafviewer.umd.production.min.js +8 -8
  35. package/dist/jbrowse-plugin-mafviewer.umd.production.min.js.map +4 -4
  36. package/dist/parseNewick.js +1 -1
  37. package/dist/parseNewick.js.map +1 -1
  38. package/dist/types.d.ts +9 -0
  39. package/dist/types.js +0 -3
  40. package/dist/types.js.map +1 -1
  41. package/dist/util/extractSubsequence.d.ts +0 -8
  42. package/dist/util/extractSubsequence.js +1 -28
  43. package/dist/util/extractSubsequence.js.map +1 -1
  44. package/dist/util/extractSubsequence.test.js +1 -1
  45. package/dist/util/fastaUtils.js +10 -10
  46. package/dist/util/fastaUtils.js.map +1 -1
  47. package/dist/util/fastaUtils.test.js +122 -0
  48. package/dist/util/fastaUtils.test.js.map +1 -1
  49. package/dist/util/getSamples.d.ts +8 -0
  50. package/dist/util/getSamples.js +18 -0
  51. package/dist/util/getSamples.js.map +1 -0
  52. package/dist/util/parseAssemblyName.d.ts +10 -0
  53. package/dist/util/parseAssemblyName.js +28 -17
  54. package/dist/util/parseAssemblyName.js.map +1 -1
  55. package/dist/util/parseAssemblyName.test.js +32 -1
  56. package/dist/util/parseAssemblyName.test.js.map +1 -1
  57. package/dist/version.d.ts +1 -1
  58. package/dist/version.js +1 -1
  59. package/package.json +50 -37
  60. package/src/BgzipTaffyAdapter/BgzipTaffyAdapter.ts +50 -26
  61. package/src/BgzipTaffyAdapter/rowInstructions.ts +20 -17
  62. package/src/BigMafAdapter/BigMafAdapter.ts +30 -31
  63. package/src/LinearMafDisplay/components/useDragSelection.ts +14 -3
  64. package/src/LinearMafRenderer/LinearMafRenderer.ts +21 -4
  65. package/src/LinearMafRenderer/makeImageData.ts +0 -27
  66. package/src/MafAddTrackWorkflow/AddTrackWorkflow.tsx +1 -1
  67. package/src/MafSequenceWidget/MafSequenceWidget.tsx +7 -3
  68. package/src/MafTabixAdapter/MafTabixAdapter.ts +26 -32
  69. package/src/parseNewick.ts +1 -1
  70. package/src/types.ts +11 -0
  71. package/src/util/__snapshots__/fastaUtils.test.ts.snap +1 -1
  72. package/src/util/extractSubsequence.test.ts +1 -1
  73. package/src/util/extractSubsequence.ts +2 -32
  74. package/src/util/fastaUtils.test.ts +128 -0
  75. package/src/util/fastaUtils.ts +10 -10
  76. package/src/util/getSamples.ts +25 -0
  77. package/src/util/parseAssemblyName.test.ts +38 -0
  78. package/src/util/parseAssemblyName.ts +36 -17
  79. package/src/version.ts +1 -1
  80. package/CHANGELOG.md +0 -11
package/README.md CHANGED
@@ -2,25 +2,32 @@
2
2
 
3
3
  A viewer for multiple alignment format (MAF) files in JBrowse 2
4
4
 
5
- This is a port of the JBrowse 1 plugin https://github.com/cmdcolin/mafviewer to
6
- JBrowse 2
7
-
8
5
  ![](img/1.png)
9
6
 
10
7
  ## Demo
11
8
 
12
9
  https://jbrowse.org/code/jb2/main/?config=%2Fdemos%2Fmaf%2Fhg38%2Fdistconfig.json&session=share-bJXbDiWcc9&password=87GhV
13
10
 
11
+ ## Supported formats
12
+
13
+ This plugin supports three input formats:
14
+
15
+ 1. **BigMaf** - UCSC BigMaf format e.g. .bb/.bigMaf
16
+ (https://genome.ucsc.edu/goldenpath/help/bigMaf.html)
17
+ 2. **MAF tabix** - bgzip-compressed MAF converted to BED format with tabix index
18
+ 3. **TAF (Taffy)** - bgzip-compressed TAF format
19
+ (https://github.com/ComparativeGenomicsToolkit/taffy)
20
+
14
21
  ## GUI usage (e.g. in JBrowse Desktop)
15
22
 
16
23
  This short screenshot workflow shows how you can load your own custom MAF files
17
- via the GUI
24
+ via the GUI.
18
25
 
19
- First install the plugin via the plugin store
26
+ First install the plugin via the plugin store:
20
27
 
21
28
  ![](img/3.png)
22
29
 
23
- Then use the custom "Add track workflow"
30
+ Then use the custom "Add track workflow":
24
31
 
25
32
  ![](img/2.png)
26
33
 
@@ -33,15 +40,45 @@ Then use the custom "Add track workflow"
33
40
  "plugins": [
34
41
  {
35
42
  "name": "MafViewer",
36
- "url": "https://unpkg.com/jbrowse-plugin-mafviewer/dist/jbrowse-plugin-mafviewer.umd.production.min.js"
43
+ "url": "https://jbrowse.org/plugins/jbrowse-plugin-mafviewer/dist/jbrowse-plugin-mafviewer.umd.production.min.js"
37
44
  }
38
45
  ]
39
46
  }
40
47
  ```
41
48
 
49
+ ### Example BgzipTaffyAdapter config (TAF format)
50
+
51
+ TAF (Transposed Alignment Format) is often more compact than MAF and works well
52
+ with large multi-species alignments. See
53
+ https://github.com/ComparativeGenomicsToolkit/taffy for more details.
54
+
55
+ ```json
56
+ {
57
+ "type": "MafTrack",
58
+ "trackId": "taf-example",
59
+ "name": "TAF alignment",
60
+ "assemblyNames": ["hg38"],
61
+ "adapter": {
62
+ "type": "BgzipTaffyAdapter",
63
+ "tafGzLocation": {
64
+ "uri": "alignment.taf.gz"
65
+ },
66
+ "taiLocation": {
67
+ "uri": "alignment.taf.gz.tai"
68
+ },
69
+ "nhLocation": {
70
+ "uri": "species_tree.nh"
71
+ }
72
+ }
73
+ }
74
+ ```
75
+
76
+ The `nhLocation` is optional but provides a species tree for display in the
77
+ sidebar.
78
+
42
79
  ### Example MafTabixAdapter config
43
80
 
44
- can use nhLocation or samples array on adapter
81
+ You can use `nhLocation` (newick tree) or `samples` array on the adapter.
45
82
 
46
83
  ```json
47
84
  {
@@ -66,7 +103,7 @@ can use nhLocation or samples array on adapter
66
103
 
67
104
  ### Example BigMafAdapter config
68
105
 
69
- can use nhLocation or samples array on adapter
106
+ You can use `nhLocation` (newick tree) or `samples` array on the adapter.
70
107
 
71
108
  ```json
72
109
  {
@@ -148,22 +185,23 @@ This page discusses some examples
148
185
  https://github.com/ComparativeGenomicsToolkit/cactus/blob/master/doc/progressive.md#maf-export
149
186
 
150
187
  Thanks to Sam Talbot (https://github.com/SamCT) for initially creating the
151
- Cactus -> JBrowse 2 MAF example
188
+ Cactus -> JBrowse 2 MAF example.
152
189
 
153
- Please note that MAFViewer wants non-overlapping blocks, please check if this is
154
- the case
190
+ Note: This plugin expects non-overlapping alignment blocks. Ensure your MAF/TAF
191
+ file meets this requirement.
155
192
 
156
193
  ## Prepare data
157
194
 
158
- 1. BigMaf format, which can be created following UCSC guidelines
159
- (https://genome.ucsc.edu/FAQ/FAQformat.html#format9.3)
195
+ Three formats are supported:
160
196
 
161
- 2. MAF tabix based format, based on a custom BED created via conversion tools in
162
- this repo (see maf2bed)
197
+ 1. **BigMaf** - UCSC BigMaf format (see
198
+ https://genome.ucsc.edu/FAQ/FAQformat.html#format9.3)
199
+ 2. **MAF tabix** - bgzip-compressed BED converted from MAF using maf2bed
200
+ 3. **TAF (Taffy)** - bgzip-compressed TAF with .tai index (recommended for large
201
+ alignments)
163
202
 
164
- _Note: All these formats generally start with a MAF as input. Note that your MAF
165
- file should contain the species name and chromosome name e.g. hg38.chr1 in the
166
- sequence identifiers._
203
+ _Note: All formats start with a MAF as input. Your MAF file should contain the
204
+ species name and chromosome name (e.g. hg38.chr1) in the sequence identifiers._
167
205
 
168
206
  ### Option 1. Preparing BigMaf
169
207
 
@@ -186,8 +224,8 @@ identifiers in the MAF file will say something like hg38.chr1, therefore, the
186
224
  argument to maf2bed should just be hg38 to remove hg38 part of the identifier.
187
225
 
188
226
  If your MAF file does not include the species name as part of the identifier,
189
- you should add the species into them the those scaffold/chromosome e.g. create
190
- hg38.chr1 if it was just chr1 before)
227
+ you should add the species name to the scaffold/chromosome names (e.g. create
228
+ hg38.chr1 if it was just chr1 before).
191
229
 
192
230
  If all is well, your BED file should have 6 columns, with
193
231
  `chr, start, end, id, score, alignment_data`, where `alignment_data` is
@@ -196,3 +234,33 @@ separated by `:`.
196
234
 
197
235
  Note: If you can't use the `cargo install maf2bed` binary, there is a
198
236
  `bin/maf2bed.pl` perl version of it in this repo
237
+
238
+ ### Option 3. Preparing TAF (Taffy)
239
+
240
+ TAF (Transposed Alignment Format) is a column-oriented format that is often more
241
+ compact than MAF, especially for large multi-species alignments. It uses
242
+ run-length encoding and avoids the block fragmentation issues that MAF has with
243
+ many sequences.
244
+
245
+ Install taffy from https://github.com/ComparativeGenomicsToolkit/taffy
246
+
247
+ ```bash
248
+ # Convert MAF to bgzip-compressed TAF and create index
249
+ taffy view -i file.maf | bgzip > out.taf.gz
250
+ taffy index -i out.taf.gz
251
+ ```
252
+
253
+ This creates `out.taf.gz` and `out.taf.gz.tai` (the index file).
254
+
255
+ For large alignments, you may want to normalize the TAF file first to merge
256
+ short alignment blocks:
257
+
258
+ ```bash
259
+ taffy view -i file.maf | taffy norm | bgzip > out.taf.gz
260
+ taffy index -i out.taf.gz
261
+ ```
262
+
263
+ ## Footnote
264
+
265
+ This is a port of the JBrowse 1 plugin https://github.com/cmdcolin/mafviewer to
266
+ JBrowse 2
@@ -2,6 +2,7 @@ import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters
2
2
  import { Feature, Region } from '@jbrowse/core/util';
3
3
  import type { RowInstruction } from './rowInstructions';
4
4
  import type { AlignmentRecord, IndexData } from './types';
5
+ import type { MafAdapterOptions } from '../types';
5
6
  interface RowState {
6
7
  sequenceName: string;
7
8
  start: number;
@@ -26,22 +27,28 @@ interface TafFeature {
26
27
  alignments: Record<string, AlignmentRecord>;
27
28
  seq: string;
28
29
  }
30
+ /**
31
+ * Adapter for TAF (Taffy Alignment Format) files compressed with BGZIP
32
+ * Implements streaming parsing of TAF blocks into MAF features
33
+ *
34
+ * TAF Format: https://github.com/ComparativeGenomicsToolkit/taffy
35
+ */
29
36
  export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
30
37
  setupP?: Promise<SetupData>;
31
38
  getRefNames(): Promise<string[]>;
32
39
  parseCoordinatesAndEstablishBlock(pBlock: AlignmentBlock | undefined, instructions: RowInstruction[]): AlignmentBlock;
33
40
  parseBases(basesStr: string, runLengthEncodeBases: boolean): string;
34
- parseTafBlocksStreaming(buffer: Uint8Array, runLengthEncodeBases: boolean): Generator<TafFeature>;
35
- parseTafBlocks(buffer: Uint8Array, runLengthEncodeBases: boolean, _opts?: BaseOptions): TafFeature[];
41
+ parseTafBlocksStreaming(buffer: Uint8Array, runLengthEncodeBases: boolean, sampleFilter?: Set<string>): Generator<TafFeature>;
42
+ parseTafBlocks(buffer: Uint8Array, runLengthEncodeBases: boolean, _opts?: BaseOptions, sampleFilter?: Set<string>): TafFeature[];
36
43
  private decoder;
37
44
  finalizeBlock(block: AlignmentBlock, columns: string[]): void;
38
- blockToFeature(block: AlignmentBlock): TafFeature | undefined;
45
+ blockToFeature(block: AlignmentBlock, sampleFilter?: Set<string>): TafFeature | undefined;
39
46
  setupPre(): Promise<SetupData>;
40
47
  setup(opts?: BaseOptions): Promise<SetupData>;
41
48
  doSetup(): Promise<SetupData>;
42
49
  readHeader(): Promise<boolean>;
43
50
  readTaiFile(): Promise<IndexData>;
44
- getFeatures(query: Region, opts?: BaseOptions): import("rxjs").Observable<Feature>;
51
+ getFeatures(query: Region, opts?: MafAdapterOptions): import("rxjs").Observable<Feature>;
45
52
  getSamples(_query: Region): Promise<{
46
53
  samples: {
47
54
  id: string;
@@ -4,12 +4,13 @@ import { updateStatus } from '@jbrowse/core/util';
4
4
  import { openLocation } from '@jbrowse/core/util/io';
5
5
  import { ObservableCreate } from '@jbrowse/core/util/rxjs';
6
6
  import VirtualOffset from './virtualOffset';
7
- import parseNewick from '../parseNewick';
8
- import { normalize } from '../util';
9
7
  import { filterFirstLineInstructions, parseRowInstructions, } from './rowInstructions';
10
8
  import MafFeature from '../MafFeature';
11
- import { parseAssemblyAndChrSimple } from '../util/parseAssemblyName';
12
- // Binary search to find the index of the first element >= target
9
+ import { matchSampleId, parseAssemblyAndChrSimple, } from '../util/parseAssemblyName';
10
+ import { getSamplesFromConfig } from '../util/getSamples';
11
+ /**
12
+ * Binary search to find the index of the first element >= target
13
+ */
13
14
  function lowerBound(arr, target, getKey) {
14
15
  let lo = 0;
15
16
  let hi = arr.length;
@@ -24,6 +25,12 @@ function lowerBound(arr, target, getKey) {
24
25
  }
25
26
  return lo;
26
27
  }
28
+ /**
29
+ * Adapter for TAF (Taffy Alignment Format) files compressed with BGZIP
30
+ * Implements streaming parsing of TAF blocks into MAF features
31
+ *
32
+ * TAF Format: https://github.com/ComparativeGenomicsToolkit/taffy
33
+ */
27
34
  export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
28
35
  setupP;
29
36
  async getRefNames() {
@@ -108,7 +115,7 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
108
115
  }
109
116
  // Streaming generator version of parseTafBlocks
110
117
  // Yields features one at a time instead of collecting into array
111
- *parseTafBlocksStreaming(buffer, runLengthEncodeBases) {
118
+ *parseTafBlocksStreaming(buffer, runLengthEncodeBases, sampleFilter) {
112
119
  let pBlock;
113
120
  let currentBlock;
114
121
  let columns = [];
@@ -127,7 +134,7 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
127
134
  // If we have a current block with columns, finalize and yield it
128
135
  if (currentBlock && columns.length > 0) {
129
136
  this.finalizeBlock(currentBlock, columns);
130
- const feature = this.blockToFeature(currentBlock);
137
+ const feature = this.blockToFeature(currentBlock, sampleFilter);
131
138
  if (feature) {
132
139
  yield feature;
133
140
  }
@@ -168,15 +175,17 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
168
175
  // Finalize and yield last block
169
176
  if (currentBlock && columns.length > 0) {
170
177
  this.finalizeBlock(currentBlock, columns);
171
- const feature = this.blockToFeature(currentBlock);
178
+ const feature = this.blockToFeature(currentBlock, sampleFilter);
172
179
  if (feature) {
173
180
  yield feature;
174
181
  }
175
182
  }
176
183
  }
177
184
  // Non-streaming version for backward compatibility (used in tests)
178
- parseTafBlocks(buffer, runLengthEncodeBases, _opts) {
179
- return [...this.parseTafBlocksStreaming(buffer, runLengthEncodeBases)];
185
+ parseTafBlocks(buffer, runLengthEncodeBases, _opts, sampleFilter) {
186
+ return [
187
+ ...this.parseTafBlocksStreaming(buffer, runLengthEncodeBases, sampleFilter),
188
+ ];
180
189
  }
181
190
  // TextDecoder for efficient string building from typed array
182
191
  decoder = new TextDecoder('ascii');
@@ -202,21 +211,27 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
202
211
  row.length = length;
203
212
  }
204
213
  }
205
- blockToFeature(block) {
214
+ blockToFeature(block, sampleFilter) {
206
215
  if (block.rows.length === 0 || block.columnNumber === 0) {
207
216
  return undefined;
208
217
  }
209
218
  const row0 = block.rows[0];
210
219
  const alignments = {};
211
220
  for (const row of block.rows) {
212
- const { assemblyName, chr } = parseAssemblyAndChrSimple(row.sequenceName);
213
- alignments[assemblyName] = {
214
- chr,
215
- start: row.start,
216
- srcSize: row.sequenceLength,
217
- strand: row.strand,
218
- seq: row.bases,
219
- };
221
+ // Known set resolve the token against it so haplotype-suffixed names
222
+ // (`Species1.1`) match exactly. No set → dot-position split.
223
+ const parsed = sampleFilter
224
+ ? matchSampleId(row.sequenceName, sampleFilter)
225
+ : parseAssemblyAndChrSimple(row.sequenceName);
226
+ if (parsed?.assemblyName) {
227
+ alignments[parsed.assemblyName] = {
228
+ chr: parsed.chr,
229
+ start: row.start,
230
+ srcSize: row.sequenceLength,
231
+ strand: row.strand,
232
+ seq: row.bases,
233
+ };
234
+ }
220
235
  }
221
236
  return {
222
237
  uniqueId: `${row0.start}-${row0.length}`,
@@ -303,6 +318,9 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
303
318
  return ObservableCreate(async (observer) => {
304
319
  try {
305
320
  const { index, runLengthEncodeBases } = await this.setup(opts);
321
+ const sampleFilter = opts?.samples
322
+ ? new Set(opts.samples.map(s => s.id))
323
+ : undefined;
306
324
  // Get byte range for this query
307
325
  const records = index[query.refName];
308
326
  if (!records || records.length === 0) {
@@ -335,7 +353,7 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
335
353
  : buffer.length;
336
354
  const slice = buffer.slice(startOffset, endOffset);
337
355
  // Stream features using generator - no caching, immediate GC eligible
338
- for (const feat of this.parseTafBlocksStreaming(slice, runLengthEncodeBases)) {
356
+ for (const feat of this.parseTafBlocksStreaming(slice, runLengthEncodeBases, sampleFilter)) {
339
357
  // Filter features that overlap with query region
340
358
  if (feat.end > query.start && feat.start < query.end) {
341
359
  observer.next(new MafFeature(feat.uniqueId, feat.start, feat.end, query.refName, feat.strand, feat.alignments, feat.seq));
@@ -350,14 +368,7 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
350
368
  });
351
369
  }
352
370
  async getSamples(_query) {
353
- const nhLoc = this.getConf('nhLocation');
354
- const nh = nhLoc.uri === '/path/to/my.nh'
355
- ? undefined
356
- : await openLocation(nhLoc).readFile('utf8');
357
- return {
358
- samples: normalize(this.getConf('samples')),
359
- tree: nh ? parseNewick(nh) : undefined,
360
- };
371
+ return getSamplesFromConfig(this.getConf.bind(this));
361
372
  }
362
373
  freeResources() { }
363
374
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BgzipTaffyAdapter.js","sourceRoot":"","sources":["../../src/BgzipTaffyAdapter/BgzipTaffyAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BgzipTaffyAdapter.js","sourceRoot":"","sources":["../../src/BgzipTaffyAdapter/BgzipTaffyAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- declare const configSchema: import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaType<{
1
+ declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
2
2
  /**
3
3
  * #slot
4
4
  */
@@ -40,5 +40,5 @@ declare const configSchema: import("@jbrowse/core/esm/configuration/configuratio
40
40
  locationType: string;
41
41
  };
42
42
  };
43
- }, import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
43
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
44
44
  export default configSchema;
@@ -1,3 +1,14 @@
1
+ /**
2
+ * TAF (Taffy Alignment Format) row instruction types
3
+ * Reference: https://github.com/ComparativeGenomicsToolkit/taffy
4
+ *
5
+ * Instruction types:
6
+ * 'i' - insert: add a new sequence row
7
+ * 's' - substitute: replace coordinates of an existing row
8
+ * 'd' - delete: remove a sequence row
9
+ * 'g' - gap: add a fixed-length gap to sequence start
10
+ * 'G' - gap substring: add variable-length gap from substring
11
+ */
1
12
  interface RowInsert {
2
13
  type: 'i';
3
14
  row: number;
@@ -30,5 +41,9 @@ interface RowGapSubstring {
30
41
  }
31
42
  export type RowInstruction = RowInsert | RowDelete | RowGap | RowGapSubstring | RowSubstitute;
32
43
  export declare function filterFirstLineInstructions(instructions: RowInstruction[]): RowInstruction[];
44
+ /**
45
+ * Parses TAF row instruction string into structured RowInstruction objects
46
+ * Each instruction token sequence is parsed according to TAF format rules
47
+ */
33
48
  export declare function parseRowInstructions(meta: string): RowInstruction[];
34
49
  export {};
@@ -1,3 +1,14 @@
1
+ /**
2
+ * TAF (Taffy Alignment Format) row instruction types
3
+ * Reference: https://github.com/ComparativeGenomicsToolkit/taffy
4
+ *
5
+ * Instruction types:
6
+ * 'i' - insert: add a new sequence row
7
+ * 's' - substitute: replace coordinates of an existing row
8
+ * 'd' - delete: remove a sequence row
9
+ * 'g' - gap: add a fixed-length gap to sequence start
10
+ * 'G' - gap substring: add variable-length gap from substring
11
+ */
1
12
  // Faithfully replicates change_s_coordinates_to_i from taffy/impl/tai.c
2
13
  // When starting from an indexed position:
3
14
  // 1. Convert 's' (substitute) to 'i' (insert) - because there's no previous row to substitute
@@ -20,30 +31,20 @@ export function filterFirstLineInstructions(instructions) {
20
31
  return ins;
21
32
  });
22
33
  }
34
+ /**
35
+ * Parses TAF row instruction string into structured RowInstruction objects
36
+ * Each instruction token sequence is parsed according to TAF format rules
37
+ */
23
38
  export function parseRowInstructions(meta) {
24
39
  const ret = meta.split(' ');
25
40
  const rows = [];
26
41
  for (let i = 0; i < ret.length;) {
27
42
  const type = ret[i++];
28
- if (type === 'i') {
29
- const row = +ret[i++];
30
- const sequenceName = ret[i++];
43
+ if (type === 'i' || type === 's') {
31
44
  rows.push({
32
45
  type,
33
- row,
34
- sequenceName,
35
- start: +ret[i++],
36
- strand: ret[i++] === '-' ? -1 : 1,
37
- sequenceLength: +ret[i++],
38
- });
39
- }
40
- else if (type === 's') {
41
- const row = +ret[i++];
42
- const sequenceName = ret[i++];
43
- rows.push({
44
- type,
45
- row,
46
- sequenceName,
46
+ row: +ret[i++],
47
+ sequenceName: ret[i++],
47
48
  start: +ret[i++],
48
49
  strand: ret[i++] === '-' ? -1 : 1,
49
50
  sequenceLength: +ret[i++],
@@ -1 +1 @@
1
- {"version":3,"file":"rowInstructions.js","sourceRoot":"","sources":["../../src/BgzipTaffyAdapter/rowInstructions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rowInstructions.js","sourceRoot":"","sources":["../../src/BgzipTaffyAdapter/rowInstructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAuCH,wEAAwE;AACxE,0CAA0C;AAC1C,8FAA8F;AAC9F,6FAA6F;AAC7F,MAAM,UAAU,2BAA2B,CACzC,YAA8B;IAE9B,OAAO,YAAY;SAChB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC;SACnD,GAAG,CAAC,GAAG,CAAC,EAAE;QACT,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YACrB,qBAAqB;YACrB,OAAO;gBACL,IAAI,EAAE,GAAY;gBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,cAAc,EAAE,GAAG,CAAC,cAAc;aACnC,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3B,MAAM,IAAI,GAAG,EAAsB,CAAA;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAI,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAA;QACrB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAE;gBACf,YAAY,EAAE,GAAG,CAAC,CAAC,EAAE,CAAE;gBACvB,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAE;gBACjB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAE;aACE,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAE;aAChB,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAE;gBACf,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAE;aACtB,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAE;gBACf,YAAY,EAAE,GAAG,CAAC,CAAC,EAAE,CAAE;aACxB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
2
- import type { BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
2
+ import type { MafAdapterOptions } from '../types';
3
3
  import type { Feature, Region } from '@jbrowse/core/util';
4
4
  export default class BigMafAdapter extends BaseFeatureDataAdapter {
5
5
  setupP?: Promise<{
@@ -13,7 +13,7 @@ export default class BigMafAdapter extends BaseFeatureDataAdapter {
13
13
  }>;
14
14
  getRefNames(): Promise<string[]>;
15
15
  getHeader(): Promise<unknown>;
16
- getFeatures(query: Region, opts?: BaseOptions): import("rxjs").Observable<Feature>;
16
+ getFeatures(query: Region, opts?: MafAdapterOptions): import("rxjs").Observable<Feature>;
17
17
  getSamples(_query: Region): Promise<{
18
18
  samples: {
19
19
  id: string;
@@ -1,12 +1,10 @@
1
1
  import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
2
- import { openLocation } from '@jbrowse/core/util/io';
3
2
  import { ObservableCreate } from '@jbrowse/core/util/rxjs';
4
3
  import { getSnapshot } from '@jbrowse/mobx-state-tree';
5
4
  import MafFeature from '../MafFeature';
6
- import parseNewick from '../parseNewick';
7
- import { normalize } from '../util';
8
5
  import { subscribeToObservable } from '../util/observableUtils';
9
- import { parseAssemblyAndChrSimple } from '../util/parseAssemblyName';
6
+ import { matchSampleId, parseAssemblyAndChrSimple, } from '../util/parseAssemblyName';
7
+ import { getSamplesFromConfig } from '../util/getSamples';
10
8
  export default class BigMafAdapter extends BaseFeatureDataAdapter {
11
9
  setupP;
12
10
  async setup() {
@@ -28,17 +26,20 @@ export default class BigMafAdapter extends BaseFeatureDataAdapter {
28
26
  return this.setupP;
29
27
  }
30
28
  async getRefNames() {
31
- const { adapter } = await this.setup();
29
+ const { adapter } = await this.setupPre();
32
30
  return adapter.getRefNames();
33
31
  }
34
32
  async getHeader() {
35
- const { adapter } = await this.setup();
33
+ const { adapter } = await this.setupPre();
36
34
  return adapter.getHeader();
37
35
  }
38
36
  getFeatures(query, opts) {
39
37
  const WHITESPACE_REGEX = / +/;
40
38
  return ObservableCreate(async (observer) => {
41
39
  const { adapter } = await this.setupPre();
40
+ const sampleIds = opts?.samples
41
+ ? new Set(opts.samples.map(s => s.id))
42
+ : undefined;
42
43
  await subscribeToObservable(adapter.getFeatures(query, opts), feature => {
43
44
  const maf = feature.get('mafBlock');
44
45
  const blocks = maf.split(';');
@@ -52,15 +53,21 @@ export default class BigMafAdapter extends BaseFeatureDataAdapter {
52
53
  if (referenceSeq === undefined) {
53
54
  referenceSeq = sequence;
54
55
  }
55
- const { assemblyName: org, chr } = parseAssemblyAndChrSimple(organismChr);
56
- alignments[org] = {
57
- chr,
58
- start: +parts[2],
59
- srcSize: +parts[3],
60
- strand: parts[4] === '+' ? 1 : -1,
61
- unknown: +parts[5],
62
- seq: sequence,
63
- };
56
+ // Known set resolve the token against it so haplotype-suffixed
57
+ // names (`Species1.1`) match exactly. No set → dot-position split.
58
+ const parsed = sampleIds
59
+ ? matchSampleId(organismChr, sampleIds)
60
+ : parseAssemblyAndChrSimple(organismChr);
61
+ if (parsed?.assemblyName) {
62
+ alignments[parsed.assemblyName] = {
63
+ chr: parsed.chr,
64
+ start: +parts[2],
65
+ srcSize: +parts[3],
66
+ strand: parts[4] === '+' ? 1 : -1,
67
+ unknown: +parts[5],
68
+ seq: sequence,
69
+ };
70
+ }
64
71
  }
65
72
  }
66
73
  observer.next(new MafFeature(feature.id(), feature.get('start'), feature.get('end'), feature.get('refName'), 0, // strand not in BigMaf format
@@ -70,16 +77,7 @@ export default class BigMafAdapter extends BaseFeatureDataAdapter {
70
77
  }, opts?.stopToken);
71
78
  }
72
79
  async getSamples(_query) {
73
- const nhLoc = this.getConf('nhLocation');
74
- const nh = nhLoc.uri === '/path/to/my.nh'
75
- ? undefined
76
- : await openLocation(nhLoc).readFile('utf8');
77
- // TODO: we may need to resolve the exact set of rows in the visible region
78
- // here
79
- return {
80
- samples: normalize(this.getConf('samples')),
81
- tree: nh ? parseNewick(nh) : undefined,
82
- };
80
+ return getSamplesFromConfig(this.getConf.bind(this));
83
81
  }
84
82
  freeResources() { }
85
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BigMafAdapter.js","sourceRoot":"","sources":["../../src/BigMafAdapter/BigMafAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BigMafAdapter.js","sourceRoot":"","sources":["../../src/BigMafAdapter/BigMafAdapter.ts"],"names":[],"mappings":"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"}