screening
Version:
Tools for numbering screening plate
36 lines • 1.65 kB
JavaScript
/**
* Generate iconNMR text file from requests
* @param requests - array of PlateRequest objects
* @param options - options for generating the file
* @returns iconNMR text file
*/
export function generateIconNMRFile(requests, options = {}) {
const { eol = '\r\n', deleteExistingHolder = false, autoSubmit = false, } = options;
const textFile = [];
for (const request of requests) {
let experimentNumberCounter = 1;
const { holder } = request;
if (deleteExistingHolder) {
textFile.push(`USER ${request.user}`, `HOLDER ${holder}`, 'DELETE'); // this is required to delete already existing entries
}
textFile.push(`USER ${request.user}`, `HOLDER ${holder}`);
if (!autoSubmit)
textFile.push('NO_SUBMIT');
textFile.push(`NAME ${request.name}`, `TITLE ${request.title}`);
for (const experiment of request.experiments) {
let experimentNumber = experiment.experimentNumber || experimentNumberCounter++;
textFile.push(`EXPNO ${experimentNumber++}`, `SOLVENT ${experiment.solvent}`);
if (experiment.parameters && experiment.parameters.length > 0) {
const parameters = [];
for (const parameter of experiment.parameters) {
parameters.push(parameter.label, parameter.value);
}
textFile.push(`PARAMETERS ${parameters.join(',')}`);
}
textFile.push(`EXPERIMENT ${experiment.experiment}`);
}
textFile.push('');
}
return textFile.join(eol);
}
//# sourceMappingURL=generateIconNMRFile.js.map