react-msaview 4.6.0 → 4.8.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 (93) hide show
  1. package/bundle/index.js +99 -99
  2. package/bundle/index.js.LICENSE.txt +6 -6
  3. package/bundle/index.js.map +1 -1
  4. package/dist/__snapshots__/parseAsn1.test.js.snap +2400 -0
  5. package/dist/components/header/HeaderInfoArea.js +3 -4
  6. package/dist/components/header/HeaderInfoArea.js.map +1 -1
  7. package/dist/components/import/ImportForm.js +6 -2
  8. package/dist/components/import/ImportForm.js.map +1 -1
  9. package/dist/components/import/util.d.ts +1 -1
  10. package/dist/components/import/util.js +4 -1
  11. package/dist/components/import/util.js.map +1 -1
  12. package/dist/components/msa/renderBoxFeatureCanvasBlock.js +7 -2
  13. package/dist/components/msa/renderBoxFeatureCanvasBlock.js.map +1 -1
  14. package/dist/components/msa/renderMSABlock.js.map +1 -1
  15. package/dist/components/tree/renderTreeCanvas.js +10 -8
  16. package/dist/components/tree/renderTreeCanvas.js.map +1 -1
  17. package/dist/model.d.ts +153 -16
  18. package/dist/model.js +97 -29
  19. package/dist/model.js.map +1 -1
  20. package/dist/rowCoordinateCalculations.d.ts +69 -9
  21. package/dist/rowCoordinateCalculations.js +118 -46
  22. package/dist/rowCoordinateCalculations.js.map +1 -1
  23. package/dist/rowCoordinateCalculations.test.js +152 -52
  24. package/dist/rowCoordinateCalculations.test.js.map +1 -1
  25. package/dist/seqPosToGlobalCol.d.ts +19 -0
  26. package/dist/seqPosToGlobalCol.js +34 -0
  27. package/dist/seqPosToGlobalCol.js.map +1 -0
  28. package/dist/seqPosToGlobalCol.test.js +60 -0
  29. package/dist/seqPosToGlobalCol.test.js.map +1 -0
  30. package/dist/util.d.ts +1 -2
  31. package/dist/util.js +0 -9
  32. package/dist/util.js.map +1 -1
  33. package/dist/version.d.ts +1 -1
  34. package/dist/version.js +1 -1
  35. package/package.json +7 -9
  36. package/src/components/header/HeaderInfoArea.tsx +2 -5
  37. package/src/components/import/ImportForm.tsx +6 -1
  38. package/src/components/import/util.ts +4 -0
  39. package/src/components/msa/renderBoxFeatureCanvasBlock.ts +7 -2
  40. package/src/components/msa/renderMSABlock.ts +5 -1
  41. package/src/components/tree/renderTreeCanvas.ts +11 -9
  42. package/src/declare.d.ts +0 -1
  43. package/src/model.ts +122 -42
  44. package/src/rowCoordinateCalculations.test.ts +167 -74
  45. package/src/rowCoordinateCalculations.ts +138 -63
  46. package/src/seqPosToGlobalCol.test.ts +71 -0
  47. package/src/seqPosToGlobalCol.ts +40 -0
  48. package/src/util.ts +1 -19
  49. package/src/version.ts +1 -1
  50. package/dist/parseGFF.d.ts +0 -10
  51. package/dist/parseGFF.js +0 -31
  52. package/dist/parseGFF.js.map +0 -1
  53. package/dist/parseNewick.d.ts +0 -60
  54. package/dist/parseNewick.js +0 -95
  55. package/dist/parseNewick.js.map +0 -1
  56. package/dist/parsers/A3mMSA.d.ts +0 -43
  57. package/dist/parsers/A3mMSA.js +0 -277
  58. package/dist/parsers/A3mMSA.js.map +0 -1
  59. package/dist/parsers/A3mMSA.test.js +0 -138
  60. package/dist/parsers/A3mMSA.test.js.map +0 -1
  61. package/dist/parsers/ClustalMSA.d.ts +0 -30
  62. package/dist/parsers/ClustalMSA.js +0 -55
  63. package/dist/parsers/ClustalMSA.js.map +0 -1
  64. package/dist/parsers/EmfMSA.d.ts +0 -27
  65. package/dist/parsers/EmfMSA.js +0 -53
  66. package/dist/parsers/EmfMSA.js.map +0 -1
  67. package/dist/parsers/EmfTree.d.ts +0 -5
  68. package/dist/parsers/EmfTree.js +0 -8
  69. package/dist/parsers/EmfTree.js.map +0 -1
  70. package/dist/parsers/FastaMSA.d.ts +0 -19
  71. package/dist/parsers/FastaMSA.js +0 -69
  72. package/dist/parsers/FastaMSA.js.map +0 -1
  73. package/dist/parsers/StockholmMSA.d.ts +0 -68
  74. package/dist/parsers/StockholmMSA.js +0 -107
  75. package/dist/parsers/StockholmMSA.js.map +0 -1
  76. package/dist/seqCoordToRowSpecificGlobalCoord.d.ts +0 -4
  77. package/dist/seqCoordToRowSpecificGlobalCoord.js +0 -19
  78. package/dist/seqCoordToRowSpecificGlobalCoord.js.map +0 -1
  79. package/dist/seqCoordToRowSpecificGlobalCoord.test.d.ts +0 -1
  80. package/dist/seqCoordToRowSpecificGlobalCoord.test.js +0 -42
  81. package/dist/seqCoordToRowSpecificGlobalCoord.test.js.map +0 -1
  82. package/src/parseGFF.ts +0 -34
  83. package/src/parseNewick.ts +0 -94
  84. package/src/parsers/A3mMSA.test.ts +0 -164
  85. package/src/parsers/A3mMSA.ts +0 -321
  86. package/src/parsers/ClustalMSA.ts +0 -69
  87. package/src/parsers/EmfMSA.ts +0 -67
  88. package/src/parsers/EmfTree.ts +0 -9
  89. package/src/parsers/FastaMSA.ts +0 -82
  90. package/src/parsers/StockholmMSA.ts +0 -140
  91. package/src/seqCoordToRowSpecificGlobalCoord.test.ts +0 -53
  92. package/src/seqCoordToRowSpecificGlobalCoord.ts +0 -25
  93. /package/dist/{parsers/A3mMSA.test.d.ts → seqPosToGlobalCol.test.d.ts} +0 -0
