jbrowse-plugin-mafviewer 1.5.0 → 1.6.0

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 (75) hide show
  1. package/README.md +89 -21
  2. package/dist/BgzipTaffyAdapter/BgzipTaffyAdapter.d.ts +11 -4
  3. package/dist/BgzipTaffyAdapter/BgzipTaffyAdapter.js +26 -18
  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 +11 -16
  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.js +16 -1
  18. package/dist/LinearMafRenderer/LinearMafRenderer.js.map +1 -1
  19. package/dist/LinearMafRenderer/configSchema.d.ts +1 -1
  20. package/dist/LinearMafRenderer/makeImageData.d.ts +0 -14
  21. package/dist/LinearMafRenderer/makeImageData.js +0 -11
  22. package/dist/LinearMafRenderer/makeImageData.js.map +1 -1
  23. package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js +1 -1
  24. package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js.map +1 -1
  25. package/dist/MafSequenceWidget/MafSequenceWidget.js +7 -1
  26. package/dist/MafSequenceWidget/MafSequenceWidget.js.map +1 -1
  27. package/dist/MafSequenceWidget/configSchema.d.ts +1 -1
  28. package/dist/MafTabixAdapter/MafTabixAdapter.d.ts +4 -6
  29. package/dist/MafTabixAdapter/MafTabixAdapter.js +15 -23
  30. package/dist/MafTabixAdapter/MafTabixAdapter.js.map +1 -1
  31. package/dist/MafTabixAdapter/configSchema.d.ts +4 -4
  32. package/dist/MafTrack/configSchema.d.ts +8 -8
  33. package/dist/jbrowse-plugin-mafviewer.umd.production.min.js +8 -8
  34. package/dist/jbrowse-plugin-mafviewer.umd.production.min.js.map +4 -4
  35. package/dist/parseNewick.js +1 -1
  36. package/dist/parseNewick.js.map +1 -1
  37. package/dist/types.d.ts +9 -0
  38. package/dist/types.js +0 -3
  39. package/dist/types.js.map +1 -1
  40. package/dist/util/extractSubsequence.d.ts +0 -8
  41. package/dist/util/extractSubsequence.js +1 -28
  42. package/dist/util/extractSubsequence.js.map +1 -1
  43. package/dist/util/extractSubsequence.test.js +1 -1
  44. package/dist/util/fastaUtils.js +10 -10
  45. package/dist/util/fastaUtils.js.map +1 -1
  46. package/dist/util/fastaUtils.test.js +122 -0
  47. package/dist/util/fastaUtils.test.js.map +1 -1
  48. package/dist/util/getSamples.d.ts +8 -0
  49. package/dist/util/getSamples.js +18 -0
  50. package/dist/util/getSamples.js.map +1 -0
  51. package/dist/util/parseAssemblyName.js +7 -17
  52. package/dist/util/parseAssemblyName.js.map +1 -1
  53. package/dist/version.d.ts +1 -1
  54. package/dist/version.js +1 -1
  55. package/package.json +50 -37
  56. package/src/BgzipTaffyAdapter/BgzipTaffyAdapter.ts +36 -18
  57. package/src/BgzipTaffyAdapter/rowInstructions.ts +20 -17
  58. package/src/BigMafAdapter/BigMafAdapter.ts +17 -22
  59. package/src/LinearMafDisplay/components/useDragSelection.ts +14 -3
  60. package/src/LinearMafRenderer/LinearMafRenderer.ts +21 -4
  61. package/src/LinearMafRenderer/makeImageData.ts +0 -27
  62. package/src/MafAddTrackWorkflow/AddTrackWorkflow.tsx +1 -1
  63. package/src/MafSequenceWidget/MafSequenceWidget.tsx +7 -3
  64. package/src/MafTabixAdapter/MafTabixAdapter.ts +22 -30
  65. package/src/parseNewick.ts +1 -1
  66. package/src/types.ts +11 -0
  67. package/src/util/__snapshots__/fastaUtils.test.ts.snap +1 -1
  68. package/src/util/extractSubsequence.test.ts +1 -1
  69. package/src/util/extractSubsequence.ts +2 -32
  70. package/src/util/fastaUtils.test.ts +128 -0
  71. package/src/util/fastaUtils.ts +10 -10
  72. package/src/util/getSamples.ts +25 -0
  73. package/src/util/parseAssemblyName.ts +7 -17
  74. package/src/version.ts +1 -1
  75. 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
