@datagrok/bio 2.16.3 → 2.16.5

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.
@@ -395,14 +395,14 @@ export class WebLogoViewer extends DG.JsViewer implements IWebLogoViewer {
395
395
 
396
396
  // -- Data --
397
397
  this.sequenceColumnName = this.string(PROPS.sequenceColumnName, defaults.sequenceColumnName,
398
- {category: PROPS_CATS.DATA});
398
+ {category: PROPS_CATS.DATA, semType: DG.SEMTYPE.MACROMOLECULE});
399
399
  const aggExcludeList = [DG.AGG.KEY, DG.AGG.PIVOT, DG.AGG.MISSING_VALUE_COUNT, DG.AGG.SKEW, DG.AGG.KURT,
400
400
  DG.AGG.SELECTED_ROWS_COUNT];
401
401
  const aggChoices = Object.values(DG.AGG).filter((agg) => !aggExcludeList.includes(agg));
402
402
  this.valueAggrType = this.string(PROPS.valueAggrType, defaults.valueAggrType,
403
403
  {category: PROPS_CATS.DATA, choices: aggChoices}) as DG.AggregationType;
404
404
  this.valueColumnName = this.string(PROPS.valueColumnName, defaults.valueColumnName,
405
- {category: PROPS_CATS.DATA});
405
+ {category: PROPS_CATS.DATA, columnTypeFilter: 'numerical'});
406
406
  this.startPositionName = this.string(PROPS.startPositionName, defaults.startPositionName,
407
407
  {category: PROPS_CATS.DATA});
408
408
  this.endPositionName = this.string(PROPS.endPositionName, defaults.endPositionName,
@@ -1022,20 +1022,18 @@ export class WebLogoViewer extends DG.JsViewer implements IWebLogoViewer {
1022
1022
 
1023
1023
  // 2022-05-05 askalkin instructed to show WebLogo based on filter (not selection)
1024
1024
  const dfRowCount = this.dataFrame.rowCount;
1025
-
1025
+ const filterIndexes = dfFilter.getSelectedIndexes();
1026
1026
  for (let jPos = 0; jPos < length; ++jPos) {
1027
1027
  // Here we want to build lists of values for every monomer in position jPos
1028
- for (let rowI = 0; rowI < dfRowCount; ++rowI) {
1029
- if (dfFilter.get(rowI)) {
1030
- const seqS: ISeqSplitted = this.seqHandler.getSplitted(rowI);
1031
- const om: string = jPos < seqS.length ? seqS.getCanonical(this.startPosition + jPos) :
1032
- this.seqHandler.defaultGapOriginal;
1033
- const cm: string = this.seqHandler.defaultGapOriginal === om ? GAP_SYMBOL : om;
1034
- const pi = this.positions[jPos];
1035
- const pmi = pi.getFreq(cm);
1036
- ++pi.sumRowCount;
1037
- pmi.value = ++pmi.rowCount;
1038
- }
1028
+ for (const rowI of filterIndexes) {
1029
+ const seqS: ISeqSplitted = this.seqHandler.getSplitted(rowI);
1030
+ const om: string = jPos + this.startPosition < seqS.length ? seqS.getCanonical(this.startPosition + jPos) :
1031
+ this.seqHandler.defaultGapOriginal;
1032
+ const cm: string = this.seqHandler.defaultGapOriginal === om ? GAP_SYMBOL : om;
1033
+ const pi = this.positions[jPos];
1034
+ const pmi = pi.getFreq(cm);
1035
+ ++pi.sumRowCount;
1036
+ pmi.value = ++pmi.rowCount;
1039
1037
  }
1040
1038
  if (this.valueAggrType === DG.AGG.TOTAL_COUNT) continue;
1041
1039
 
@@ -1048,13 +1046,13 @@ export class WebLogoViewer extends DG.JsViewer implements IWebLogoViewer {
1048
1046
  } catch { valueCol = null; }
1049
1047
  if (!valueCol) continue; // fallback to TOTAL_COUNT
1050
1048
 
1051
- for (let rowI = 0; rowI < dfRowCount; ++rowI) {
1052
- if (dfFilter.get(rowI)) { // respect the filter
1053
- const seqMList: ISeqSplitted = this.seqHandler.getSplitted(rowI);
1054
- const cm: string = seqMList.getCanonical(this.startPosition + jPos);
1055
- const value: number | null = valueCol.get(rowI);
1056
- this.positions[jPos].getFreq(cm).push(value);
1057
- }
1049
+ for (const rowI of filterIndexes) {
1050
+ const seqS: ISeqSplitted = this.seqHandler.getSplitted(rowI);
1051
+ const om: string = jPos + this.startPosition < seqS.length ? seqS.getCanonical(this.startPosition + jPos) :
1052
+ this.seqHandler.defaultGapOriginal;
1053
+ const cm: string = this.seqHandler.defaultGapOriginal === om ? GAP_SYMBOL : om;
1054
+ const value: number | null = valueCol.get(rowI);
1055
+ this.positions[jPos].getFreq(cm).push(value);
1058
1056
  }
1059
1057
  this.positions[jPos].aggregate(this.valueAggrType);
1060
1058
  }