@@ -1,138 +0,0 @@
1
- import { describe, expect, test } from 'vitest';
2
- import A3mMSA from './A3mMSA';
3
- const exampleA3M = `>example
4
- ETESMKTVRIREKIKKFLGDRPRNTAEILEHINSTMRHGTTSQQLGNVLSKDKDIVKVGYIKRSGILSGGYDICEWATRNWVAEHCPEWTE
5
- >1
6
- ----MRTTRLRQKIKKFLNERGeANTTEILEHVNSTMRHGTTPQQLGNVLSKDKDILKVATTKRGGALSGRYEICVWTLRP-----------
7
- >2
8
- ----MDSQNLRDLIRNYLSERPRNTIEISAWLASQMDPNSCPEDVTNILEADESIVRIGTVRKSGMRLTDLPISEWASSSWVRRHE-----
9
- >3
10
- ----MNSQNLRELIRNYLSERPRNTIEISTWLSSQIDPTNSPVDITSILEADDQIVRIGTVRKSGMRRSESPVSEWASNTWVKHHE-----
11
- >4
12
- --RDMDTEKVREIVRNYISERPRNTAEIAAWLNRH-DDGTGGSDVAAILESDGSFVRIGTVRTSGMTGNSPPLSEWATEKWIQHHER----
13
- >5
14
- -----RTRRLREAVLVFLEEKGnANTVEVFDYLNERFRWGATMNQVGNILAKDTRFAKVGHQ-RGQFRGSVYTVCVWALS------------
15
- >6
16
- -----RTKRLREAVRVYLAENGrSHTVDIFDHLNDRFSWGATMNQVGNILAKDNRFEKVGHVRD-FFRGARYTVCVWDLAS-----------
17
- `;
18
- describe('A3mMSA', () => {
19
- test('sniff detects A3M format', () => {
20
- expect(A3mMSA.sniff(exampleA3M)).toBe(true);
21
- });
22
- test('sniff returns false for regular FASTA', () => {
23
- const fasta = `>seq1
24
- ACDEFGHIKLMNPQRST
25
- >seq2
26
- ACDEFGHIKLMNPQRST
27
- `;
28
- expect(A3mMSA.sniff(fasta)).toBe(false);
29
- });
30
- test('sniff returns false for non-FASTA formats', () => {
31
- expect(A3mMSA.sniff('# STOCKHOLM 1.0\n')).toBe(false);
32
- expect(A3mMSA.sniff('CLUSTAL W')).toBe(false);
33
- });
34
- test('parses A3M and expands insertions', () => {
35
- const parser = new A3mMSA(exampleA3M);
36
- const names = parser.getNames();
37
- expect(names).toEqual(['example', '1', '2', '3', '4', '5', '6']);
38
- // All sequences should have the same length after expansion
39
- const widths = names.map(name => parser.getRow(name).length);
40
- expect(widths.every(w => w === widths[0])).toBe(true);
41
- // The width should be greater than the original due to expanded inserts
42
- expect(parser.getWidth()).toBeGreaterThan(90);
43
- });
44
- test('lowercase inserts become uppercase after expansion', () => {
45
- const parser = new A3mMSA(exampleA3M);
46
- // The expanded sequences should not contain lowercase letters
47
- for (const name of parser.getNames()) {
48
- const row = parser.getRow(name);
49
- expect(/[a-z]/.test(row)).toBe(false);
50
- }
51
- });
52
- test('handles simple A3M with single insert', () => {
53
- // In valid A3M, match columns (uppercase + - + .) must be consistent
54
- // seq1 has 5 match columns + 1 insert after D
55
- // seq2 has 5 match columns, no inserts
56
- const simple = `>seq1
57
- ACDaEF
58
- >seq2
59
- ACDEF
60
- `;
61
- const parser = new A3mMSA(simple);
62
- // seq1 has an 'a' insert after 'D', seq2 doesn't
63
- // After expansion, both should be same length
64
- const seq1 = parser.getRow('seq1');
65
- const seq2 = parser.getRow('seq2');
66
- expect(seq1.length).toBe(seq2.length);
67
- expect(seq1).toBe('ACDAEF');
68
- expect(seq2).toBe('ACD.EF');
69
- });
70
- test('handles multiple inserts at different positions', () => {
71
- // seq1: 6 match columns (A,C,D,E,F,I) + inserts (ab after D, gh after F)
72
- // seq2: 6 match columns, no inserts
73
- const multi = `>seq1
74
- ACDabEFghI
75
- >seq2
76
- ACDEFI
77
- `;
78
- const parser = new A3mMSA(multi);
79
- const seq1 = parser.getRow('seq1');
80
- const seq2 = parser.getRow('seq2');
81
- expect(seq1.length).toBe(seq2.length);
82
- // seq1: ACD + ab (inserts) + EF + gh (inserts) + I
83
- // seq2: ACD + EF + I -> needs . padding at insert positions
84
- expect(seq1).toBe('ACDABEFGHI');
85
- expect(seq2).toBe('ACD..EF..I');
86
- });
87
- test('handles varying insert lengths', () => {
88
- const varying = `>seq1
89
- ACDabcEF
90
- >seq2
91
- ACDaEF
92
- >seq3
93
- ACDEF
94
- `;
95
- const parser = new A3mMSA(varying);
96
- const seq1 = parser.getRow('seq1');
97
- const seq2 = parser.getRow('seq2');
98
- const seq3 = parser.getRow('seq3');
99
- // All should have same length
100
- expect(seq1.length).toBe(seq2.length);
101
- expect(seq2.length).toBe(seq3.length);
102
- // seq1 has 3 inserts, seq2 has 1, seq3 has 0
103
- // After expansion with max 3 insert slots:
104
- expect(seq1).toBe('ACDABCEF');
105
- expect(seq2).toBe('ACDA..EF');
106
- expect(seq3).toBe('ACD...EF');
107
- });
108
- test('getTree returns flat tree structure', () => {
109
- const parser = new A3mMSA(exampleA3M);
110
- const tree = parser.getTree();
111
- expect(tree.id).toBe('root');
112
- expect(tree.noTree).toBe(true);
113
- expect(tree.children.length).toBe(7);
114
- expect(tree.children.map(c => c.name)).toEqual([
115
- 'example',
116
- '1',
117
- '2',
118
- '3',
119
- '4',
120
- '5',
121
- '6',
122
- ]);
123
- });
124
- test('getWidth returns consistent width', () => {
125
- const parser = new A3mMSA(exampleA3M);
126
- const width = parser.getWidth();
127
- for (const name of parser.getNames()) {
128
- expect(parser.getRow(name).length).toBe(width);
129
- }
130
- });
131
- test('getMSA returns parsed data', () => {
132
- const parser = new A3mMSA(exampleA3M);
133
- const msa = parser.getMSA();
134
- expect(msa.seqdata).toBeDefined();
135
- expect(Object.keys(msa.seqdata).length).toBe(7);
136
- });
137
- });
138
- //# sourceMappingURL=A3mMSA.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"A3mMSA.test.js","sourceRoot":"","sources":["../../src/parsers/A3mMSA.test.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import type { NodeWithIds } from '../types';
2
- export default class ClustalMSA {
3
- private MSA;
4
- constructor(text: string);
5
- getMSA(): {
6
- consensus: string;
7
- alns: {
8
- id: string | undefined;
9
- seq: string;
10
- }[];
11
- header: {
12
- info: string;
13
- version: string | undefined;
14
- };
15
- };
16
- getRow(name: string): string;
17
- getWidth(): number;
18
- getRowData(): undefined;
19
- getHeader(): {
20
- info: string;
21
- version: string | undefined;
22
- };
23
- getNames(): (string | undefined)[];
24
- getStructures(): {};
25
- get alignmentNames(): never[];
26
- getTree(): NodeWithIds;
27
- get seqConsensus(): string;
28
- get secondaryStructureConsensus(): undefined;
29
- get tracks(): never[];
30
- }
@@ -1,55 +0,0 @@
1
- import { parse } from 'clustal-js';
2
- export default class ClustalMSA {
3
- MSA;
4
- constructor(text) {
5
- this.MSA = parse(text);
6
- }
7
- getMSA() {
8
- return this.MSA;
9
- }
10
- getRow(name) {
11
- return this.MSA.alns.find(aln => aln.id === name)?.seq || '';
12
- }
13
- getWidth() {
14
- return this.MSA.alns[0].seq.length;
15
- }
16
- getRowData() {
17
- return undefined;
18
- }
19
- getHeader() {
20
- return this.MSA.header;
21
- }
22
- getNames() {
23
- return this.MSA.alns.map(aln => aln.id);
24
- }
25
- getStructures() {
26
- return {};
27
- }
28
- get alignmentNames() {
29
- return [];
30
- }
31
- getTree() {
32
- return {
33
- id: 'root',
34
- name: 'root',
35
- noTree: true,
36
- children: this.getNames()
37
- .filter((name) => name !== undefined)
38
- .map(name => ({
39
- id: name,
40
- name,
41
- children: [],
42
- })),
43
- };
44
- }
45
- get seqConsensus() {
46
- return this.MSA.consensus;
47
- }
48
- get secondaryStructureConsensus() {
49
- return undefined;
50
- }
51
- get tracks() {
52
- return [];
53
- }
54
- }
55
- //# sourceMappingURL=ClustalMSA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClustalMSA.js","sourceRoot":"","sources":["../../src/parsers/ClustalMSA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIlC,MAAM,CAAC,OAAO,OAAO,UAAU;IACrB,GAAG,CAA0B;IAErC,YAAY,IAAY;QACtB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAA;IAC9D,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,MAAM,CAAA;IACrC,CAAC;IAED,UAAU;QACR,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAA;IACxB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,aAAa;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO;QACL,OAAO;YACL,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;iBACtB,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;iBACpD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACZ,EAAE,EAAE,IAAI;gBACR,IAAI;gBACJ,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;SACN,CAAA;IACH,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAA;IAC3B,CAAC;IACD,IAAI,2BAA2B;QAC7B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,EAAE,CAAA;IACX,CAAC;CACF"}
@@ -1,27 +0,0 @@
1
- import type { NodeWithIds } from '../types';
2
- export default class EmfMSA {
3
- private MSA;
4
- constructor(text: string);
5
- getMSA(): {
6
- species: string;
7
- protein: string;
8
- chr: string;
9
- start: number;
10
- end: number;
11
- strand: number;
12
- geneId: string;
13
- unknown: string;
14
- seq: string;
15
- }[];
16
- getRow(name: string): string;
17
- getWidth(): number;
18
- getRowData(): undefined;
19
- getHeader(): string;
20
- getNames(): string[];
21
- getStructures(): {};
22
- get alignmentNames(): never[];
23
- getTree(): NodeWithIds;
24
- get seqConsensus(): undefined;
25
- get secondaryStructureConsensus(): undefined;
26
- get tracks(): never[];
27
- }
@@ -1,53 +0,0 @@
1
- import { parseEmfAln } from 'emf-js';
2
- export default class EmfMSA {
3
- MSA;
4
- constructor(text) {
5
- this.MSA = parseEmfAln(text);
6
- }
7
- getMSA() {
8
- return this.MSA;
9
- }
10
- getRow(name) {
11
- return this.MSA.find(aln => aln.protein === name)?.seq || '';
12
- }
13
- getWidth() {
14
- return this.MSA[0].seq.length;
15
- }
16
- getRowData() {
17
- return undefined;
18
- }
19
- getHeader() {
20
- return '';
21
- }
22
- getNames() {
23
- return this.MSA.map(aln => aln.protein);
24
- }
25
- getStructures() {
26
- return {};
27
- }
28
- get alignmentNames() {
29
- return [];
30
- }
31
- getTree() {
32
- return {
33
- id: 'root',
34
- name: 'root',
35
- noTree: true,
36
- children: this.getNames().map(name => ({
37
- id: name,
38
- name,
39
- children: [],
40
- })),
41
- };
42
- }
43
- get seqConsensus() {
44
- return undefined;
45
- }
46
- get secondaryStructureConsensus() {
47
- return undefined;
48
- }
49
- get tracks() {
50
- return [];
51
- }
52
- }
53
- //# sourceMappingURL=EmfMSA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmfMSA.js","sourceRoot":"","sources":["../../src/parsers/EmfMSA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAIpC,MAAM,CAAC,OAAO,OAAO,MAAM;IACjB,GAAG,CAAgC;IAE3C,YAAY,IAAY;QACtB,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAA;IAC9D,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,MAAM,CAAA;IAChC,CAAC;IAED,UAAU;QACR,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,SAAS;QACP,OAAO,EAAE,CAAA;IACX,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,aAAa;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO;QACL,OAAO;YACL,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrC,EAAE,EAAE,IAAI;gBACR,IAAI;gBACJ,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;SACJ,CAAA;IACH,CAAC;IAED,IAAI,YAAY;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,2BAA2B;QAC7B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,EAAE,CAAA;IACX,CAAC;CACF"}
@@ -1,5 +0,0 @@
1
- import { parseEmfTree } from 'emf-js';
2
- export default class EmfTree {
3
- data: ReturnType<typeof parseEmfTree>;
4
- constructor(text: string);
5
- }
@@ -1,8 +0,0 @@
1
- import { parseEmfTree } from 'emf-js';
2
- export default class EmfTree {
3
- data;
4
- constructor(text) {
5
- this.data = parseEmfTree(text);
6
- }
7
- }
8
- //# sourceMappingURL=EmfTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmfTree.js","sourceRoot":"","sources":["../../src/parsers/EmfTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAErC,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,IAAI,CAAiC;IAErC,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;CACF"}
@@ -1,19 +0,0 @@
1
- import type { NodeWithIds } from '../types';
2
- export default class FastaMSA {
3
- private MSA;
4
- constructor(text: string);
5
- getMSA(): {
6
- seqdata: Record<string, string>;
7
- };
8
- getRowData(): undefined;
9
- getNames(): string[];
10
- getRow(name: string): string;
11
- getWidth(): number;
12
- getStructures(): {};
13
- get alignmentNames(): never[];
14
- getHeader(): {};
15
- getTree(): NodeWithIds;
16
- get seqConsensus(): undefined;
17
- get secondaryStructureConsensus(): undefined;
18
- get tracks(): never[];
19
- }
@@ -1,69 +0,0 @@
1
- export default class FastaMSA {
2
- MSA;
3
- constructor(text) {
4
- const seqdata = {};
5
- for (const entry of text.split('>')) {
6
- if (!/\S/.test(entry)) {
7
- continue;
8
- }
9
- const newlineIdx = entry.indexOf('\n');
10
- if (newlineIdx === -1) {
11
- continue;
12
- }
13
- const defLine = entry.slice(0, newlineIdx);
14
- const spaceIdx = defLine.indexOf(' ');
15
- const id = spaceIdx === -1 ? defLine : defLine.slice(0, spaceIdx);
16
- if (id) {
17
- seqdata[id] = entry.slice(newlineIdx + 1).replaceAll(/\s/g, '');
18
- }
19
- }
20
- this.MSA = { seqdata };
21
- }
22
- getMSA() {
23
- return this.MSA;
24
- }
25
- getRowData() {
26
- return undefined;
27
- }
28
- getNames() {
29
- return Object.keys(this.MSA.seqdata);
30
- }
31
- getRow(name) {
32
- return this.MSA.seqdata[name] || '';
33
- }
34
- getWidth() {
35
- const name = Object.keys(this.MSA.seqdata)[0];
36
- return this.getRow(name).length;
37
- }
38
- getStructures() {
39
- return {};
40
- }
41
- get alignmentNames() {
42
- return [];
43
- }
44
- getHeader() {
45
- return {};
46
- }
47
- getTree() {
48
- return {
49
- id: 'root',
50
- name: 'root',
51
- noTree: true,
52
- children: this.getNames().map(name => ({
53
- id: name,
54
- children: [],
55
- name,
56
- })),
57
- };
58
- }
59
- get seqConsensus() {
60
- return undefined;
61
- }
62
- get secondaryStructureConsensus() {
63
- return undefined;
64
- }
65
- get tracks() {
66
- return [];
67
- }
68
- }
69
- //# sourceMappingURL=FastaMSA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FastaMSA.js","sourceRoot":"","sources":["../../src/parsers/FastaMSA.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,QAAQ;IACnB,GAAG,CAAqC;IAEhD,YAAY,IAAY;QACtB,MAAM,OAAO,GAA2B,EAAE,CAAA;QAC1C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,SAAQ;YACV,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACtC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtB,SAAQ;YACV,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACrC,MAAM,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YACjE,IAAI,EAAE,EAAE,CAAC;gBACP,OAAO,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,CAAA;IACxB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED,UAAU;QACR,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IACrC,CAAC;IAED,QAAQ;QACN,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,CAAA;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;IACjC,CAAC;IAED,aAAa;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,SAAS;QACP,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO;QACL,OAAO;YACL,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrC,EAAE,EAAE,IAAI;gBACR,QAAQ,EAAE,EAAE;gBACZ,IAAI;aACL,CAAC,CAAC;SACJ,CAAA;IACH,CAAC;IAED,IAAI,YAAY;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,2BAA2B;QAC7B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,EAAE,CAAA;IACX,CAAC;CACF"}
@@ -1,68 +0,0 @@
1
- import type { NodeWithIds } from '../types';
2
- interface StockholmEntry {
3
- gf: {
4
- DE?: string[];
5
- NH?: string[];
6
- };
7
- gs?: {
8
- AC: Record<string, string>;
9
- DR?: Record<string, string>;
10
- };
11
- gc?: {
12
- SS_cons?: string;
13
- seq_cons?: string;
14
- };
15
- seqdata: Record<string, string>;
16
- }
17
- export default class StockholmMSA {
18
- private data;
19
- private MSA;
20
- constructor(text: string, currentAlignment: number);
21
- getMSA(): StockholmEntry;
22
- getRow(name: string): string;
23
- getWidth(): number;
24
- get alignmentNames(): string[];
25
- getHeader(): {
26
- General: {
27
- DE?: string[];
28
- NH?: string[];
29
- };
30
- Accessions: Record<string, string> | undefined;
31
- Dbxref: Record<string, string> | undefined;
32
- };
33
- getRowData(rowName: string): {
34
- name: string;
35
- accession: string | undefined;
36
- dbxref: string | undefined;
37
- };
38
- getNames(): string[];
39
- getSeqCoords(): void;
40
- getStructures(): Record<string, Omit<{
41
- id: string;
42
- pdb: string;
43
- chain: string;
44
- startPos: number;
45
- endPos: number;
46
- }, "id">[]>;
47
- getTree(): NodeWithIds;
48
- get seqConsensus(): string | undefined;
49
- get secondaryStructureConsensus(): string | undefined;
50
- get tracks(): ({
51
- id: string;
52
- name: string;
53
- data: string | undefined;
54
- customColorScheme: {
55
- '>'?: undefined;
56
- '<'?: undefined;
57
- };
58
- } | {
59
- id: string;
60
- name: string;
61
- data: string | undefined;
62
- customColorScheme: {
63
- '>': string;
64
- '<': string;
65
- };
66
- })[];
67
- }
68
- export {};
@@ -1,107 +0,0 @@
1
- import Stockholm from 'stockholm-js';
2
- import parseNewick from '../parseNewick';
3
- import { generateNodeIds } from '../util';
4
- export default class StockholmMSA {
5
- data;
6
- MSA;
7
- constructor(text, currentAlignment) {
8
- const res = Stockholm.parseAll(text);
9
- this.data = res;
10
- this.MSA = res[currentAlignment];
11
- }
12
- getMSA() {
13
- return this.MSA;
14
- }
15
- getRow(name) {
16
- return this.MSA.seqdata[name] || '';
17
- }
18
- getWidth() {
19
- const name = Object.keys(this.MSA.seqdata)[0];
20
- return this.getRow(name).length;
21
- }
22
- get alignmentNames() {
23
- return this.data.map((aln, idx) => aln.gf.DE?.[0] || `Alignment ${idx + 1}`);
24
- }
25
- getHeader() {
26
- return {
27
- General: this.MSA.gf,
28
- Accessions: this.MSA.gs?.AC,
29
- Dbxref: this.MSA.gs?.DR,
30
- };
31
- }
32
- getRowData(rowName) {
33
- return {
34
- name: rowName,
35
- accession: this.MSA.gs?.AC[rowName],
36
- dbxref: this.MSA.gs?.DR?.[rowName],
37
- };
38
- }
39
- getNames() {
40
- return Object.keys(this.MSA.seqdata);
41
- }
42
- getSeqCoords() { }
43
- getStructures() {
44
- const pdbRegex = /PDB; +(\S+) +(\S); ([0-9]+)-([0-9]+)/;
45
- const ent = this.MSA;
46
- const args = Object.entries(ent.gs?.DR || {})
47
- .map(([id, dr]) => [id, pdbRegex.exec(dr)])
48
- .filter((item) => !!item[1])
49
- .map(([id, match]) => {
50
- const pdb = match[1].toLowerCase();
51
- const chain = match[2];
52
- const startPos = +match[3];
53
- const endPos = +match[4];
54
- return { id, pdb, chain, startPos, endPos };
55
- });
56
- const ret = {};
57
- for (const entry of args) {
58
- const { id, ...rest } = entry;
59
- if (!ret[id]) {
60
- ret[id] = [];
61
- }
62
- ret[id].push(rest);
63
- }
64
- return ret;
65
- }
66
- getTree() {
67
- const tree = this.MSA.gf.NH?.[0];
68
- return tree
69
- ? generateNodeIds(parseNewick(tree))
70
- : {
71
- id: 'root',
72
- name: 'root',
73
- noTree: true,
74
- children: this.getNames().map(name => ({
75
- id: name,
76
- children: [],
77
- name,
78
- })),
79
- };
80
- }
81
- get seqConsensus() {
82
- return this.MSA.gc?.seq_cons;
83
- }
84
- get secondaryStructureConsensus() {
85
- return this.MSA.gc?.SS_cons;
86
- }
87
- get tracks() {
88
- return [
89
- {
90
- id: 'seqConsensus',
91
- name: 'Sequence consensus',
92
- data: this.seqConsensus,
93
- customColorScheme: {},
94
- },
95
- {
96
- id: 'secondaryStruct',
97
- name: 'Secondary-structure',
98
- data: this.secondaryStructureConsensus,
99
- customColorScheme: {
100
- '>': 'pink',
101
- '<': 'lightblue',
102
- },
103
- },
104
- ];
105
- }
106
- }
107
- //# sourceMappingURL=StockholmMSA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StockholmMSA.js","sourceRoot":"","sources":["../../src/parsers/StockholmMSA.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAA;AAEpC,OAAO,WAAW,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAoBzC,MAAM,CAAC,OAAO,OAAO,YAAY;IACvB,IAAI,CAAkB;IACtB,GAAG,CAAgB;IAE3B,YAAY,IAAY,EAAE,gBAAwB;QAChD,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IACrC,CAAC;IAED,QAAQ;QACN,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,CAAA;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;IACjC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED,SAAS;QACP,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;YACpB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE;YAC3B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE;SACxB,CAAA;IACH,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;SACnC,CAAA;IACH,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,YAAY,KAAI,CAAC;IAEjB,aAAa;QACX,MAAM,QAAQ,GAAG,sCAAsC,CAAA;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QACpB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAU,CAAC;aACnD,MAAM,CAAC,CAAC,IAAI,EAAqC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;YACnB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAA;YACnC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;YACvB,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAA;YAC3B,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAA;YACzB,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEJ,MAAM,GAAG,GAAG,EAAoD,CAAA;QAChE,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;YAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACb,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA;YACd,CAAC;YACD,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAChC,OAAO,IAAI;YACT,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC,CAAC;gBACE,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrC,EAAE,EAAE,IAAI;oBACR,QAAQ,EAAE,EAAE;oBACZ,IAAI;iBACL,CAAC,CAAC;aACJ,CAAA;IACP,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAA;IAC9B,CAAC;IACD,IAAI,2BAA2B;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAA;IAC7B,CAAC;IAED,IAAI,MAAM;QACR,OAAO;YACL;gBACE,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,IAAI,CAAC,YAAY;gBACvB,iBAAiB,EAAE,EAAE;aACtB;YACD;gBACE,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,IAAI,CAAC,2BAA2B;gBACtC,iBAAiB,EAAE;oBACjB,GAAG,EAAE,MAAM;oBACX,GAAG,EAAE,WAAW;iBACjB;aACF;SACF,CAAA;IACH,CAAC;CACF"}
@@ -1,4 +0,0 @@
1
- export declare function seqCoordToRowSpecificGlobalCoord({ row, position, }: {
2
- row: string;
3
- position: number;
4
- }): number;
@@ -1,19 +0,0 @@
1
- import { isBlank } from './util';
2
- export function seqCoordToRowSpecificGlobalCoord({ row, position, }) {
3
- let k = 0;
4
- let i = 0;
5
- // Find the position-th non-gap character
6
- while (i < row.length) {
7
- if (!isBlank(row[i])) {
8
- if (k === position) {
9
- return i;
10
- }
11
- k++;
12
- }
13
- i++;
14
- }
15
- // If position is 0 and we didn't find any non-gap character, return 0
16
- // Otherwise return i (which is row.length at this point)
17
- return position === 0 ? 0 : i;
18
- }
19
- //# sourceMappingURL=seqCoordToRowSpecificGlobalCoord.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"seqCoordToRowSpecificGlobalCoord.js","sourceRoot":"","sources":["../src/seqCoordToRowSpecificGlobalCoord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,MAAM,UAAU,gCAAgC,CAAC,EAC/C,GAAG,EACH,QAAQ,GAIT;IACC,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,yCAAyC;IACzC,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACnB,OAAO,CAAC,CAAA;YACV,CAAC;YACD,CAAC,EAAE,CAAA;QACL,CAAC;QACD,CAAC,EAAE,CAAA;IACL,CAAC;IACD,sEAAsE;IACtE,yDAAyD;IACzD,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/B,CAAC"}
@@ -1 +0,0 @@
1
- export {};