Skip to content

Commit

Permalink
feat: distinguish predicted spectra color per sample
Browse files Browse the repository at this point in the history
  • Loading branch information
hamed-musallam committed Mar 29, 2022
1 parent 9cf5508 commit f2b5acb
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 8 deletions.
5 changes: 4 additions & 1 deletion src/component/reducer/actions/MoleculeActions.ts
Expand Up @@ -3,6 +3,7 @@ import { Draft } from 'immer';
import { generateSpectra } from '../../../data/PredictionManager';
import { changeSpectraRelativeSum } from '../../../data/data1d/Spectrum1D/SumManager';
import * as MoleculeManager from '../../../data/molecules/MoleculeManager';
import getColor from '../../../data/utilities/getColor';
import nucleusToString from '../../utility/nucleusToString';
import { State } from '../Reducer';
import { DISPLAYER_MODE } from '../core/Constants';
Expand Down Expand Up @@ -71,13 +72,15 @@ function predictSpectraFromMoleculeHandler(draft: Draft<State>, action) {
if (!data) {
draft.isLoading = false;
} else {
for (const spectrum of generateSpectra(data, options)) {
const color = getColor(false, draft.usedColors['1d']);
for (const spectrum of generateSpectra(data, options, color)) {
draft.data.push(spectrum);
draft.tabActiveSpectrum[nucleusToString(spectrum.info.nucleus)] = {
id: spectrum.id,
index: draft.data.length - 1,
};
}
draft.usedColors['1d'].push(color);
}
draft.toolOptions.data.predictionIndex++;
setActiveTab(draft);
Expand Down
6 changes: 4 additions & 2 deletions src/data/PredictionManager.ts
Expand Up @@ -16,6 +16,7 @@ import { initiateDatum2D } from './data2d/Spectrum2D';
import { Datum1D } from './types/data1d';
import { Datum2D, Signal2D, Zone } from './types/data2d';
import generateID from './utilities/generateID';
import { adjustAlpha } from './utilities/getColor';

export interface PredictionOptions {
name: string;
Expand Down Expand Up @@ -90,9 +91,9 @@ export async function predictSpectra(molfile: string): Promise<any> {
export function generateSpectra(
data: Record<string, any>,
inputOptions: PredictionOptions,
color: string,
): Array<Datum1D | Datum2D> {
const spectra: Array<Datum1D | Datum2D> = [];
const color = '#593315';
for (const experiment in data) {
if (inputOptions.spectra[experiment]) {
const spectrum = data[experiment];
Expand Down Expand Up @@ -234,7 +235,8 @@ function generated2DSpectrum(params: {
data: { ...spectrumData, noise: 0.01 },
display: {
name: inputOptions.name,
positiveColor: experiment === 'hmbc' ? '#e68337' : color,
positiveColor: color,
negativeColor: adjustAlpha(color, 40),
},
info: {
nucleus: nuclei,
Expand Down
4 changes: 3 additions & 1 deletion src/data/data1d/Spectrum1D/initiateDatum1D.ts
Expand Up @@ -76,8 +76,10 @@ export function initiateDatum1D(options: any, usedColors = {}): Datum1D {

function getColor(options, usedColors) {
let color = 'black';
if (options.display === undefined || options.display.color === undefined) {
if (options?.display?.color === undefined) {
color = get1dColor(false, usedColors['1d'] || []);
} else {
color = options.display.color;
}

if (usedColors['1d']) {
Expand Down
5 changes: 2 additions & 3 deletions src/data/data2d/Spectrum2D/initiateDatum2D.ts
Expand Up @@ -69,9 +69,8 @@ export function initiateDatum2D(options: any, usedColors = {}): Datum2D {
function getColor(options, usedColors) {
let color = { positiveColor: 'red', negativeColor: 'blue' };
if (
options.display === undefined ||
options.display.negativeColor === undefined ||
options.display.positiveColor === undefined
options?.display.negativeColor === undefined ||
options?.display?.positiveColor === undefined
) {
color = get2DColor(options.info.experiment, usedColors['2d'] || []);
}
Expand Down
2 changes: 1 addition & 1 deletion src/data/utilities/getColor.ts
Expand Up @@ -51,7 +51,7 @@ function percentToHex(p: number): string {
return percent === 100 ? '' : hexValue.padStart(2, '0');
}

function adjustAlpha(color: string, factor: number): string {
export function adjustAlpha(color: string, factor: number): string {
return color + percentToHex(factor);
}

Expand Down

0 comments on commit f2b5acb

Please sign in to comment.