io.github.msdk.util.RawDataFileUtil.java Source code

Java tutorial

Introduction

Here is the source code for io.github.msdk.util.RawDataFileUtil.java

Source

/* 
 * (C) Copyright 2015-2016 by MSDK Development Team
 *
 * This software is dual-licensed under either
 *
 * (a) the terms of the GNU Lesser General Public License version 2.1
 * as published by the Free Software Foundation
 *
 * or (per the licensee's choosing)
 *
 * (b) the terms of the Eclipse Public License v1.0 as published by
 * the Eclipse Foundation.
 */

package io.github.msdk.util;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Nonnull;

import com.google.common.collect.Range;

import io.github.msdk.datamodel.chromatograms.Chromatogram;
import io.github.msdk.datamodel.rawdata.ChromatographyInfo;
import io.github.msdk.datamodel.rawdata.MsFunction;
import io.github.msdk.datamodel.rawdata.MsScan;
import io.github.msdk.datamodel.rawdata.RawDataFile;

/**
 * <p>
 * RawDataFileUtil class.
 * </p>
 */
public class RawDataFileUtil {

    /**
     * <p>
     * getScans.
     * </p>
     *
     * @param rawDataFile
     *            a {@link io.github.msdk.datamodel.rawdata.RawDataFile} object.
     * @param msFunction
     *            a {@link io.github.msdk.datamodel.rawdata.MsFunction} object.
     * @return a {@link java.util.List} object.
     */
    @Nonnull
    static public List<MsScan> getScans(RawDataFile rawDataFile, MsFunction msFunction) {
        ArrayList<MsScan> msScanList = new ArrayList<MsScan>();
        List<MsScan> scans = rawDataFile.getScans();
        synchronized (scans) {
            for (MsScan scan : scans) {
                if (scan.getMsFunction().equals(msFunction))
                    msScanList.add(scan);
            }
        }
        return msScanList;
    }

    /**
     * <p>
     * getScans.
     * </p>
     *
     * @param rawDataFile
     *            a {@link io.github.msdk.datamodel.rawdata.RawDataFile} object.
     * @param rtRange
     *            a {@link com.google.common.collect.Range} object.
     * @return a {@link java.util.List} object.
     */
    @Nonnull
    static public List<MsScan> getScans(RawDataFile rawDataFile, Range<ChromatographyInfo> rtRange) {
        ArrayList<MsScan> msScanList = new ArrayList<MsScan>();
        List<MsScan> scans = rawDataFile.getScans();
        synchronized (scans) {
            for (MsScan scan : scans) {
                ChromatographyInfo scanRT = scan.getChromatographyInfo();
                if (scanRT != null) {
                    if (rtRange.contains(scanRT))
                        msScanList.add(scan);
                }
            }
        }
        return new ArrayList<MsScan>();
    }

    /**
     * <p>
     * getScans.
     * </p>
     *
     * @param rawDataFile
     *            a {@link io.github.msdk.datamodel.rawdata.RawDataFile} object.
     * @param msFunction
     *            a {@link io.github.msdk.datamodel.rawdata.MsFunction} object.
     * @param rtRange
     *            a {@link com.google.common.collect.Range} object.
     * @return a {@link java.util.List} object.
     */
    @Nonnull
    static public List<MsScan> getScans(RawDataFile rawDataFile, MsFunction msFunction,
            Range<ChromatographyInfo> rtRange) {
        ArrayList<MsScan> msScanList = new ArrayList<MsScan>();
        List<MsScan> scans = rawDataFile.getScans();
        synchronized (scans) {
            for (MsScan scan : scans) {
                ChromatographyInfo scanRT = scan.getChromatographyInfo();
                if (scanRT != null) {
                    if (scan.getMsFunction().equals(msFunction) && rtRange.contains(scanRT))
                        msScanList.add(scan);
                }
            }
        }
        return new ArrayList<MsScan>();
    }

    /**
     * <p>
     * getNextChromatogramNumber.
     * </p>
     *
     * @param rawDataFile
     *            a {@link io.github.msdk.datamodel.rawdata.RawDataFile} object.
     * @return a {@link java.lang.Integer} object.
     */
    @Nonnull
    static public Integer getNextChromatogramNumber(RawDataFile rawDataFile) {
        int chromatogramNumber = 1;
        List<Chromatogram> chromatograms = rawDataFile.getChromatograms();
        for (Chromatogram chromatogram : chromatograms) {
            int currentChromatogramNumber = chromatogram.getChromatogramNumber();
            if (currentChromatogramNumber > chromatogramNumber)
                chromatogramNumber = currentChromatogramNumber;
        }
        return chromatogramNumber;
    }
}