@datagrok/bio
Advanced tools
@@ -8,3 +8,3 @@ { | ||
}, | ||
"version": "2.0.19", | ||
"version": "2.0.20", | ||
"description": "Bio is a [package](https://datagrok.ai/help/develop/develop#packages) for the [Datagrok](https://datagrok.ai) platform", | ||
@@ -18,3 +18,3 @@ "repository": { | ||
"@biowasm/aioli": "^3.1.0", | ||
"@datagrok-libraries/bio": "^5.0.0", | ||
"@datagrok-libraries/bio": "^5.1.0", | ||
"@datagrok-libraries/chem-meta": "1.0.1", | ||
@@ -21,0 +21,0 @@ "@datagrok-libraries/ml": "^6.2.0", |
@@ -453,3 +453,3 @@ /* Do not change these import lines to match external modules in webpack configuration */ | ||
export function splitToMonomers(col: DG.Column<string>): void { | ||
if (!col.getTag(bio.UnitsHandler.TAGS.aligned).includes(C.MSA)) | ||
if (!col.getTag(bio.TAGS.aligned).includes(C.MSA)) | ||
return grok.shell.error('Splitting is applicable only for aligned sequences'); | ||
@@ -523,2 +523,3 @@ | ||
} | ||
//name: BioSubstructureFilter | ||
@@ -525,0 +526,0 @@ //description: Substructure filter for linear macromolecules |
import * as grok from 'datagrok-api/grok'; | ||
import * as ui from 'datagrok-api/ui'; | ||
import * as DG from 'datagrok-api/dg'; | ||
import {NOTATION} from '@datagrok-libraries/bio/src/utils/units-handler'; | ||
import * as bio from '@datagrok-libraries/bio'; | ||
import * as C from '../utils/constants'; | ||
@@ -33,3 +34,3 @@ import {getMonomericMols} from '../calculations/monomerLevelMols'; | ||
df.col('substr_helm')!.semType = col.semType; | ||
df.col('substr_helm')!.setTag(DG.TAGS.UNITS, NOTATION.HELM); | ||
df.col('substr_helm')!.setTag(DG.TAGS.UNITS, bio.NOTATION.HELM); | ||
const grid = df.plot.grid(); | ||
@@ -40,4 +41,4 @@ const separatorInput = ui.textInput('Separator', separator); | ||
const inputs = units === NOTATION.HELM ? ui.divV([editHelmLink]) : | ||
units === NOTATION.SEPARATOR ? ui.inputs([substructureInput, separatorInput]) : | ||
const inputs = units === bio.NOTATION.HELM ? ui.divV([editHelmLink]) : | ||
units === bio.NOTATION.SEPARATOR ? ui.inputs([substructureInput, separatorInput]) : | ||
ui.inputs([substructureInput]); | ||
@@ -53,4 +54,4 @@ | ||
.onOK(async () => { | ||
let substructure = units === NOTATION.HELM ? df.get('substr_helm', 0) : substructureInput.value; | ||
if (units === NOTATION.SEPARATOR && separatorInput.value !== separator && separatorInput.value !== '') | ||
let substructure = units === bio.NOTATION.HELM ? df.get('substr_helm', 0) : substructureInput.value; | ||
if (units === bio.NOTATION.SEPARATOR && separatorInput.value !== separator && separatorInput.value !== '') | ||
substructure = substructure.replaceAll(separatorInput.value, separator); | ||
@@ -62,3 +63,3 @@ const matchesColName = `Matches: ${substructure}`; | ||
let matches: BitSet; | ||
if (units === NOTATION.HELM) | ||
if (units === bio.NOTATION.HELM) | ||
matches = await helmSubstructureSearch(substructure, col); | ||
@@ -87,3 +88,3 @@ else | ||
.init((i) => i === col.length ? substructure : col.get(i)); | ||
helmColWithSubstructure.setTag(DG.TAGS.UNITS, NOTATION.HELM); | ||
helmColWithSubstructure.setTag(DG.TAGS.UNITS, bio.NOTATION.HELM); | ||
const monomericMolsCol = await getMonomericMols(helmColWithSubstructure, true); | ||
@@ -90,0 +91,0 @@ const molSubstructure = monomericMolsCol.get(col.length); |
@@ -1,10 +0,11 @@ | ||
import {after, before, category, test, expect, expectArray} from '@datagrok-libraries/utils/src/test'; | ||
import * as grok from 'datagrok-api/grok'; | ||
import * as ui from 'datagrok-api/ui'; | ||
import * as DG from 'datagrok-api/dg'; | ||
import * as bio from '@datagrok-libraries/bio'; | ||
import {after, before, category, test, expect, expectArray} from '@datagrok-libraries/utils/src/test'; | ||
import {checkInputColumn, multipleSequenceAlignmentAny} from '../package'; | ||
import {UNITS} from 'datagrok-api/dg'; | ||
import {ALPHABET, UnitsHandler} from '@datagrok-libraries/bio/src/utils/units-handler'; | ||
@@ -30,3 +31,3 @@ | ||
col.setTag(DG.TAGS.UNITS, 'fasta'); | ||
col.setTag(UnitsHandler.TAGS.alphabet, ALPHABET.DNA); | ||
col.setTag(bio.TAGS.alphabet, bio.ALPHABET.DNA); | ||
@@ -44,4 +45,4 @@ const [res, msg]: [boolean, string] = checkInputColumn( | ||
col.setTag(DG.TAGS.UNITS, 'helm'); | ||
col.setTag(UnitsHandler.TAGS.alphabetSize, '11'); | ||
col.setTag(UnitsHandler.TAGS.alphabetIsMultichar, 'true'); | ||
col.setTag(bio.TAGS.alphabetSize, '11'); | ||
col.setTag(bio.TAGS.alphabetIsMultichar, 'true'); | ||
@@ -59,5 +60,5 @@ const [res, msg]: [boolean, string] = checkInputColumn( | ||
col.setTag(DG.TAGS.UNITS, 'fasta'); | ||
col.setTag(UnitsHandler.TAGS.alphabet, 'UN'); | ||
col.setTag(UnitsHandler.TAGS.alphabetSize, '11'); | ||
col.setTag(UnitsHandler.TAGS.alphabetIsMultichar, 'true'); | ||
col.setTag(bio.TAGS.alphabet, 'UN'); | ||
col.setTag(bio.TAGS.alphabetSize, '11'); | ||
col.setTag(bio.TAGS.alphabetIsMultichar, 'true'); | ||
@@ -64,0 +65,0 @@ const [res, msg]: [boolean, string] = checkInputColumn( |
import * as DG from 'datagrok-api/dg'; | ||
import * as ui from 'datagrok-api/ui'; | ||
import * as grok from 'datagrok-api/grok'; | ||
import * as bio from '@datagrok-libraries/bio'; | ||
@@ -8,4 +9,2 @@ import {category, expect, expectArray, test} from '@datagrok-libraries/utils/src/test'; | ||
import {ConverterFunc} from './types'; | ||
import {NotationConverter} from '@datagrok-libraries/bio/src/utils/notation-converter'; | ||
import {NOTATION, UnitsHandler} from '@datagrok-libraries/bio/src/utils/units-handler'; | ||
@@ -137,8 +136,8 @@ // import {mmSemType} from '../const'; | ||
function converter(tgtNotation: NOTATION, tgtSeparator: string | null = null): ConverterFunc { | ||
if (tgtNotation === NOTATION.SEPARATOR && !tgtSeparator) | ||
function converter(tgtNotation: bio.NOTATION, tgtSeparator: string | null = null): ConverterFunc { | ||
if (tgtNotation === bio.NOTATION.SEPARATOR && !tgtSeparator) | ||
throw new Error(`Argument 'separator' is missed for notation '${tgtNotation.toString()}'.`); | ||
return function(srcCol: DG.Column): DG.Column { | ||
const converter = new NotationConverter(srcCol); | ||
const converter = new bio.NotationConverter(srcCol); | ||
const resCol = converter.convert(tgtNotation, tgtSeparator); | ||
@@ -162,3 +161,3 @@ expect(resCol.getTag('units'), tgtNotation); | ||
expectArray(resCol.toList(), tgtCol.toList()); | ||
const uh: UnitsHandler = new UnitsHandler(resCol); | ||
const uh: bio.UnitsHandler = new bio.UnitsHandler(resCol); | ||
} | ||
@@ -169,12 +168,12 @@ | ||
test('testFastaPtToSeparator', async () => { | ||
await _testConvert(Samples.fastaPt, converter(NOTATION.SEPARATOR, '-'), Samples.separatorPt); | ||
await _testConvert(Samples.fastaPt, converter(bio.NOTATION.SEPARATOR, '-'), Samples.separatorPt); | ||
}); | ||
test('testFastaDnaToSeparator', async () => { | ||
await _testConvert(Samples.fastaDna, converter(NOTATION.SEPARATOR, '/'), Samples.separatorDna); | ||
await _testConvert(Samples.fastaDna, converter(bio.NOTATION.SEPARATOR, '/'), Samples.separatorDna); | ||
}); | ||
test('testFastaRnaToSeparator', async () => { | ||
await _testConvert(Samples.fastaRna, converter(NOTATION.SEPARATOR, '*'), Samples.separatorRna); | ||
await _testConvert(Samples.fastaRna, converter(bio.NOTATION.SEPARATOR, '*'), Samples.separatorRna); | ||
}); | ||
test('testFastaGapsToSeparator', async () => { | ||
await _testConvert(Samples.fastaGaps, converter(NOTATION.SEPARATOR, '/'), Samples.separatorGaps); | ||
await _testConvert(Samples.fastaGaps, converter(bio.NOTATION.SEPARATOR, '/'), Samples.separatorGaps); | ||
}); | ||
@@ -184,12 +183,12 @@ | ||
test('testFastaPtToHelm', async () => { | ||
await _testConvert(Samples.fastaPt, converter(NOTATION.HELM), Samples.helmPt); | ||
await _testConvert(Samples.fastaPt, converter(bio.NOTATION.HELM), Samples.helmPt); | ||
}); | ||
test('testFastaDnaToHelm', async () => { | ||
await _testConvert(Samples.fastaDna, converter(NOTATION.HELM), Samples.helmDna); | ||
await _testConvert(Samples.fastaDna, converter(bio.NOTATION.HELM), Samples.helmDna); | ||
}); | ||
test('testFastaRnaToHelm', async () => { | ||
await _testConvert(Samples.fastaRna, converter(NOTATION.HELM), Samples.helmRna); | ||
await _testConvert(Samples.fastaRna, converter(bio.NOTATION.HELM), Samples.helmRna); | ||
}); | ||
test('testFastaGapsToHelm', async () => { | ||
await _testConvert(Samples.fastaGaps, converter(NOTATION.HELM), Samples.helmGaps); | ||
await _testConvert(Samples.fastaGaps, converter(bio.NOTATION.HELM), Samples.helmGaps); | ||
}); | ||
@@ -201,12 +200,12 @@ | ||
test('testSeparatorPtToFasta', async () => { | ||
await _testConvert(Samples.separatorPt, converter(NOTATION.FASTA), Samples.fastaPt); | ||
await _testConvert(Samples.separatorPt, converter(bio.NOTATION.FASTA), Samples.fastaPt); | ||
}); | ||
test('testSeparatorDnaToFasta', async () => { | ||
await _testConvert(Samples.separatorDna, converter(NOTATION.FASTA), Samples.fastaDna); | ||
await _testConvert(Samples.separatorDna, converter(bio.NOTATION.FASTA), Samples.fastaDna); | ||
}); | ||
test('testSeparatorRnaToFasta', async () => { | ||
await _testConvert(Samples.separatorRna, converter(NOTATION.FASTA), Samples.fastaRna); | ||
await _testConvert(Samples.separatorRna, converter(bio.NOTATION.FASTA), Samples.fastaRna); | ||
}); | ||
test('testSeparatorGapsToFasta', async () => { | ||
await _testConvert(Samples.separatorGaps, converter(NOTATION.FASTA), Samples.fastaGaps); | ||
await _testConvert(Samples.separatorGaps, converter(bio.NOTATION.FASTA), Samples.fastaGaps); | ||
}); | ||
@@ -216,12 +215,12 @@ | ||
test('testSeparatorPtToHelm', async () => { | ||
await _testConvert(Samples.separatorPt, converter(NOTATION.HELM), Samples.helmPt); | ||
await _testConvert(Samples.separatorPt, converter(bio.NOTATION.HELM), Samples.helmPt); | ||
}); | ||
test('testSeparatorDnaToHelm', async () => { | ||
await _testConvert(Samples.separatorDna, converter(NOTATION.HELM), Samples.helmDna); | ||
await _testConvert(Samples.separatorDna, converter(bio.NOTATION.HELM), Samples.helmDna); | ||
}); | ||
test('testSeparatorRnaToHelm', async () => { | ||
await _testConvert(Samples.separatorRna, converter(NOTATION.HELM), Samples.helmRna); | ||
await _testConvert(Samples.separatorRna, converter(bio.NOTATION.HELM), Samples.helmRna); | ||
}); | ||
test('testSeparatorGapsToHelm', async () => { | ||
await _testConvert(Samples.separatorGaps, converter(NOTATION.HELM), Samples.helmGaps); | ||
await _testConvert(Samples.separatorGaps, converter(bio.NOTATION.HELM), Samples.helmGaps); | ||
}); | ||
@@ -233,9 +232,9 @@ | ||
test('testHelmDnaToFasta', async () => { | ||
await _testConvert(Samples.helmDna, converter(NOTATION.FASTA), Samples.fastaDna); | ||
await _testConvert(Samples.helmDna, converter(bio.NOTATION.FASTA), Samples.fastaDna); | ||
}); | ||
test('testHelmRnaToFasta', async () => { | ||
await _testConvert(Samples.helmRna, converter(NOTATION.FASTA), Samples.fastaRna); | ||
await _testConvert(Samples.helmRna, converter(bio.NOTATION.FASTA), Samples.fastaRna); | ||
}); | ||
test('testHelmPtToFasta', async () => { | ||
await _testConvert(Samples.helmPt, converter(NOTATION.FASTA), Samples.fastaPt); | ||
await _testConvert(Samples.helmPt, converter(bio.NOTATION.FASTA), Samples.fastaPt); | ||
}); | ||
@@ -245,9 +244,9 @@ | ||
test('testHelmDnaToSeparator', async () => { | ||
await _testConvert(Samples.helmDna, converter(NOTATION.SEPARATOR, '/'), Samples.separatorDna); | ||
await _testConvert(Samples.helmDna, converter(bio.NOTATION.SEPARATOR, '/'), Samples.separatorDna); | ||
}); | ||
test('testHelmRnaToSeparator', async () => { | ||
await _testConvert(Samples.helmRna, converter(NOTATION.SEPARATOR, '*'), Samples.separatorRna); | ||
await _testConvert(Samples.helmRna, converter(bio.NOTATION.SEPARATOR, '*'), Samples.separatorRna); | ||
}); | ||
test('testHelmPtToSeparator', async () => { | ||
await _testConvert(Samples.helmPt, converter(NOTATION.SEPARATOR, '-'), Samples.separatorPt); | ||
await _testConvert(Samples.helmPt, converter(bio.NOTATION.SEPARATOR, '-'), Samples.separatorPt); | ||
}); | ||
@@ -257,10 +256,10 @@ | ||
test('testHelmLoneRibose', async () => { | ||
await _testConvert(Samples.helmLoneRibose, converter(NOTATION.FASTA), Samples.fastaRna); | ||
await _testConvert(Samples.helmLoneRibose, converter(bio.NOTATION.FASTA), Samples.fastaRna); | ||
}); | ||
test('testHelmLoneDeoxyribose', async () => { | ||
await _testConvert(Samples.helmLoneDeoxyribose, converter(NOTATION.SEPARATOR, '/'), Samples.separatorDna); | ||
await _testConvert(Samples.helmLoneDeoxyribose, converter(bio.NOTATION.SEPARATOR, '/'), Samples.separatorDna); | ||
}); | ||
test('testHelmLonePhosphorus', async () => { | ||
await _testConvert(Samples.helmLonePhosphorus, converter(NOTATION.FASTA), Samples.fastaRna); | ||
await _testConvert(Samples.helmLonePhosphorus, converter(bio.NOTATION.FASTA), Samples.fastaRna); | ||
}); | ||
}); |
@@ -1,7 +0,8 @@ | ||
import {after, before, category, test, expect, expectObject} from '@datagrok-libraries/utils/src/test'; | ||
import * as grok from 'datagrok-api/grok'; | ||
import * as ui from 'datagrok-api/ui'; | ||
import * as DG from 'datagrok-api/dg'; | ||
import * as bio from '@datagrok-libraries/bio'; | ||
import {after, before, category, test, expect, expectObject} from '@datagrok-libraries/utils/src/test'; | ||
import {importFasta} from '../package'; | ||
@@ -403,6 +404,6 @@ import {UnitsHandler} from '@datagrok-libraries/bio/src/utils/units-handler'; | ||
expect(col.getTag(DG.TAGS.UNITS), units); | ||
expect(col.getTag(UnitsHandler.TAGS.aligned), aligned); | ||
expect(col.getTag(UnitsHandler.TAGS.alphabet), alphabet); | ||
expect(col.getTag(bio.TAGS.aligned), aligned); | ||
expect(col.getTag(bio.TAGS.alphabet), alphabet); | ||
if (separator) | ||
expect(col.getTag(UnitsHandler.TAGS.separator), separator); | ||
expect(col.getTag(bio.TAGS.separator), separator); | ||
@@ -409,0 +410,0 @@ const uh = new UnitsHandler(col); |
import * as grok from 'datagrok-api/grok'; | ||
import * as ui from 'datagrok-api/ui'; | ||
import * as DG from 'datagrok-api/dg'; | ||
import * as bio from '@datagrok-libraries/bio'; | ||
@@ -8,4 +9,2 @@ import {after, before, category, test, expect, expectObject} from '@datagrok-libraries/utils/src/test'; | ||
import {_testPaletteN, _testPaletteAA} from '@datagrok-libraries/bio/src/tests/palettes-tests'; | ||
import {ALPHABET, UnitsHandler} from '@datagrok-libraries/bio/src/utils/units-handler'; | ||
import {AminoacidsPalettes} from '@datagrok-libraries/bio/src/aminoacids'; | ||
@@ -17,11 +16,11 @@ category('Palettes', () => { | ||
test('testPalettePtMe', async () => { | ||
const colorMeNle = AminoacidsPalettes.GrokGroups.get('MeNle'); | ||
const colorMeA = AminoacidsPalettes.GrokGroups.get('MeA'); | ||
const colorMeG = AminoacidsPalettes.GrokGroups.get('MeG'); | ||
const colorMeF = AminoacidsPalettes.GrokGroups.get('MeF'); | ||
const colorMeNle = bio.AminoacidsPalettes.GrokGroups.get('MeNle'); | ||
const colorMeA = bio.AminoacidsPalettes.GrokGroups.get('MeA'); | ||
const colorMeG = bio.AminoacidsPalettes.GrokGroups.get('MeG'); | ||
const colorMeF = bio.AminoacidsPalettes.GrokGroups.get('MeF'); | ||
const colorL = AminoacidsPalettes.GrokGroups.get('L'); | ||
const colorA = AminoacidsPalettes.GrokGroups.get('A'); | ||
const colorG = AminoacidsPalettes.GrokGroups.get('G'); | ||
const colorF = AminoacidsPalettes.GrokGroups.get('F'); | ||
const colorL = bio.AminoacidsPalettes.GrokGroups.get('L'); | ||
const colorA = bio.AminoacidsPalettes.GrokGroups.get('A'); | ||
const colorG = bio.AminoacidsPalettes.GrokGroups.get('G'); | ||
const colorF = bio.AminoacidsPalettes.GrokGroups.get('F'); | ||
@@ -28,0 +27,0 @@ expect(colorMeNle, colorL); |
@@ -0,8 +1,9 @@ | ||
import * as grok from 'datagrok-api/grok'; | ||
import * as DG from 'datagrok-api/dg'; | ||
import * as bio from '@datagrok-libraries/bio'; | ||
import {after, before, category, delay, expect, test} from '@datagrok-libraries/utils/src/test'; | ||
import * as grok from 'datagrok-api/grok'; | ||
import * as DG from 'datagrok-api/dg'; | ||
import {importFasta, multipleSequenceAlignmentAny} from '../package'; | ||
import {convertDo} from '../utils/convert'; | ||
import {ALPHABET, NOTATION, UnitsHandler} from '@datagrok-libraries/bio/src/utils/units-handler'; | ||
import {SEM_TYPES, TAGS} from '../utils/constants'; | ||
@@ -140,5 +141,5 @@ import {generateLongSequence, generateManySequences, performanceTest} from './test-sequnces-generators'; | ||
expect(srcSeqCol.semType, DG.SEMTYPE.MACROMOLECULE); | ||
expect(srcSeqCol.getTag(DG.TAGS.UNITS), NOTATION.FASTA); | ||
expect(srcSeqCol.getTag(UnitsHandler.TAGS.aligned), 'SEQ'); | ||
expect(srcSeqCol.getTag(UnitsHandler.TAGS.alphabet), ALPHABET.PT); | ||
expect(srcSeqCol.getTag(DG.TAGS.UNITS), bio.NOTATION.FASTA); | ||
expect(srcSeqCol.getTag(bio.TAGS.aligned), 'SEQ'); | ||
expect(srcSeqCol.getTag(bio.TAGS.alphabet), bio.ALPHABET.PT); | ||
expect(srcSeqCol.getTag(DG.TAGS.CELL_RENDERER), 'sequence'); | ||
@@ -150,9 +151,9 @@ | ||
expect(msaSeqCol.semType, DG.SEMTYPE.MACROMOLECULE); | ||
expect(msaSeqCol.getTag(DG.TAGS.UNITS), NOTATION.FASTA); | ||
expect(msaSeqCol.getTag(UnitsHandler.TAGS.aligned), 'SEQ.MSA'); | ||
expect(msaSeqCol.getTag(UnitsHandler.TAGS.alphabet), ALPHABET.PT); | ||
expect(msaSeqCol.getTag(DG.TAGS.UNITS), bio.NOTATION.FASTA); | ||
expect(msaSeqCol.getTag(bio.TAGS.aligned), 'SEQ.MSA'); | ||
expect(msaSeqCol.getTag(bio.TAGS.alphabet), bio.ALPHABET.PT); | ||
expect(msaSeqCol.getTag(DG.TAGS.CELL_RENDERER), 'sequence'); | ||
// check newColumn with UnitsHandler constructor | ||
const uh: UnitsHandler = new UnitsHandler(msaSeqCol); | ||
const uh: bio.UnitsHandler = new bio.UnitsHandler(msaSeqCol); | ||
@@ -179,3 +180,3 @@ dfList.push(df); | ||
const tgtCol: DG.Column = await convertDo(srcCol, NOTATION.SEPARATOR, '/'); | ||
const tgtCol: DG.Column = await convertDo(srcCol, bio.NOTATION.SEPARATOR, '/'); | ||
@@ -186,3 +187,3 @@ const resCellRenderer = tgtCol.getTag(DG.TAGS.CELL_RENDERER); | ||
// check tgtCol with UnitsHandler constructor | ||
const uh: UnitsHandler = new UnitsHandler(tgtCol); | ||
const uh: bio.UnitsHandler = new bio.UnitsHandler(tgtCol); | ||
} | ||
@@ -189,0 +190,0 @@ |
@@ -7,4 +7,2 @@ import * as grok from 'datagrok-api/grok'; | ||
import {after, before, category, test, expect, expectObject, delay} from '@datagrok-libraries/utils/src/test'; | ||
import {Column} from 'datagrok-api/dg'; | ||
import {ALPHABET, NOTATION, UnitsHandler} from '@datagrok-libraries/bio/src/utils/units-handler'; | ||
@@ -42,4 +40,4 @@ category('WebLogo-positions', () => { | ||
seqCol.semType = DG.SEMTYPE.MACROMOLECULE; | ||
seqCol.setTag(DG.TAGS.UNITS, NOTATION.FASTA); | ||
seqCol.setTag(UnitsHandler.TAGS.alphabet, ALPHABET.DNA); | ||
seqCol.setTag(DG.TAGS.UNITS, bio.NOTATION.FASTA); | ||
seqCol.setTag(bio.TAGS.alphabet, bio.ALPHABET.DNA); | ||
@@ -92,4 +90,4 @@ const wlViewer: bio.WebLogo = (await df.plot.fromType('WebLogo')) as bio.WebLogo; | ||
seqCol.semType = DG.SEMTYPE.MACROMOLECULE; | ||
seqCol.setTag(DG.TAGS.UNITS, NOTATION.FASTA); | ||
seqCol.setTag(UnitsHandler.TAGS.alphabet, ALPHABET.DNA); | ||
seqCol.setTag(DG.TAGS.UNITS, bio.NOTATION.FASTA); | ||
seqCol.setTag(bio.TAGS.alphabet, bio.ALPHABET.DNA); | ||
@@ -137,4 +135,4 @@ df.filter.init((i) => { | ||
seqCol.semType = DG.SEMTYPE.MACROMOLECULE; | ||
seqCol.setTag(DG.TAGS.UNITS, NOTATION.FASTA); | ||
seqCol.setTag(UnitsHandler.TAGS.alphabet, ALPHABET.DNA); | ||
seqCol.setTag(DG.TAGS.UNITS, bio.NOTATION.FASTA); | ||
seqCol.setTag(bio.TAGS.alphabet, bio.ALPHABET.DNA); | ||
@@ -141,0 +139,0 @@ const wlViewer: bio.WebLogo = (await df.plot.fromType('WebLogo', |
@@ -10,19 +10,2 @@ import * as grok from 'datagrok-api/grok'; | ||
function getPaletteByType(paletteType: string): bio.SeqPalette { | ||
switch (paletteType) { | ||
case 'PT': | ||
return bio.AminoacidsPalettes.GrokGroups; | ||
case 'NT': | ||
return bio.NucleotidesPalettes.Chromatogram; | ||
case 'DNA': | ||
return bio.NucleotidesPalettes.Chromatogram; | ||
case 'RNA': | ||
return bio.NucleotidesPalettes.Chromatogram; | ||
// other | ||
default: | ||
return bio.UnknownSeqPalettes.Color; | ||
} | ||
} | ||
function getUpdatedWidth(grid: DG.Grid | null, g: CanvasRenderingContext2D, x: number, w: number): number { | ||
@@ -65,3 +48,3 @@ return grid ? Math.min(grid.canvas.width - x, w) : g.canvas.width - x; | ||
onMouseMove(gridCell: DG.GridCell, e: MouseEvent): void { | ||
if (gridCell.cell.column.getTag(bio.UnitsHandler.TAGS.aligned) !== 'SEQ.MSA') | ||
if (gridCell.cell.column.getTag(bio.TAGS.aligned) !== 'SEQ.MSA') | ||
return; | ||
@@ -131,3 +114,3 @@ | ||
const palette = getPaletteByType(paletteType); | ||
const palette = bio.getPaletteByType(paletteType); | ||
@@ -233,3 +216,3 @@ const separator = gridCell.cell.column.getTag('separator') ?? ''; | ||
const palette = getPaletteByType(gridCell.cell.column.getTag(C.TAGS.ALPHABET)); | ||
const palette = bio.getPaletteByType(gridCell.cell.column.getTag(C.TAGS.ALPHABET)); | ||
const s: string = gridCell.cell.value; | ||
@@ -321,3 +304,3 @@ if (!s) | ||
if (units != 'HELM') | ||
palette = getPaletteByType(units.substring(units.length - 2)); | ||
palette = bio.getPaletteByType(units.substring(units.length - 2)); | ||
@@ -324,0 +307,0 @@ const vShift = 7; |
@@ -5,2 +5,3 @@ /* Do not change these import lines to match external modules in webpack configuration */ | ||
import * as DG from 'datagrok-api/dg'; | ||
import * as bio from '@datagrok-libraries/bio'; | ||
@@ -62,10 +63,10 @@ import {FastaFileHandler} from '@datagrok-libraries/bio/src/utils/fasta-handler'; | ||
//aligned | ||
const srcAligned = srcCol.getTag(UnitsHandler.TAGS.aligned); | ||
const srcAligned = srcCol.getTag(bio.TAGS.aligned); | ||
const tgtAligned = srcAligned + '.MSA'; | ||
//alphabet | ||
const srcAlphabet = srcCol.getTag(UnitsHandler.TAGS.alphabet); | ||
const srcAlphabet = srcCol.getTag(bio.TAGS.alphabet); | ||
tgtCol.setTag(DG.TAGS.UNITS, srcUnits); | ||
tgtCol.setTag(UnitsHandler.TAGS.aligned, tgtAligned); | ||
tgtCol.setTag(UnitsHandler.TAGS.alphabet, srcAlphabet); | ||
tgtCol.setTag(bio.TAGS.aligned, tgtAligned); | ||
tgtCol.setTag(bio.TAGS.alphabet, srcAlphabet); | ||
tgtCol.semType = DG.SEMTYPE.MACROMOLECULE; | ||
@@ -72,0 +73,0 @@ return tgtCol; |
@@ -22,3 +22,3 @@ import * as grok from 'datagrok-api/grok'; | ||
const units = col.tags[DG.TAGS.UNITS]; | ||
const sep = col.getTag(UnitsHandler.TAGS.separator); | ||
const sep = col.getTag(bio.TAGS.separator); | ||
const splitterFunc: bio.SplitterFunc = bio.getSplitter(units, sep); | ||
@@ -25,0 +25,0 @@ const encodedStringArray = []; |
@@ -113,6 +113,4 @@ import * as ui from 'datagrok-api/ui'; | ||
public override onTableAttached() { | ||
window.setTimeout(async () => { | ||
await this.init(); | ||
}, 0 /* next event cycle */); | ||
public override async onTableAttached() { | ||
await this.init(); | ||
} | ||
@@ -119,0 +117,0 @@ |
@@ -9,6 +9,7 @@ /** | ||
import * as DG from 'datagrok-api/dg'; | ||
import * as bio from '@datagrok-libraries/bio'; | ||
import wu from 'wu'; | ||
import {linearSubstructureSearch} from '../substructure-search/substructure-search'; | ||
import {Subject, Subscription} from 'rxjs'; | ||
import {NOTATION} from '@datagrok-libraries/bio/src/utils/units-handler'; | ||
import * as C from '../utils/constants'; | ||
@@ -23,2 +24,3 @@ | ||
get calculating(): boolean { return this.loader.style.display == 'initial'; } | ||
set calculating(value: boolean) { this.loader.style.display = value ? 'initial' : 'none'; } | ||
@@ -49,3 +51,3 @@ | ||
const notation = this.column?.getTag(DG.TAGS.UNITS); | ||
this.bioFilter = notation === NOTATION.FASTA ? | ||
this.bioFilter = notation === bio.NOTATION.FASTA ? | ||
new FastaFilter() : new SeparatorFilter(this.column!.getTag(C.TAGS.SEPARATOR)); | ||
@@ -88,6 +90,6 @@ this.root.appendChild(this.bioFilter!.filterPanel); | ||
/** | ||
* Performs the actual filtering | ||
* When the results are ready, triggers `rows.requestFilter`, which in turn triggers `applyFilter` | ||
* that would simply apply the bitset synchronously. | ||
*/ | ||
* Performs the actual filtering | ||
* When the results are ready, triggers `rows.requestFilter`, which in turn triggers `applyFilter` | ||
* that would simply apply the bitset synchronously. | ||
*/ | ||
async _onInputChanged(): Promise<void> { | ||
@@ -152,5 +154,5 @@ if (!this.isFiltering) { | ||
return this.separatorInput.value && this.separatorInput.value !== this.colSeparator ? | ||
this.substructureInput.value.replaceAll(this.separatorInput.value, this.colSeparator): | ||
this.substructureInput.value.replaceAll(this.separatorInput.value, this.colSeparator) : | ||
this.substructureInput.value; | ||
} | ||
} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
11312474
-0.09%56329
-0.06%