Source code for rainbow.waters

import os
import re

from rainbow.waters import masslynx
from rainbow.datadirectory import DataDirectory


[docs] def read(path, prec=0, requested_files=None): """ Reads a Waters .raw directory. Args: path (str): Path of the directory. prec (int, optional): Number of decimals to round ylabels. requested_files (list, optional): List of filenames to parse. Returns: DataDirectory representing the Waters .raw directory. """ datafiles = [] datafiles.extend(masslynx.parse_spectrum(path, prec, requested_files)) datafiles.extend(masslynx.parse_analog(path, requested_files)) metadata = masslynx.parse_metadata(path) return DataDirectory(path, datafiles, metadata)
[docs] def read_metadata(path): """ Reads metdata from a Waters .raw directory. Args: path (str): Path of the directory. Returns: Dictionary containing a list of datafiles and the metadata. """ datafiles = [] metadata = masslynx.parse_metadata(path) if len(metadata) == 1: datadir = read(path) if datadir: return {'datafiles': datadir.datafiles + datadir.analog, 'metadata': metadata} return None datafiles = [fn for fn in os.listdir(path) if re.match(r'^_FUNC\d{3}.DAT$', fn)] if '_CHROMS.INF' in os.listdir(path): analog_info = masslynx.parse_chroinf(os.path.join(path, '_CHROMS.INF')) for i in range(len(analog_info)): datafiles.append(f"_CHRO{i + 1:0>3}.DAT") return {'datafiles': datafiles, 'metadata': metadata}