9
  import { parseAssemblyAndChrSimple } from '../util/parseAssemblyName';
12
- // Binary search to find the index of the first element >= target
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,7 +211,7 @@ 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
  }
@@ -210,6 +219,9 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
210
219
  const alignments = {};
211
220
  for (const row of block.rows) {
212
221
  const { assemblyName, chr } = parseAssemblyAndChrSimple(row.sequenceName);
222
+ if (sampleFilter && !sampleFilter.has(assemblyName)) {
223
+ continue;
224
+ }
213
225
  alignments[assemblyName] = {
214
226
  chr,
215
227
  start: row.start,
@@ -303,6 +315,9 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
303
315
  return ObservableCreate(async (observer) => {
304
316
  try {
305
317
  const { index, runLengthEncodeBases } = await this.setup(opts);
318
+ const sampleFilter = opts?.samples
319
+ ? new Set(opts.samples.map(s => s.id))
320
+ : undefined;
306
321
  // Get byte range for this query
307
322
  const records = index[query.refName];
308
323
  if (!records || records.length === 0) {
@@ -335,7 +350,7 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
335
350
  : buffer.length;
336
351
  const slice = buffer.slice(startOffset, endOffset);
337
352
  // Stream features using generator - no caching, immediate GC eligible
338
- for (const feat of this.parseTafBlocksStreaming(slice, runLengthEncodeBases)) {
353
+ for (const feat of this.parseTafBlocksStreaming(slice, runLengthEncodeBases, sampleFilter)) {
339
354
  // Filter features that overlap with query region
340
355
  if (feat.end > query.start && feat.start < query.end) {
341
356
  observer.next(new MafFeature(feat.uniqueId, feat.start, feat.end, query.refName, feat.strand, feat.alignments, feat.seq));
@@ -350,14 +365,7 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
350
365
  });
351
366
  }
352
367
  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
- };
368
+ return getSamplesFromConfig(this.getConf.bind(this));
361
369
  }
362
370
  freeResources() { }
363
371
  }
@@ -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
6
  import { 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 sampleFilter = 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(';');
@@ -49,10 +50,13 @@ export default class BigMafAdapter extends BaseFeatureDataAdapter {
49
50
  const parts = block.split(WHITESPACE_REGEX);
50
51
  const sequence = parts[6];
51
52
  const organismChr = parts[1];
53
+ const { assemblyName: org, chr } = parseAssemblyAndChrSimple(organismChr);
52
54
  if (referenceSeq === undefined) {
53
55
  referenceSeq = sequence;
54
56
  }
55
- const { assemblyName: org, chr } = parseAssemblyAndChrSimple(organismChr);
57
+ if (sampleFilter && !sampleFilter.has(org)) {
58
+ continue;
59
+ }
56
60
  alignments[org] = {
57
61
  chr,
58
62
  start: +parts[2],
@@ -70,16 +74,7 @@ export default class BigMafAdapter extends BaseFeatureDataAdapter {
70
74
  }, opts?.stopToken);
71
75
  }
72
76
  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
- };
77
+ return getSamplesFromConfig(this.getConf.bind(this));
83
78
  }
84
79
  freeResources() { }
85
80
  }
@@ -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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"}
@@ -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
  */
@@ -28,5 +28,5 @@ declare const configSchema: import("@jbrowse/core/esm/configuration/configuratio
28
28
  locationType: string;
29
29
  };
30
30
  };
31
- }, import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
31
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
32
32
  export default configSchema;