prm-converter
v0.2.0
Published
A converter for DataApex chromatography files
Readme
prm-converter
A converter for DataApex chromatography files
Usage
parseRawData returns one chromatogram per detector. The time between two scans
is derived from the acquisition rate stored in the file, so retention times are
correct whatever the rate the run was acquired at.
import { readFileSync } from 'node:fs';
import { parseRawData } from 'prm-converter';
const chromatograms = parseRawData(readFileSync('sample.prm'));
for (const { detectorName, timeStep, scans } of chromatograms) {
// "GC0 - Front Signal", 50 ms between two scans
console.log(detectorName, timeStep);
console.log(scans[0].retentionTime, scans[0].totalSignal);
}completeParse returns the whole file: the metadata tree and the detector
signals as Float32Arrays.
import { completeParse } from 'prm-converter';
const parsed = completeParse(readFileSync('sample.prm'));
console.log(parsed.Root.Data.Detector1.DetName);
console.log(parsed.Root.Data.Detector1.PRMData);Both functions accept a logger reporting the bytes they could not interpret.
It follows the Logger interface of cheminfo-types, so any pino-like logger
fits.
import { FifoLogger } from 'fifo-logger';
const logger = new FifoLogger();
const parsed = completeParse(readFileSync('sample.prm'), { logger });
console.log(logger.getLogs());