@datagrok-libraries/bio 5.39.29 → 5.40.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.
- package/CHANGELOG.md +26 -0
- package/package.json +2 -2
- package/src/monomer-works/monomer-utils.d.ts.map +1 -1
- package/src/monomer-works/monomer-utils.js +34 -31
- package/src/monomer-works/monomer-utils.js.map +1 -1
- package/src/monomer-works/to-atomic-level.d.ts +4 -4
- package/src/monomer-works/to-atomic-level.d.ts.map +1 -1
- package/src/monomer-works/to-atomic-level.js +37 -38
- package/src/monomer-works/to-atomic-level.js.map +1 -1
- package/src/utils/cell-renderer-monomer-placer.d.ts +2 -4
- package/src/utils/cell-renderer-monomer-placer.d.ts.map +1 -1
- package/src/utils/cell-renderer-monomer-placer.js +13 -16
- package/src/utils/cell-renderer-monomer-placer.js.map +1 -1
- package/src/utils/cell-renderer.d.ts +2 -3
- package/src/utils/cell-renderer.d.ts.map +1 -1
- package/src/utils/cell-renderer.js +9 -8
- package/src/utils/cell-renderer.js.map +1 -1
- package/src/utils/fasta-handler.js +2 -2
- package/src/utils/fasta-handler.js.map +1 -1
- package/src/utils/macromolecule/alignment.d.ts +4 -3
- package/src/utils/macromolecule/alignment.d.ts.map +1 -1
- package/src/utils/macromolecule/alignment.js +25 -18
- package/src/utils/macromolecule/alignment.js.map +1 -1
- package/src/utils/macromolecule/consts.d.ts +2 -0
- package/src/utils/macromolecule/consts.d.ts.map +1 -1
- package/src/utils/macromolecule/consts.js +2 -0
- package/src/utils/macromolecule/consts.js.map +1 -1
- package/src/utils/macromolecule/index.d.ts +1 -1
- package/src/utils/macromolecule/index.d.ts.map +1 -1
- package/src/utils/macromolecule/index.js +1 -1
- package/src/utils/macromolecule/index.js.map +1 -1
- package/src/utils/macromolecule/scoring.d.ts +1 -1
- package/src/utils/macromolecule/scoring.d.ts.map +1 -1
- package/src/utils/macromolecule/scoring.js +7 -5
- package/src/utils/macromolecule/scoring.js.map +1 -1
- package/src/utils/macromolecule/types.d.ts +14 -2
- package/src/utils/macromolecule/types.d.ts.map +1 -1
- package/src/utils/macromolecule/types.js +2 -0
- package/src/utils/macromolecule/types.js.map +1 -1
- package/src/utils/macromolecule/utils.d.ts +30 -12
- package/src/utils/macromolecule/utils.d.ts.map +1 -1
- package/src/utils/macromolecule/utils.js +81 -40
- package/src/utils/macromolecule/utils.js.map +1 -1
- package/src/utils/{units-handler.d.ts → seq-handler.d.ts} +45 -24
- package/src/utils/seq-handler.d.ts.map +1 -0
- package/src/utils/{units-handler.js → seq-handler.js} +293 -211
- package/src/utils/seq-handler.js.map +1 -0
- package/src/utils/splitter.d.ts.map +1 -1
- package/src/utils/splitter.js +8 -11
- package/src/utils/splitter.js.map +1 -1
- package/src/utils/units-handler.d.ts.map +0 -1
- package/src/utils/units-handler.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"AAOA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAW,EAAE,CAAC;AA2BrC,8BAA8B;AAC9B,MAAM,OAAO,aAAa;IAKxB,YAAY,IAAY,EAAE,QAAqB,EAAE,MAAc;QAC7D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,yCAAyC;AACzC,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IAKjD,YAAY,SAAwB,EAAE,IAAkB,EAAE,UAAkB;QAC1E,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -1,22 +1,44 @@
|
|
|
1
1
|
import * as DG from 'datagrok-api/dg';
|
|
2
|
-
import { CandidateType, MonomerFreqs, SeqColStats, SplitterFunc } from './types';
|
|
2
|
+
import { CandidateType, ISeqSplitted, MonomerFreqs, SeqColStats, SeqSplittedBase, SplitterFunc } from './types';
|
|
3
3
|
import { ALPHABET } from './consts';
|
|
4
4
|
import { SeqPalette } from '../../seq-palettes';
|
|
5
|
+
export declare class StringListSeqSplitted implements ISeqSplitted {
|
|
6
|
+
private readonly mList;
|
|
7
|
+
private readonly gapOriginalMonomer;
|
|
8
|
+
get length(): number;
|
|
9
|
+
get canonicals(): SeqSplittedBase;
|
|
10
|
+
get originals(): SeqSplittedBase;
|
|
11
|
+
isGap(posIdx: number): boolean;
|
|
12
|
+
getCanonical(posIdx: number): string;
|
|
13
|
+
getOriginal(posIdx: number): string;
|
|
14
|
+
constructor(mList: SeqSplittedBase, gapOriginalMonomer: string);
|
|
15
|
+
}
|
|
16
|
+
export declare class FastaSimpleSeqSplitted implements ISeqSplitted {
|
|
17
|
+
private readonly seqS;
|
|
18
|
+
get length(): number;
|
|
19
|
+
get canonicals(): string;
|
|
20
|
+
get originals(): string;
|
|
21
|
+
isGap(posIdx: number): boolean;
|
|
22
|
+
getCanonical(posIdx: number): string;
|
|
23
|
+
getOriginal(posIdx: number): string;
|
|
24
|
+
constructor(seqS: string);
|
|
25
|
+
}
|
|
5
26
|
/** Stats of sequences with specified splitter func, returns { freq, sameLength }.
|
|
6
27
|
* @param {DG.Column} seqCol
|
|
7
28
|
* @param {number} minLength
|
|
8
29
|
* @param {SplitterFunc} splitter
|
|
9
30
|
* @return { SeqColStats }, sameLength: boolean } stats of column sequences
|
|
10
31
|
*/
|
|
11
|
-
export declare function getStatsForCol(seqCol: DG.Column
|
|
32
|
+
export declare function getStatsForCol(seqCol: DG.Column<string>, minLength: number, splitter: SplitterFunc): SeqColStats;
|
|
12
33
|
/** Split sequence for single character monomers, square brackets multichar monomer names or gap symbol.
|
|
13
|
-
* @param
|
|
34
|
+
* @param seq object with sequence
|
|
35
|
+
* @param getMonomer Source of the {@link seq} string
|
|
14
36
|
* @return {string[]} array of monomers
|
|
15
37
|
*/
|
|
16
|
-
export declare
|
|
17
|
-
export declare
|
|
38
|
+
export declare const splitterAsFasta: SplitterFunc;
|
|
39
|
+
export declare const splitterAsFastaSimple: SplitterFunc;
|
|
18
40
|
/** Gets method to split sequence by separator
|
|
19
|
-
* @param
|
|
41
|
+
* @param separator Monomer separator
|
|
20
42
|
* @param limit
|
|
21
43
|
* @return {SplitterFunc}
|
|
22
44
|
*/
|
|
@@ -24,9 +46,10 @@ export declare function getSplitterWithSeparator(separator: string, limit?: numb
|
|
|
24
46
|
/** Splits Helm string to monomers, but does not replace monomer names to other notation (e.g. for RNA).
|
|
25
47
|
* Only for linear polymers, does not split RNA for ribose and phosphate monomers.
|
|
26
48
|
* @param {string} seq Source string of HELM notation
|
|
49
|
+
* @param {ISeqSource} src Source of the {@link seq} string
|
|
27
50
|
* @return {string[]}
|
|
28
51
|
*/
|
|
29
|
-
export declare
|
|
52
|
+
export declare const splitterAsHelm: SplitterFunc;
|
|
30
53
|
/** Func type to shorten a {@link monomerLabel} with length {@link limit} */
|
|
31
54
|
export type MonomerToShortFunc = (monomerLabel: string, limit: number) => string;
|
|
32
55
|
/** Get splitter method to split sequences to monomers (required for MacromoleculeDifferenceCellRenderer)
|
|
@@ -36,11 +59,6 @@ export type MonomerToShortFunc = (monomerLabel: string, limit: number) => string
|
|
|
36
59
|
* @return {SplitterFunc}
|
|
37
60
|
*/
|
|
38
61
|
export declare function getSplitter(units: string, separator: string, limit?: number | undefined): SplitterFunc;
|
|
39
|
-
/** Generate splitter function for sequence column
|
|
40
|
-
* @param {DG.Column} col
|
|
41
|
-
* @return {SplitterFunc} Splitter function
|
|
42
|
-
*/
|
|
43
|
-
export declare function getSplitterForColumn(col: DG.Column): SplitterFunc;
|
|
44
62
|
/** Convert long monomer names to short ones */
|
|
45
63
|
export declare function monomerToShort(amino: string, maxLengthOfMonomer: number): string;
|
|
46
64
|
/** */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,58 @@
|
|
|
1
1
|
import * as DG from 'datagrok-api/dg';
|
|
2
2
|
import wu from 'wu';
|
|
3
|
-
import { CandidateSimType } from './types';
|
|
3
|
+
import { CandidateSimType, GAP_SYMBOL } from './types';
|
|
4
4
|
import { Alphabets, candidateAlphabets, monomerRe, NOTATION } from './consts';
|
|
5
|
-
import {
|
|
5
|
+
import { GapOriginals, SeqHandler } from '../seq-handler';
|
|
6
6
|
import { Vector } from '@datagrok-libraries/utils/src/type-declarations';
|
|
7
7
|
import { vectorDotProduct, vectorLength } from '@datagrok-libraries/utils/src/vector-operations';
|
|
8
8
|
import { AminoacidsPalettes } from '../../aminoacids';
|
|
9
9
|
import { NucleotidesPalettes } from '../../nucleotides';
|
|
10
10
|
import { UnknownSeqPalettes } from '../../unknown';
|
|
11
|
+
export class StringListSeqSplitted {
|
|
12
|
+
get length() { return this.mList.length; }
|
|
13
|
+
get canonicals() { return this.mList; }
|
|
14
|
+
get originals() { return this.mList; }
|
|
15
|
+
isGap(posIdx) {
|
|
16
|
+
return this.getOriginal(posIdx) === this.gapOriginalMonomer;
|
|
17
|
+
}
|
|
18
|
+
getCanonical(posIdx) {
|
|
19
|
+
if (this.length <= posIdx)
|
|
20
|
+
throw new Error('Index out of bounds');
|
|
21
|
+
return this.mList[posIdx];
|
|
22
|
+
}
|
|
23
|
+
getOriginal(posIdx) {
|
|
24
|
+
if (this.length <= posIdx)
|
|
25
|
+
throw new Error('Index out of bounds');
|
|
26
|
+
return this.mList[posIdx];
|
|
27
|
+
}
|
|
28
|
+
constructor(mList, gapOriginalMonomer) {
|
|
29
|
+
this.mList = mList;
|
|
30
|
+
this.gapOriginalMonomer = gapOriginalMonomer;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export class FastaSimpleSeqSplitted {
|
|
34
|
+
get length() { return this.seqS.length; }
|
|
35
|
+
get canonicals() { return this.seqS; }
|
|
36
|
+
get originals() { return this.seqS; }
|
|
37
|
+
isGap(posIdx) {
|
|
38
|
+
return this.getOriginal(posIdx) === GapOriginals[NOTATION.FASTA];
|
|
39
|
+
}
|
|
40
|
+
getCanonical(posIdx) {
|
|
41
|
+
if (this.length <= posIdx)
|
|
42
|
+
throw new Error('Index out of bounds');
|
|
43
|
+
if (this.isGap(posIdx))
|
|
44
|
+
return GAP_SYMBOL;
|
|
45
|
+
return this.seqS[posIdx];
|
|
46
|
+
}
|
|
47
|
+
getOriginal(posIdx) {
|
|
48
|
+
if (this.length <= posIdx)
|
|
49
|
+
throw new Error('Index out of bounds');
|
|
50
|
+
return this.seqS[posIdx];
|
|
51
|
+
}
|
|
52
|
+
constructor(seqS) {
|
|
53
|
+
this.seqS = seqS;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
11
56
|
/** Stats of sequences with specified splitter func, returns { freq, sameLength }.
|
|
12
57
|
* @param {DG.Column} seqCol
|
|
13
58
|
* @param {number} minLength
|
|
@@ -16,8 +61,8 @@ import { UnknownSeqPalettes } from '../../unknown';
|
|
|
16
61
|
*/
|
|
17
62
|
export function getStatsForCol(seqCol, minLength, splitter) {
|
|
18
63
|
const cats = seqCol.categories;
|
|
19
|
-
const splitted = wu(seqCol.getRawData())
|
|
20
|
-
.map((catI) => splitter(
|
|
64
|
+
const splitted = wu.enumerate(seqCol.getRawData())
|
|
65
|
+
.map(([catI, rowIdx]) => splitter(cats[catI]));
|
|
21
66
|
return getStats(splitted, minLength);
|
|
22
67
|
}
|
|
23
68
|
function getStats(splitted, minLength) {
|
|
@@ -30,44 +75,48 @@ function getStats(splitted, minLength) {
|
|
|
30
75
|
else if (mSeq.length !== firstLength)
|
|
31
76
|
sameLength = false;
|
|
32
77
|
if (mSeq.length >= minLength) {
|
|
33
|
-
for (const
|
|
34
|
-
if (!(
|
|
35
|
-
freq[
|
|
36
|
-
freq[
|
|
78
|
+
for (const cm of mSeq.canonicals) {
|
|
79
|
+
if (!(cm in freq))
|
|
80
|
+
freq[cm] = 0;
|
|
81
|
+
freq[cm] += 1;
|
|
37
82
|
}
|
|
38
83
|
}
|
|
39
84
|
}
|
|
40
85
|
return { freq: freq, sameLength: sameLength };
|
|
41
86
|
}
|
|
42
87
|
/** Split sequence for single character monomers, square brackets multichar monomer names or gap symbol.
|
|
43
|
-
* @param
|
|
88
|
+
* @param seq object with sequence
|
|
89
|
+
* @param getMonomer Source of the {@link seq} string
|
|
44
90
|
* @return {string[]} array of monomers
|
|
45
91
|
*/
|
|
46
|
-
export
|
|
47
|
-
|
|
48
|
-
// if (monomer.startsWith('[') && monomer.endsWith(']'))
|
|
49
|
-
// return monomer.slice(1, -1);
|
|
50
|
-
// else if (monomer === '-')
|
|
51
|
-
// return '';
|
|
52
|
-
// else
|
|
53
|
-
// return monomer;
|
|
54
|
-
// });
|
|
55
|
-
return wu(seq.toString().matchAll(monomerRe))
|
|
92
|
+
export const splitterAsFasta = (seq) => {
|
|
93
|
+
const mmList = wu(seq.toString().matchAll(monomerRe))
|
|
56
94
|
.map((ma) => {
|
|
57
95
|
return ma[2] ?? ma[1]; // preserve '-' as gap symbol for compatibility with simpleAsFastaSimple
|
|
58
96
|
}).toArray();
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
97
|
+
return new StringListSeqSplitted(mmList, GapOriginals[NOTATION.FASTA]);
|
|
98
|
+
// return new Proxy(splittedList as object, {
|
|
99
|
+
// get(target: string[], p: string | symbol, receiver: any): any {
|
|
100
|
+
// const k = 11;
|
|
101
|
+
// }
|
|
102
|
+
// }) as ISeqSplitted;
|
|
103
|
+
};
|
|
104
|
+
export const splitterAsFastaSimple = (seq) => {
|
|
105
|
+
return !!seq ? new FastaSimpleSeqSplitted(seq) : new StringListSeqSplitted([], GapOriginals[NOTATION.FASTA]);
|
|
106
|
+
};
|
|
63
107
|
/** Gets method to split sequence by separator
|
|
64
|
-
* @param
|
|
108
|
+
* @param separator Monomer separator
|
|
65
109
|
* @param limit
|
|
66
110
|
* @return {SplitterFunc}
|
|
67
111
|
*/
|
|
68
112
|
export function getSplitterWithSeparator(separator, limit = undefined) {
|
|
69
113
|
return (seq) => {
|
|
70
|
-
|
|
114
|
+
if (!seq)
|
|
115
|
+
return new StringListSeqSplitted([], GapOriginals[NOTATION.SEPARATOR]);
|
|
116
|
+
else {
|
|
117
|
+
const mmList = seq.replaceAll('\"-\"', '').replaceAll('\'-\'', '').split(separator, limit);
|
|
118
|
+
return new StringListSeqSplitted(mmList, GapOriginals[NOTATION.SEPARATOR]);
|
|
119
|
+
}
|
|
71
120
|
};
|
|
72
121
|
}
|
|
73
122
|
const helmRe = /(PEPTIDE1|DNA1|RNA1)\{([^}]+)}/g;
|
|
@@ -75,9 +124,10 @@ const helmPp1Re = /\[([^\[\]]+)]/g;
|
|
|
75
124
|
/** Splits Helm string to monomers, but does not replace monomer names to other notation (e.g. for RNA).
|
|
76
125
|
* Only for linear polymers, does not split RNA for ribose and phosphate monomers.
|
|
77
126
|
* @param {string} seq Source string of HELM notation
|
|
127
|
+
* @param {ISeqSource} src Source of the {@link seq} string
|
|
78
128
|
* @return {string[]}
|
|
79
129
|
*/
|
|
80
|
-
export
|
|
130
|
+
export const splitterAsHelm = (seq) => {
|
|
81
131
|
helmRe.lastIndex = 0;
|
|
82
132
|
const ea = helmRe.exec(seq.toString());
|
|
83
133
|
const inSeq = ea ? ea[2] : null;
|
|
@@ -90,8 +140,8 @@ export function splitterAsHelm(seq) {
|
|
|
90
140
|
return mm;
|
|
91
141
|
};
|
|
92
142
|
const mmList = inSeq ? inSeq.split('.') : [];
|
|
93
|
-
return mmList.map(mmPostProcess);
|
|
94
|
-
}
|
|
143
|
+
return new StringListSeqSplitted(mmList.map(mmPostProcess), GapOriginals[NOTATION.HELM]);
|
|
144
|
+
};
|
|
95
145
|
/** Get splitter method to split sequences to monomers (required for MacromoleculeDifferenceCellRenderer)
|
|
96
146
|
* @param {string} units
|
|
97
147
|
* @param {string} separator
|
|
@@ -109,14 +159,6 @@ export function getSplitter(units, separator, limit = undefined) {
|
|
|
109
159
|
throw new Error(`Unexpected units ${units} .`);
|
|
110
160
|
// TODO: Splitter for HELM
|
|
111
161
|
}
|
|
112
|
-
/** Generate splitter function for sequence column
|
|
113
|
-
* @param {DG.Column} col
|
|
114
|
-
* @return {SplitterFunc} Splitter function
|
|
115
|
-
*/
|
|
116
|
-
export function getSplitterForColumn(col) {
|
|
117
|
-
const uh = UnitsHandler.getOrCreate(col);
|
|
118
|
-
return uh.getSplitter();
|
|
119
|
-
}
|
|
120
162
|
const longMonomerPartRe = /([^\W_]+)/g;
|
|
121
163
|
/** Convert long monomer names to short ones */
|
|
122
164
|
export function monomerToShort(amino, maxLengthOfMonomer) {
|
|
@@ -173,9 +215,8 @@ export function detectAlphabet(freq, candidates, gapSymbol = '-') {
|
|
|
173
215
|
const sim = candidatesSims.find((cs) => cs.similarity === maxSim);
|
|
174
216
|
alphabetName = sim.name;
|
|
175
217
|
}
|
|
176
|
-
else
|
|
218
|
+
else
|
|
177
219
|
alphabetName = "UN" /* ALPHABET.UN */;
|
|
178
|
-
}
|
|
179
220
|
return alphabetName;
|
|
180
221
|
}
|
|
181
222
|
/** Selects a suitable palette based on column data
|
|
@@ -186,8 +227,8 @@ export function detectAlphabet(freq, candidates, gapSymbol = '-') {
|
|
|
186
227
|
export function pickUpPalette(seqCol, minLength = 5) {
|
|
187
228
|
let alphabet;
|
|
188
229
|
if (seqCol.semType == DG.SEMTYPE.MACROMOLECULE) {
|
|
189
|
-
const
|
|
190
|
-
alphabet =
|
|
230
|
+
const sh = SeqHandler.forColumn(seqCol);
|
|
231
|
+
alphabet = sh.alphabet;
|
|
191
232
|
}
|
|
192
233
|
else {
|
|
193
234
|
const stats = getStatsForCol(seqCol, minLength, splitterAsFasta);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EACL,gBAAgB,EACD,UAAU,EAK1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAW,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAC;AACtF,OAAO,EAAC,YAAY,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAC,MAAM,EAAC,MAAM,iDAAiD,CAAC;AACvE,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAC,MAAM,iDAAiD,CAAC;AAE/F,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAEjD,MAAM,OAAO,qBAAqB;IAChC,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAElD,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvC,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEtC,KAAK,CAAC,MAAc;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC;IAC9D,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM;YACvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,MAAc;QACxB,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM;YACvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,YACmB,KAAsB,EACtB,kBAA0B;QAD1B,UAAK,GAAL,KAAK,CAAiB;QACtB,uBAAkB,GAAlB,kBAAkB,CAAQ;IAC1C,CAAC;CACL;AAED,MAAM,OAAO,sBAAsB;IACjC,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjD,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtC,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAErC,KAAK,CAAC,MAAc;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM;YACvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACpB,OAAO,UAAU,CAAC;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,MAAc;QACxB,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM;YACvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,YACmB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAC5B,CAAC;CACL;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAyB,EAAE,SAAiB,EAAE,QAAsB;IACjG,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;IAC/B,MAAM,QAAQ,GAA2B,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;SACvE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,QAAgC,EAAE,SAAiB;IACnE,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,WAAW,GAAG,IAAI,CAAC;IAEvB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;QAC3B,IAAI,WAAW,IAAI,IAAI;YACrB,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;aACvB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;YAClC,UAAU,GAAG,KAAK,CAAC;QAErB,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE;YAC5B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE;gBAChC,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;oBACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;aACf;SACF;KACF;IACD,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAiB,CAAC,GAAW,EAAgB,EAAE;IACzE,MAAM,MAAM,GAAG,EAAE,CAAmB,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACpE,GAAG,CAAC,CAAC,EAAoB,EAAE,EAAE;QAC5B,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,wEAAwE;IACjG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAEf,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAGvE,6CAA6C;IAC7C,oEAAoE;IACpE,oBAAoB;IACpB,MAAM;IACN,sBAAsB;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAiB,CAAC,GAAW,EAAgB,EAAE;IAC/E,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/G,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB,EAAE,QAA4B,SAAS;IAC/F,OAAO,CAAC,GAAW,EAAE,EAAE;QACrB,IAAI,CAAC,GAAG;YACN,OAAO,IAAI,qBAAqB,CAAC,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;aACpE;YACH,MAAM,MAAM,GAAa,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACrG,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;SAC5E;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAW,iCAAiC,CAAC;AACzD,MAAM,SAAS,GAAW,gBAAgB,CAAC;AAG3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiB,CAAC,GAAQ,EAAgB,EAAE;IACrE,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,MAAM,EAAE,GAA2B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/C,MAAM,aAAa,GAAG,CAAC,EAAU,EAAU,EAAE;QAC3C,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;YAC1B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;;YAEf,OAAO,EAAE,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,MAAM,GAAa,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3F,CAAC,CAAC;AAKF;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,SAAiB,EAAE,QAA4B,SAAS;IACjG,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChD,OAAO,eAAe,CAAC;SACpB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;QACzD,OAAO,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SAC/C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpD,OAAO,cAAc,CAAC;;QAEtB,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,IAAI,CAAC,CAAC;IAEjD,0BAA0B;AAC5B,CAAC;AAED,MAAM,iBAAiB,GAAW,YAAY,CAAC;AAE/C,+CAA+C;AAC/C,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,kBAA0B;IACtE,IAAI,KAAK,CAAC,MAAM,IAAI,kBAAkB;QACpC,OAAO,KAAK,CAAC;IACf,+FAA+F;IAC/F,MAAM,eAAe,GAA4B,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAChF,MAAM,WAAW,GAAY,KAAK,CAAC,MAAM,GAAG,kBAAkB,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACrG,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC/C,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3F,CAAC;AAED,MAAM;AACN,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,QAAQ,QAAQ,EAAE;QAClB;YACE,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7B;YACE,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7B;YACE,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;QACjC;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,IAAI,CAAC,CAAC;KACxD;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAkB,EAAE,QAAqB,EAAE,YAAoB,GAAG;IACtG,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEvB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzC;IACD,0FAA0F;IAC1F,MAAM,KAAK,GAAW,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,SAAS,GAAW,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,cAAc,CAAC,IAAkB,EAAE,UAA2B,EAAE,YAAoB,GAAG;IACrG,MAAM,cAAc,GAAuB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9D,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC/D,OAAO,IAAI,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAI,YAAoB,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAC3C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,MAAM,GAAG,CAAC,EAAE;QACd,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,KAAK,MAAM,CAAE,CAAC;QACnE,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC;KACzB;;QACC,YAAY,yBAAc,CAAC;IAC7B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,YAAoB,CAAC;IACpE,IAAI,QAAgB,CAAC;IACrB,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE;QAC9C,MAAM,EAAE,GAAe,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpD,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;KACxB;SAAM;QACL,MAAM,KAAK,GAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAC9E,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;KAC3D;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACvC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,QAAQ,WAAW,EAAE;QACrB;YACE,OAAO,kBAAkB,CAAC,UAAU,CAAC;QACvC,8BAAkB;QAClB;YACE,OAAO,mBAAmB,CAAC,YAAY,CAAC;QACxC,QAAQ;QACV;YACE,OAAO,kBAAkB,CAAC,KAAK,CAAC;KACjC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAgB;IAC3C,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACzE,IAAI,MAAM,GAAqB,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACzD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,CAAC,CAAC,IAAI,IAAI,CAAC;IACX,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;QACtC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as DG from 'datagrok-api/dg';
|
|
2
2
|
import { NOTATION } from './macromolecule';
|
|
3
|
-
import { ISeqSplitted, SeqColStats, SplitterFunc } from './macromolecule/types';
|
|
3
|
+
import { ISeqSplitted, SeqColStats, SplitterFunc, INotationProvider } from './macromolecule/types';
|
|
4
4
|
import { MmDistanceFunctionsNames } from '@datagrok-libraries/ml/src/macromolecule-distance-functions';
|
|
5
5
|
import { mmDistanceFunctionType } from '@datagrok-libraries/ml/src/macromolecule-distance-functions/types';
|
|
6
|
-
export declare const
|
|
7
|
-
/** Column's temp slot name for a
|
|
8
|
-
|
|
6
|
+
export declare const SeqTemps: {
|
|
7
|
+
/** Column's temp slot name for a SeqHandler object */
|
|
8
|
+
seqHandler: string;
|
|
9
|
+
notationProvider: string;
|
|
9
10
|
};
|
|
10
|
-
export declare const
|
|
11
|
+
export declare const GapOriginals: {
|
|
11
12
|
[units: string]: string;
|
|
12
13
|
};
|
|
13
14
|
export type ConvertFunc = (src: string) => string;
|
|
@@ -15,21 +16,25 @@ export type JoinerFunc = (src: ISeqSplitted) => string;
|
|
|
15
16
|
/** Class for handling notation units in Macromolecule columns and
|
|
16
17
|
* conversion of notation systems in Macromolecule columns
|
|
17
18
|
*/
|
|
18
|
-
export declare class
|
|
19
|
+
export declare class SeqHandler {
|
|
19
20
|
protected readonly _column: DG.Column;
|
|
21
|
+
protected readonly _columnVersion: number;
|
|
20
22
|
protected readonly _units: string;
|
|
21
23
|
protected readonly _notation: NOTATION;
|
|
22
|
-
protected readonly
|
|
24
|
+
protected readonly _defaultGapOriginal: string;
|
|
25
|
+
protected readonly notationProvider: INotationProvider | null;
|
|
23
26
|
private _splitter;
|
|
24
|
-
|
|
25
|
-
static
|
|
26
|
-
static
|
|
27
|
+
protected constructor(col: DG.Column<string>);
|
|
28
|
+
static setUnitsToFastaColumn(uh: SeqHandler): void;
|
|
29
|
+
static setUnitsToSeparatorColumn(uh: SeqHandler, separator?: string): void;
|
|
30
|
+
static setUnitsToHelmColumn(uh: SeqHandler): void;
|
|
27
31
|
/** From detectMacromolecule */
|
|
28
|
-
static setTags(uh:
|
|
32
|
+
static setTags(uh: SeqHandler): void;
|
|
29
33
|
protected get column(): DG.Column;
|
|
34
|
+
get length(): number;
|
|
30
35
|
get units(): string;
|
|
31
36
|
get notation(): NOTATION;
|
|
32
|
-
get
|
|
37
|
+
get defaultGapOriginal(): string;
|
|
33
38
|
get separator(): string | undefined;
|
|
34
39
|
get aligned(): string;
|
|
35
40
|
/** Alphabet name (upper case) */
|
|
@@ -37,9 +42,10 @@ export declare class UnitsHandler {
|
|
|
37
42
|
protected get helmCompatible(): string | undefined;
|
|
38
43
|
getAlphabetSize(): number;
|
|
39
44
|
getAlphabetIsMultichar(): boolean;
|
|
45
|
+
private cached;
|
|
40
46
|
private _splitted;
|
|
41
|
-
|
|
42
|
-
|
|
47
|
+
private columnVersion;
|
|
48
|
+
getSplitted(rowIdx: number): ISeqSplitted;
|
|
43
49
|
private _stats;
|
|
44
50
|
get stats(): SeqColStats;
|
|
45
51
|
private _maxLength;
|
|
@@ -54,7 +60,11 @@ export declare class UnitsHandler {
|
|
|
54
60
|
isPeptide(): boolean;
|
|
55
61
|
isMsa(): boolean;
|
|
56
62
|
isHelmCompatible(): boolean;
|
|
57
|
-
|
|
63
|
+
/** Checks {@link om} for being a gap
|
|
64
|
+
* @param {string} om Original monomer of sequence symbol
|
|
65
|
+
* @return {boolean}
|
|
66
|
+
*/
|
|
67
|
+
isGap(om: string): boolean;
|
|
58
68
|
/** Associate notation types with the corresponding units */
|
|
59
69
|
/**
|
|
60
70
|
* @return {NOTATION} Notation associated with the units type
|
|
@@ -75,7 +85,8 @@ export declare class UnitsHandler {
|
|
|
75
85
|
* @return {DG.Column}
|
|
76
86
|
*/
|
|
77
87
|
protected getNewColumn(tgtNotation: NOTATION, tgtSeparator?: string, colName?: string, data?: string[]): DG.Column<string>;
|
|
78
|
-
|
|
88
|
+
/** Creates a new column on data of {@link seqList} with the same tags */
|
|
89
|
+
getNewColumnFromList(name: string, seqList: string[]): DG.Column<string>;
|
|
79
90
|
/**
|
|
80
91
|
* Create a new empty column using templateCol as a template
|
|
81
92
|
*
|
|
@@ -102,7 +113,8 @@ export declare class UnitsHandler {
|
|
|
102
113
|
*/
|
|
103
114
|
static getNewColumnFromParams(len: number, name: string, units: string): DG.Column;
|
|
104
115
|
/** Gets function to split seq value to monomers */
|
|
105
|
-
getSplitter(limit?: number): SplitterFunc;
|
|
116
|
+
protected getSplitter(limit?: number): SplitterFunc;
|
|
117
|
+
split(seq: string): ISeqSplitted;
|
|
106
118
|
getDistanceFunctionName(): MmDistanceFunctionsNames;
|
|
107
119
|
getDistanceFunction(): mmDistanceFunctionType;
|
|
108
120
|
checkHelmCompatibility(): Promise<boolean>;
|
|
@@ -113,14 +125,14 @@ export declare class UnitsHandler {
|
|
|
113
125
|
/**
|
|
114
126
|
* Convert HELM string to FASTA/SEPARATOR
|
|
115
127
|
*
|
|
116
|
-
* @param {string}
|
|
128
|
+
* @param {string} srcSeq A string to be converted
|
|
117
129
|
* @param {string} tgtNotation Target notation: FASTA or SEPARATOR
|
|
118
130
|
* @param {string} tgtSeparator Optional target separator (for HELM ->
|
|
119
|
-
* @param {string | null}
|
|
131
|
+
* @param {string | null} tgtGapOriginal Optional target gap symbol
|
|
120
132
|
* SEPARATOR)
|
|
121
133
|
* @return {string} Converted string
|
|
122
134
|
*/
|
|
123
|
-
convertHelmToFastaSeparator(
|
|
135
|
+
convertHelmToFastaSeparator(srcSeq: string, tgtNotation: string, tgtSeparator?: string, tgtGapOriginal?: string): string;
|
|
124
136
|
/** Dispatcher method for notation conversion
|
|
125
137
|
*
|
|
126
138
|
* @param {NOTATION} tgtNotation Notation we want to convert to
|
|
@@ -135,10 +147,19 @@ export declare class UnitsHandler {
|
|
|
135
147
|
*/
|
|
136
148
|
getRegion(startIdx: number | null, endIdx: number | null, name: string): DG.Column<string>;
|
|
137
149
|
private _joiner?;
|
|
138
|
-
|
|
150
|
+
get joiner(): JoinerFunc;
|
|
151
|
+
getJoiner(opts?: {
|
|
152
|
+
notation: NOTATION;
|
|
153
|
+
separator?: string;
|
|
154
|
+
}): JoinerFunc;
|
|
139
155
|
getConverter(tgtUnits: NOTATION, tgtSeparator?: string | undefined): ConvertFunc;
|
|
140
|
-
protected constructor(col: DG.Column<string>);
|
|
141
156
|
/** Gets a column's UnitsHandler object from temp slot or creates a new and stores it to the temp slot. */
|
|
142
|
-
static
|
|
157
|
+
static forColumn(col: DG.Column<string>): SeqHandler;
|
|
158
|
+
private joinToFasta;
|
|
159
|
+
private convertToFasta;
|
|
160
|
+
private convertToSeparator;
|
|
161
|
+
private convertToHelm;
|
|
162
|
+
/** Splits Helm sequence adjusting nucleotides to single char symbols. (!) Removes lone phosphorus. */
|
|
163
|
+
private splitterAsHelmNucl;
|
|
143
164
|
}
|
|
144
|
-
//# sourceMappingURL=
|
|
165
|
+
//# sourceMappingURL=seq-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seq-handler.d.ts","sourceRoot":"","sources":["seq-handler.ts"],"names":[],"mappings":"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"}
|