smith-chem-wisc / mzLib

Library for mass spectrometry projects
GNU Lesser General Public License v3.0
26 stars 33 forks source link
chemical-formulas chemistry isotopes mass-spectrometry mass-spectrometry-data proteogenomics proteomics-data spectra-files

mzLib

A library for mass spectrometry projects.

GitHub Action Builds codecov Coverity Scan Build Status NuGet Badge

image

NuGet packages are released here: https://www.nuget.org/packages/mzLib/

GitHub release tags are recoreded here: https://github.com/smith-chem-wisc/mzLib/releases

Usage

Reading Spectra Files

To read Thermo or mzML files, use

ThermoStaticData staticThermo = ThermoStaticData.LoadAllStaticData(@"spectra.raw");
ThermoDynamicData dynamicThermo = ThermoDynamicData.InitiateDynamicConnection(@"spectra.raw")
Mzml mzmlFile = Mzml.LoadAllStaticData(@"spectra.mzML");

Both filetypes implement the same interface that has all of the necessary functionality to interact with spectra files:

IMsDataFile<IMsDataScan<IMzSpectrum<IMzPeak>>> thermoFile = new ThermoRawFile(@"spectra.RAW");
IMsDataFile<IMsDataScan<IMzSpectrum<IMzPeak>>> mzmlFile = new Mzml(@"spectra.mzML");

Loading Databases From Online Sources

Loaders.LoadElements("elements.dat"); // void, loads elements into static PeriodicTable class 
IEnumerable<ModificationWithLocation> unimodMods = Loaders.LoadUnimod("unimod.dat");
IEnumerable<ModificationWithLocation> uniprotMods = Loaders.LoadUniprot("uniprot.dat");

Reading Protein Database Files

To read .fasta, .xml, or .xml.gz files, use

List<Protein> proteins = ProteinDbLoader.LoadProteinDb("proteins.xml", generateDecoys, allKnownModifications, IsContaminant, out unknownModifications);

The parameters are:

Reading Modification Files

To load modifications from ptmlist formatted files use

IEnumerable<ModificationWithLocation> ptms = PtmListLoader.ReadMods("ptms.txt")

License

Code heavily borrowed from https://github.com/dbaileychess/CSMSL and distrubuted under the appropriate license, LGPL.