msa-parsers 5.0.7 → 5.0.13
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.
- package/dist/gff/gffToInterPro.d.ts +0 -4
- package/dist/gff/gffToInterPro.js +0 -7
- package/dist/gff/gffToInterPro.js.map +1 -1
- package/dist/msa/A3mMSA.d.ts +2 -21
- package/dist/msa/A3mMSA.js +3 -67
- package/dist/msa/A3mMSA.js.map +1 -1
- package/dist/msa/BaseMSA.d.ts +19 -0
- package/dist/{src/msa/EmfMSA.js → msa/BaseMSA.js} +15 -32
- package/dist/msa/BaseMSA.js.map +1 -0
- package/dist/msa/ClustalMSA.d.ts +2 -8
- package/dist/msa/ClustalMSA.js +3 -28
- package/dist/msa/ClustalMSA.js.map +1 -1
- package/dist/msa/EmfMSA.d.ts +2 -9
- package/dist/msa/EmfMSA.js +3 -31
- package/dist/msa/EmfMSA.js.map +1 -1
- package/dist/msa/FastaMSA.d.ts +2 -10
- package/dist/msa/FastaMSA.js +3 -34
- package/dist/msa/FastaMSA.js.map +1 -1
- package/dist/msa/StockholmMSA.d.ts +2 -2
- package/dist/msa/StockholmMSA.js +18 -34
- package/dist/msa/StockholmMSA.js.map +1 -1
- package/package.json +7 -2
- package/src/gff/gffToInterPro.ts +0 -11
- package/src/msa/A3mMSA.ts +3 -76
- package/src/msa/BaseMSA.ts +49 -0
- package/src/msa/ClustalMSA.ts +3 -34
- package/src/msa/EmfMSA.ts +3 -38
- package/src/msa/FastaMSA.ts +3 -42
- package/src/msa/StockholmMSA.ts +18 -39
- package/dist/src/gff/gffToInterPro.d.ts +0 -20
- package/dist/src/gff/gffToInterPro.js +0 -83
- package/dist/src/gff/gffToInterPro.js.map +0 -1
- package/dist/src/gff/gffToInterPro.test.d.ts +0 -1
- package/dist/src/gff/gffToInterPro.test.js +0 -181
- package/dist/src/gff/gffToInterPro.test.js.map +0 -1
- package/dist/src/gff/index.d.ts +0 -3
- package/dist/src/gff/index.js +0 -4
- package/dist/src/gff/index.js.map +0 -1
- package/dist/src/gff/interProToGFF.d.ts +0 -9
- package/dist/src/gff/interProToGFF.js +0 -48
- package/dist/src/gff/interProToGFF.js.map +0 -1
- package/dist/src/gff/interProToGFF.test.d.ts +0 -1
- package/dist/src/gff/interProToGFF.test.js +0 -189
- package/dist/src/gff/interProToGFF.test.js.map +0 -1
- package/dist/src/gff/parseGFF.d.ts +0 -2
- package/dist/src/gff/parseGFF.js +0 -41
- package/dist/src/gff/parseGFF.js.map +0 -1
- package/dist/src/gff/parseGFF.test.d.ts +0 -1
- package/dist/src/gff/parseGFF.test.js +0 -92
- package/dist/src/gff/parseGFF.test.js.map +0 -1
- package/dist/src/index.d.ts +0 -5
- package/dist/src/index.js +0 -9
- package/dist/src/index.js.map +0 -1
- package/dist/src/msa/A3mMSA.d.ts +0 -33
- package/dist/src/msa/A3mMSA.js +0 -282
- package/dist/src/msa/A3mMSA.js.map +0 -1
- package/dist/src/msa/A3mMSA.test.d.ts +0 -1
- package/dist/src/msa/A3mMSA.test.js +0 -261
- package/dist/src/msa/A3mMSA.test.js.map +0 -1
- package/dist/src/msa/ClustalMSA.d.ts +0 -30
- package/dist/src/msa/ClustalMSA.js +0 -53
- package/dist/src/msa/ClustalMSA.js.map +0 -1
- package/dist/src/msa/EmfMSA.d.ts +0 -27
- package/dist/src/msa/EmfMSA.js.map +0 -1
- package/dist/src/msa/FastaMSA.d.ts +0 -20
- package/dist/src/msa/FastaMSA.js +0 -75
- package/dist/src/msa/FastaMSA.js.map +0 -1
- package/dist/src/msa/StockholmMSA.d.ts +0 -54
- package/dist/src/msa/StockholmMSA.js +0 -113
- package/dist/src/msa/StockholmMSA.js.map +0 -1
- package/dist/src/msa/index.d.ts +0 -18
- package/dist/src/msa/index.js +0 -34
- package/dist/src/msa/index.js.map +0 -1
- package/dist/src/msa/index.test.d.ts +0 -1
- package/dist/src/msa/index.test.js +0 -96
- package/dist/src/msa/index.test.js.map +0 -1
- package/dist/src/msa/parseNewick.d.ts +0 -60
- package/dist/src/msa/parseNewick.js +0 -105
- package/dist/src/msa/parseNewick.js.map +0 -1
- package/dist/src/msa/stockholmParser.d.ts +0 -22
- package/dist/src/msa/stockholmParser.js +0 -141
- package/dist/src/msa/stockholmParser.js.map +0 -1
- package/dist/src/msa/stockholmParser.test.d.ts +0 -1
- package/dist/src/msa/stockholmParser.test.js +0 -111
- package/dist/src/msa/stockholmParser.test.js.map +0 -1
- package/dist/src/types.d.ts +0 -66
- package/dist/src/types.js +0 -2
- package/dist/src/types.js.map +0 -1
- package/dist/src/util.d.ts +0 -2
- package/dist/src/util.js +0 -10
- package/dist/src/util.js.map +0 -1
|
@@ -10,10 +10,6 @@ import type { GFFRecord, InterProScanResponse, InterProScanResults } from '../ty
|
|
|
10
10
|
* - Attributes: Name (accession), signature_desc (name), Dbxref, etc.
|
|
11
11
|
*/
|
|
12
12
|
export declare function gffToInterProResults(gffRecords: GFFRecord[]): Record<string, InterProScanResults>;
|
|
13
|
-
/**
|
|
14
|
-
* Convert GFF string directly to InterProScan format
|
|
15
|
-
*/
|
|
16
|
-
export declare function parseGFFToInterPro(gffStr: string, parseGFFfn: (str: string) => GFFRecord[]): Record<string, InterProScanResults>;
|
|
17
13
|
/**
|
|
18
14
|
* Create a full InterProScanResponse from GFF records
|
|
19
15
|
*/
|
|
@@ -64,13 +64,6 @@ export function gffToInterProResults(gffRecords) {
|
|
|
64
64
|
}
|
|
65
65
|
return results;
|
|
66
66
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Convert GFF string directly to InterProScan format
|
|
69
|
-
*/
|
|
70
|
-
export function parseGFFToInterPro(gffStr, parseGFFfn) {
|
|
71
|
-
const records = parseGFFfn(gffStr);
|
|
72
|
-
return gffToInterProResults(records);
|
|
73
|
-
}
|
|
74
67
|
/**
|
|
75
68
|
* Create a full InterProScanResponse from GFF records
|
|
76
69
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gffToInterPro.js","sourceRoot":"","sources":["../../src/gff/gffToInterPro.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAuB;IAEvB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAA;IAEjD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAwC,EAAE,CAAA;IAEvD,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC;QAC1C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAG/B,CAAA;QACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAGtB,CAAA;QAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GACZ,MAAM,CAAC,IAAe;gBACtB,MAAM,CAAC,EAAa;gBACrB,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,EAAE,CAAA;YAClD,MAAM,IAAI,GACP,MAAM,CAAC,cAAyB;gBAChC,MAAM,CAAC,IAAe;gBACvB,SAAS,CAAA;YACX,MAAM,WAAW,GACd,MAAM,CAAC,aAAwB;gBAC/B,MAAM,CAAC,WAAsB;gBAC7B,MAAM,CAAC,IAAe;gBACvB,IAAI,CAAA;YAEN,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAA;YAC5D,CAAC;YAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACnD,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;YAC1D,CAAC;iBAAM,CAAC;gBACN,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE;oBAChC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;iBACzC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAA;QAClB,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,kBAAkB,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAE,CAAA;YACtC,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE;oBACT,KAAK,EAAE,IAAI;iBACZ;gBACD,SAAS;aACV,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,GAAG;YACf,OAAO;YACP,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;SACtB,CAAA;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"gffToInterPro.js","sourceRoot":"","sources":["../../src/gff/gffToInterPro.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAuB;IAEvB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAA;IAEjD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAwC,EAAE,CAAA;IAEvD,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC;QAC1C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAG/B,CAAA;QACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAGtB,CAAA;QAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GACZ,MAAM,CAAC,IAAe;gBACtB,MAAM,CAAC,EAAa;gBACrB,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,EAAE,CAAA;YAClD,MAAM,IAAI,GACP,MAAM,CAAC,cAAyB;gBAChC,MAAM,CAAC,IAAe;gBACvB,SAAS,CAAA;YACX,MAAM,WAAW,GACd,MAAM,CAAC,aAAwB;gBAC/B,MAAM,CAAC,WAAsB;gBAC7B,MAAM,CAAC,IAAe;gBACvB,IAAI,CAAA;YAEN,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAA;YAC5D,CAAC;YAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACnD,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;YAC1D,CAAC;iBAAM,CAAC;gBACN,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE;oBAChC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;iBACzC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAA;QAClB,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,kBAAkB,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAE,CAAA;YACtC,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE;oBACT,KAAK,EAAE,IAAI;iBACZ;gBACD,SAAS;aACV,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,GAAG;YACf,OAAO;YACP,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;SACtB,CAAA;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAuB;IAEvB,MAAM,UAAU,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAA;IACnD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;KACnC,CAAA;AACH,CAAC"}
|
package/dist/msa/A3mMSA.d.ts
CHANGED
|
@@ -1,33 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default class A3mMSA {
|
|
1
|
+
import BaseMSA from './BaseMSA.ts';
|
|
2
|
+
export default class A3mMSA extends BaseMSA {
|
|
3
3
|
private MSA;
|
|
4
4
|
private orderedNames;
|
|
5
5
|
constructor(text: string);
|
|
6
|
-
/**
|
|
7
|
-
* Detect if text is likely A3M format
|
|
8
|
-
*/
|
|
9
6
|
static sniff(text: string): boolean;
|
|
10
|
-
/**
|
|
11
|
-
* Expand A3M format to standard aligned format.
|
|
12
|
-
*
|
|
13
|
-
* In A3M, lowercase characters are insertions that implicitly introduce
|
|
14
|
-
* gaps in sequences that don't have an insert at that position.
|
|
15
|
-
* Gaps (-) following match columns in sequences without inserts align
|
|
16
|
-
* with lowercase inserts in other sequences.
|
|
17
|
-
*/
|
|
18
7
|
private expandA3M;
|
|
19
8
|
getMSA(): {
|
|
20
9
|
seqdata: Record<string, string>;
|
|
21
10
|
};
|
|
22
|
-
getRowData(): undefined;
|
|
23
11
|
getNames(): string[];
|
|
24
12
|
getRow(name: string): string;
|
|
25
13
|
getWidth(): number;
|
|
26
|
-
getStructures(): {};
|
|
27
|
-
get alignmentNames(): never[];
|
|
28
|
-
getHeader(): {};
|
|
29
|
-
getTree(): NodeWithIds;
|
|
30
|
-
get seqConsensus(): undefined;
|
|
31
|
-
get secondaryStructureConsensus(): undefined;
|
|
32
|
-
get tracks(): never[];
|
|
33
14
|
}
|
package/dist/msa/A3mMSA.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import BaseMSA from "./BaseMSA.js";
|
|
1
2
|
/**
|
|
2
3
|
* A3M Format Parser
|
|
3
4
|
*
|
|
@@ -19,7 +20,6 @@
|
|
|
19
20
|
*
|
|
20
21
|
* @see https://yanglab.qd.sdu.edu.cn/trRosetta/msa_format.html
|
|
21
22
|
*/
|
|
22
|
-
// Char code helpers for fast character classification
|
|
23
23
|
const CODE_A = 65; // 'A'
|
|
24
24
|
const CODE_Z = 90; // 'Z'
|
|
25
25
|
const CODE_a = 97; // 'a'
|
|
@@ -29,13 +29,13 @@ const CODE_DOT = 46; // '.'
|
|
|
29
29
|
function isLower(code) {
|
|
30
30
|
return code >= CODE_a && code <= CODE_z;
|
|
31
31
|
}
|
|
32
|
-
export default class A3mMSA {
|
|
32
|
+
export default class A3mMSA extends BaseMSA {
|
|
33
33
|
MSA;
|
|
34
34
|
orderedNames;
|
|
35
35
|
constructor(text) {
|
|
36
|
+
super();
|
|
36
37
|
const rawSeqs = [];
|
|
37
38
|
const names = [];
|
|
38
|
-
// First pass: parse sequences (like FASTA), preserving order
|
|
39
39
|
for (const entry of text.split('>')) {
|
|
40
40
|
if (!/\S/.test(entry)) {
|
|
41
41
|
continue;
|
|
@@ -55,9 +55,6 @@ export default class A3mMSA {
|
|
|
55
55
|
this.orderedNames = names;
|
|
56
56
|
this.MSA = { seqdata: this.expandA3M(rawSeqs, names) };
|
|
57
57
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Detect if text is likely A3M format
|
|
60
|
-
*/
|
|
61
58
|
static sniff(text) {
|
|
62
59
|
if (!text.startsWith('>')) {
|
|
63
60
|
return false;
|
|
@@ -79,8 +76,6 @@ export default class A3mMSA {
|
|
|
79
76
|
if (seqs.length < 2) {
|
|
80
77
|
return false;
|
|
81
78
|
}
|
|
82
|
-
// Check for lowercase and compute match column lengths in single pass per sequence
|
|
83
|
-
// In A3M, match columns = uppercase letters + dashes (deletions)
|
|
84
79
|
let hasLowercase = false;
|
|
85
80
|
let firstMatchLen = -1;
|
|
86
81
|
let sameMatchLength = true;
|
|
@@ -92,7 +87,6 @@ export default class A3mMSA {
|
|
|
92
87
|
hasLowercase = true;
|
|
93
88
|
}
|
|
94
89
|
else if ((code >= CODE_A && code <= CODE_Z) || code === CODE_DASH) {
|
|
95
|
-
// Uppercase letters and dashes are match columns
|
|
96
90
|
matchLen++;
|
|
97
91
|
}
|
|
98
92
|
}
|
|
@@ -107,21 +101,11 @@ export default class A3mMSA {
|
|
|
107
101
|
}
|
|
108
102
|
return hasLowercase && sameMatchLength;
|
|
109
103
|
}
|
|
110
|
-
/**
|
|
111
|
-
* Expand A3M format to standard aligned format.
|
|
112
|
-
*
|
|
113
|
-
* In A3M, lowercase characters are insertions that implicitly introduce
|
|
114
|
-
* gaps in sequences that don't have an insert at that position.
|
|
115
|
-
* Gaps (-) following match columns in sequences without inserts align
|
|
116
|
-
* with lowercase inserts in other sequences.
|
|
117
|
-
*/
|
|
118
104
|
expandA3M(rawSeqs, names) {
|
|
119
105
|
const numSeqs = names.length;
|
|
120
106
|
if (numSeqs === 0) {
|
|
121
107
|
return {};
|
|
122
108
|
}
|
|
123
|
-
// Parse sequences: extract match chars (uppercase only) and insert content
|
|
124
|
-
// For each sequence, track: matchChars, insertContent (after each match)
|
|
125
109
|
const matchChars = [];
|
|
126
110
|
const insertContent = [];
|
|
127
111
|
for (let seqIdx = 0; seqIdx < numSeqs; seqIdx++) {
|
|
@@ -132,10 +116,7 @@ export default class A3mMSA {
|
|
|
132
116
|
while (i < seq.length) {
|
|
133
117
|
const code = seq.charCodeAt(i);
|
|
134
118
|
if ((code >= CODE_A && code <= CODE_Z) || code === CODE_DASH) {
|
|
135
|
-
// Uppercase letter or dash - match column (dash = deletion)
|
|
136
119
|
matches.push(seq[i]);
|
|
137
|
-
// Collect following lowercase/dot characters as insert content
|
|
138
|
-
// Note: dash is NOT insert content, it's a match column
|
|
139
120
|
let ins = '';
|
|
140
121
|
let j = i + 1;
|
|
141
122
|
while (j < seq.length) {
|
|
@@ -152,17 +133,14 @@ export default class A3mMSA {
|
|
|
152
133
|
i = j;
|
|
153
134
|
}
|
|
154
135
|
else if (code === CODE_DOT) {
|
|
155
|
-
// Leading dot (gap aligned to insert) - skip
|
|
156
136
|
i++;
|
|
157
137
|
}
|
|
158
138
|
else if (isLower(code)) {
|
|
159
|
-
// Leading insert before first match
|
|
160
139
|
let ins = '';
|
|
161
140
|
while (i < seq.length && isLower(seq.charCodeAt(i))) {
|
|
162
141
|
ins += seq[i];
|
|
163
142
|
i++;
|
|
164
143
|
}
|
|
165
|
-
// Add empty match with this insert
|
|
166
144
|
matches.push('');
|
|
167
145
|
inserts.push(ins);
|
|
168
146
|
}
|
|
@@ -173,14 +151,11 @@ export default class A3mMSA {
|
|
|
173
151
|
matchChars.push(matches);
|
|
174
152
|
insertContent.push(inserts);
|
|
175
153
|
}
|
|
176
|
-
// Find number of match positions (should be same for all valid A3M)
|
|
177
154
|
const numPositions = Math.max(...matchChars.map(m => m.length), 0);
|
|
178
|
-
// Find max insert length at each position (only count lowercase, not gaps)
|
|
179
155
|
const maxInserts = new Array(numPositions).fill(0);
|
|
180
156
|
for (let seqIdx = 0; seqIdx < numSeqs; seqIdx++) {
|
|
181
157
|
const inserts = insertContent[seqIdx];
|
|
182
158
|
for (let pos = 0; pos < inserts.length; pos++) {
|
|
183
|
-
// Count only lowercase characters as actual inserts
|
|
184
159
|
let lcCount = 0;
|
|
185
160
|
for (const c of inserts[pos]) {
|
|
186
161
|
if (isLower(c.charCodeAt(0))) {
|
|
@@ -192,7 +167,6 @@ export default class A3mMSA {
|
|
|
192
167
|
}
|
|
193
168
|
}
|
|
194
169
|
}
|
|
195
|
-
// Build expanded sequences
|
|
196
170
|
const expanded = {};
|
|
197
171
|
for (let seqIdx = 0; seqIdx < numSeqs; seqIdx++) {
|
|
198
172
|
const matches = matchChars[seqIdx];
|
|
@@ -203,25 +177,20 @@ export default class A3mMSA {
|
|
|
203
177
|
if (pos < matches.length) {
|
|
204
178
|
const matchChar = matches[pos];
|
|
205
179
|
const insContent = inserts[pos] || '';
|
|
206
|
-
// Add match character (or gap if empty)
|
|
207
180
|
result.push(matchChar || '-');
|
|
208
|
-
// Process insert content
|
|
209
181
|
let lcContent = '';
|
|
210
182
|
for (const c of insContent) {
|
|
211
183
|
if (isLower(c.charCodeAt(0))) {
|
|
212
184
|
lcContent += c.toUpperCase();
|
|
213
185
|
}
|
|
214
186
|
}
|
|
215
|
-
// Add the insert content (uppercased)
|
|
216
187
|
result.push(lcContent);
|
|
217
|
-
// Pad with gaps to match max insert length
|
|
218
188
|
const padding = maxIns - lcContent.length;
|
|
219
189
|
if (padding > 0) {
|
|
220
190
|
result.push('.'.repeat(padding));
|
|
221
191
|
}
|
|
222
192
|
}
|
|
223
193
|
else {
|
|
224
|
-
// This sequence is shorter - add gaps
|
|
225
194
|
result.push('-');
|
|
226
195
|
if (maxIns > 0) {
|
|
227
196
|
result.push('.'.repeat(maxIns));
|
|
@@ -235,9 +204,6 @@ export default class A3mMSA {
|
|
|
235
204
|
getMSA() {
|
|
236
205
|
return this.MSA;
|
|
237
206
|
}
|
|
238
|
-
getRowData() {
|
|
239
|
-
return undefined;
|
|
240
|
-
}
|
|
241
207
|
getNames() {
|
|
242
208
|
return this.orderedNames;
|
|
243
209
|
}
|
|
@@ -248,35 +214,5 @@ export default class A3mMSA {
|
|
|
248
214
|
const name = Object.keys(this.MSA.seqdata)[0];
|
|
249
215
|
return name ? this.getRow(name).length : 0;
|
|
250
216
|
}
|
|
251
|
-
getStructures() {
|
|
252
|
-
return {};
|
|
253
|
-
}
|
|
254
|
-
get alignmentNames() {
|
|
255
|
-
return [];
|
|
256
|
-
}
|
|
257
|
-
getHeader() {
|
|
258
|
-
return {};
|
|
259
|
-
}
|
|
260
|
-
getTree() {
|
|
261
|
-
return {
|
|
262
|
-
id: 'root',
|
|
263
|
-
name: 'root',
|
|
264
|
-
noTree: true,
|
|
265
|
-
children: this.getNames().map(name => ({
|
|
266
|
-
id: name,
|
|
267
|
-
children: [],
|
|
268
|
-
name,
|
|
269
|
-
})),
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
get seqConsensus() {
|
|
273
|
-
return undefined;
|
|
274
|
-
}
|
|
275
|
-
get secondaryStructureConsensus() {
|
|
276
|
-
return undefined;
|
|
277
|
-
}
|
|
278
|
-
get tracks() {
|
|
279
|
-
return [];
|
|
280
|
-
}
|
|
281
217
|
}
|
|
282
218
|
//# sourceMappingURL=A3mMSA.js.map
|
package/dist/msa/A3mMSA.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A3mMSA.js","sourceRoot":"","sources":["../../src/msa/A3mMSA.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"A3mMSA.js","sourceRoot":"","sources":["../../src/msa/A3mMSA.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { NodeWithIds } from '../types.ts';
|
|
2
|
+
export default abstract class BaseMSA {
|
|
3
|
+
abstract getMSA(): unknown;
|
|
4
|
+
abstract getRow(name: string): string;
|
|
5
|
+
abstract getWidth(): number;
|
|
6
|
+
abstract getNames(): string[];
|
|
7
|
+
getTree(): NodeWithIds;
|
|
8
|
+
getRowData(_name: string): {
|
|
9
|
+
name?: string;
|
|
10
|
+
accession?: string;
|
|
11
|
+
dbxref?: string;
|
|
12
|
+
} | undefined;
|
|
13
|
+
getStructures(): Record<string, unknown>;
|
|
14
|
+
getHeader(): unknown;
|
|
15
|
+
get alignmentNames(): string[];
|
|
16
|
+
get seqConsensus(): string | undefined;
|
|
17
|
+
get secondaryStructureConsensus(): string | undefined;
|
|
18
|
+
get tracks(): unknown[];
|
|
19
|
+
}
|
|
@@ -1,33 +1,4 @@
|
|
|
1
|
-
|
|
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
|
-
}
|
|
1
|
+
export default class BaseMSA {
|
|
31
2
|
getTree() {
|
|
32
3
|
return {
|
|
33
4
|
id: 'root',
|
|
@@ -35,11 +6,23 @@ export default class EmfMSA {
|
|
|
35
6
|
noTree: true,
|
|
36
7
|
children: this.getNames().map(name => ({
|
|
37
8
|
id: name,
|
|
38
|
-
name,
|
|
39
9
|
children: [],
|
|
10
|
+
name,
|
|
40
11
|
})),
|
|
41
12
|
};
|
|
42
13
|
}
|
|
14
|
+
getRowData(_name) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
getStructures() {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
getHeader() {
|
|
21
|
+
return {};
|
|
22
|
+
}
|
|
23
|
+
get alignmentNames() {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
43
26
|
get seqConsensus() {
|
|
44
27
|
return undefined;
|
|
45
28
|
}
|
|
@@ -50,4 +33,4 @@ export default class EmfMSA {
|
|
|
50
33
|
return [];
|
|
51
34
|
}
|
|
52
35
|
}
|
|
53
|
-
//# sourceMappingURL=
|
|
36
|
+
//# sourceMappingURL=BaseMSA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseMSA.js","sourceRoot":"","sources":["../../src/msa/BaseMSA.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAgB,OAAO;IAMnC,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,UAAU,CAAC,KAAa;QACtB,OAAO,SAA+E,CAAA;IACxF,CAAC;IAED,aAAa;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IAED,SAAS;QACP,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,YAAY;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,2BAA2B;QAC7B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,EAAE,CAAA;IACX,CAAC;CACF"}
|
package/dist/msa/ClustalMSA.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default class ClustalMSA {
|
|
1
|
+
import BaseMSA from './BaseMSA.ts';
|
|
2
|
+
export default class ClustalMSA extends BaseMSA {
|
|
3
3
|
private MSA;
|
|
4
4
|
constructor(text: string);
|
|
5
5
|
getMSA(): {
|
|
@@ -15,16 +15,10 @@ export default class ClustalMSA {
|
|
|
15
15
|
};
|
|
16
16
|
getRow(name: string): string;
|
|
17
17
|
getWidth(): number;
|
|
18
|
-
getRowData(): undefined;
|
|
19
18
|
getHeader(): {
|
|
20
19
|
info: string;
|
|
21
20
|
version: string | undefined;
|
|
22
21
|
};
|
|
23
22
|
getNames(): string[];
|
|
24
|
-
getStructures(): {};
|
|
25
|
-
get alignmentNames(): never[];
|
|
26
|
-
getTree(): NodeWithIds;
|
|
27
23
|
get seqConsensus(): string;
|
|
28
|
-
get secondaryStructureConsensus(): undefined;
|
|
29
|
-
get tracks(): never[];
|
|
30
24
|
}
|
package/dist/msa/ClustalMSA.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { parse } from 'clustal-js';
|
|
2
|
-
|
|
2
|
+
import BaseMSA from "./BaseMSA.js";
|
|
3
|
+
export default class ClustalMSA extends BaseMSA {
|
|
3
4
|
MSA;
|
|
4
5
|
constructor(text) {
|
|
6
|
+
super();
|
|
5
7
|
this.MSA = parse(text);
|
|
6
8
|
}
|
|
7
9
|
getMSA() {
|
|
@@ -13,41 +15,14 @@ export default class ClustalMSA {
|
|
|
13
15
|
getWidth() {
|
|
14
16
|
return this.MSA.alns[0].seq.length;
|
|
15
17
|
}
|
|
16
|
-
getRowData() {
|
|
17
|
-
return undefined;
|
|
18
|
-
}
|
|
19
18
|
getHeader() {
|
|
20
19
|
return this.MSA.header;
|
|
21
20
|
}
|
|
22
21
|
getNames() {
|
|
23
22
|
return this.MSA.alns.map(aln => aln.id);
|
|
24
23
|
}
|
|
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
24
|
get seqConsensus() {
|
|
44
25
|
return this.MSA.consensus;
|
|
45
26
|
}
|
|
46
|
-
get secondaryStructureConsensus() {
|
|
47
|
-
return undefined;
|
|
48
|
-
}
|
|
49
|
-
get tracks() {
|
|
50
|
-
return [];
|
|
51
|
-
}
|
|
52
27
|
}
|
|
53
28
|
//# sourceMappingURL=ClustalMSA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClustalMSA.js","sourceRoot":"","sources":["../../src/msa/ClustalMSA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"ClustalMSA.js","sourceRoot":"","sources":["../../src/msa/ClustalMSA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IACrC,GAAG,CAA0B;IAErC,YAAY,IAAY;QACtB,KAAK,EAAE,CAAA;QACP,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,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,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAA;IAC3B,CAAC;CACF"}
|
package/dist/msa/EmfMSA.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default class EmfMSA {
|
|
1
|
+
import BaseMSA from './BaseMSA.ts';
|
|
2
|
+
export default class EmfMSA extends BaseMSA {
|
|
3
3
|
private MSA;
|
|
4
4
|
constructor(text: string);
|
|
5
5
|
getMSA(): {
|
|
@@ -15,13 +15,6 @@ export default class EmfMSA {
|
|
|
15
15
|
}[];
|
|
16
16
|
getRow(name: string): string;
|
|
17
17
|
getWidth(): number;
|
|
18
|
-
getRowData(): undefined;
|
|
19
18
|
getHeader(): string;
|
|
20
19
|
getNames(): string[];
|
|
21
|
-
getStructures(): {};
|
|
22
|
-
get alignmentNames(): never[];
|
|
23
|
-
getTree(): NodeWithIds;
|
|
24
|
-
get seqConsensus(): undefined;
|
|
25
|
-
get secondaryStructureConsensus(): undefined;
|
|
26
|
-
get tracks(): never[];
|
|
27
20
|
}
|
package/dist/msa/EmfMSA.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { parseEmfAln } from 'emf-js';
|
|
2
|
-
|
|
2
|
+
import BaseMSA from "./BaseMSA.js";
|
|
3
|
+
export default class EmfMSA extends BaseMSA {
|
|
3
4
|
MSA;
|
|
4
5
|
constructor(text) {
|
|
6
|
+
super();
|
|
5
7
|
this.MSA = parseEmfAln(text);
|
|
6
8
|
}
|
|
7
9
|
getMSA() {
|
|
@@ -13,41 +15,11 @@ export default class EmfMSA {
|
|
|
13
15
|
getWidth() {
|
|
14
16
|
return this.MSA[0].seq.length;
|
|
15
17
|
}
|
|
16
|
-
getRowData() {
|
|
17
|
-
return undefined;
|
|
18
|
-
}
|
|
19
18
|
getHeader() {
|
|
20
19
|
return '';
|
|
21
20
|
}
|
|
22
21
|
getNames() {
|
|
23
22
|
return this.MSA.map(aln => aln.protein);
|
|
24
23
|
}
|
|
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
24
|
}
|
|
53
25
|
//# sourceMappingURL=EmfMSA.js.map
|
package/dist/msa/EmfMSA.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmfMSA.js","sourceRoot":"","sources":["../../src/msa/EmfMSA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"EmfMSA.js","sourceRoot":"","sources":["../../src/msa/EmfMSA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEpC,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACjC,GAAG,CAAgC;IAE3C,YAAY,IAAY;QACtB,KAAK,EAAE,CAAA;QACP,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,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;CACF"}
|
package/dist/msa/FastaMSA.d.ts
CHANGED
|
@@ -1,20 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default class FastaMSA {
|
|
1
|
+
import BaseMSA from './BaseMSA.ts';
|
|
2
|
+
export default class FastaMSA extends BaseMSA {
|
|
3
3
|
private MSA;
|
|
4
4
|
constructor(text: string);
|
|
5
5
|
getMSA(): {
|
|
6
6
|
seqdata: Record<string, string>;
|
|
7
7
|
colonNormalized: Record<string, string>;
|
|
8
8
|
};
|
|
9
|
-
getRowData(): undefined;
|
|
10
9
|
getNames(): string[];
|
|
11
10
|
getRow(name: string): string;
|
|
12
11
|
getWidth(): number;
|
|
13
|
-
getStructures(): {};
|
|
14
|
-
get alignmentNames(): never[];
|
|
15
|
-
getHeader(): {};
|
|
16
|
-
getTree(): NodeWithIds;
|
|
17
|
-
get seqConsensus(): undefined;
|
|
18
|
-
get secondaryStructureConsensus(): undefined;
|
|
19
|
-
get tracks(): never[];
|
|
20
12
|
}
|
package/dist/msa/FastaMSA.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import BaseMSA from "./BaseMSA.js";
|
|
2
|
+
export default class FastaMSA extends BaseMSA {
|
|
2
3
|
MSA;
|
|
3
4
|
constructor(text) {
|
|
5
|
+
super();
|
|
4
6
|
const seqdata = {};
|
|
5
7
|
const colonNormalized = {};
|
|
6
8
|
for (const entry of text.split('>')) {
|
|
@@ -26,9 +28,6 @@ export default class FastaMSA {
|
|
|
26
28
|
getMSA() {
|
|
27
29
|
return this.MSA;
|
|
28
30
|
}
|
|
29
|
-
getRowData() {
|
|
30
|
-
return undefined;
|
|
31
|
-
}
|
|
32
31
|
getNames() {
|
|
33
32
|
return Object.keys(this.MSA.seqdata);
|
|
34
33
|
}
|
|
@@ -41,35 +40,5 @@ export default class FastaMSA {
|
|
|
41
40
|
const name = Object.keys(this.MSA.seqdata)[0];
|
|
42
41
|
return this.getRow(name).length;
|
|
43
42
|
}
|
|
44
|
-
getStructures() {
|
|
45
|
-
return {};
|
|
46
|
-
}
|
|
47
|
-
get alignmentNames() {
|
|
48
|
-
return [];
|
|
49
|
-
}
|
|
50
|
-
getHeader() {
|
|
51
|
-
return {};
|
|
52
|
-
}
|
|
53
|
-
getTree() {
|
|
54
|
-
return {
|
|
55
|
-
id: 'root',
|
|
56
|
-
name: 'root',
|
|
57
|
-
noTree: true,
|
|
58
|
-
children: this.getNames().map(name => ({
|
|
59
|
-
id: name,
|
|
60
|
-
children: [],
|
|
61
|
-
name,
|
|
62
|
-
})),
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
get seqConsensus() {
|
|
66
|
-
return undefined;
|
|
67
|
-
}
|
|
68
|
-
get secondaryStructureConsensus() {
|
|
69
|
-
return undefined;
|
|
70
|
-
}
|
|
71
|
-
get tracks() {
|
|
72
|
-
return [];
|
|
73
|
-
}
|
|
74
43
|
}
|
|
75
44
|
//# sourceMappingURL=FastaMSA.js.map
|
package/dist/msa/FastaMSA.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FastaMSA.js","sourceRoot":"","sources":["../../src/msa/FastaMSA.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FastaMSA.js","sourceRoot":"","sources":["../../src/msa/FastaMSA.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IACnC,GAAG,CAGV;IAED,YAAY,IAAY;QACtB,KAAK,EAAE,CAAA;QACP,MAAM,OAAO,GAA2B,EAAE,CAAA;QAC1C,MAAM,eAAe,GAA2B,EAAE,CAAA;QAClD,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;gBAC/D,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,eAAe,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,CAAA;IACzC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACtD,EAAE,CACH,CAAA;IACH,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;CACF"}
|