| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
CoreMS is a comprehensive mass spectrometry framework for software development and data analysis of small molecules analysis.
Data handling and software development for modern mass spectrometry (MS) is an interdisciplinary endeavor requiring skills in computational science and a deep understanding of MS. To enable scientific software development to keep pace with fast improvements in MS technology, we have developed a Python software framework named CoreMS. The goal of the framework is to provide a fundamental, high-level basis for working with all mass spectrometry data types, allowing custom workflows for data signal processing, annotation, and curation. The data structures were designed with an intuitive, mass spectrometric hierarchical structure, thus allowing organized and easy access to the data and calculations. Moreover, CoreMS supports direct access for almost all vendors’ data formats, allowing for the centralization and automation of all data processing workflows from the raw signal to data annotation and curation.
CoreMS aims to provide
4.0.1
API documentation can be found here.
Overview slides can be found here.
As an open source project, CoreMS welcomes contributions of all forms. Before contributing, please see our Dev Guide
See walkthrough in this notebook
pip install coremsCorems requires Python 3.9 or later (including Python 3.13) and is compatible with NumPy 2.x, pandas 2.x, and SQLAlchemy 2.x.
To install with development and testing extras:
pip install "corems[dev]"By default the molecular formula database will be generated using SQLite.
To use PostgreSQL the easiest way is to build a docker container:
docker-compose up -dTo be able to open thermo file a installation of pythonnet is needed:
Windows:
pip install pythonnetMac and Linux:
brew install mono
pip install pythonnet CoreMS provides a Dockerfile that packages the entire application (including .NET 8 runtime for Thermo .raw file support) into a self-contained image. This is useful for running CoreMS in a reproducible environment without installing dependencies on your host system.
The Makefile provides convenience targets for building the image. The image is tagged with the current version from .bumpversion.cfg.
On Linux/Windows (standard build):
make build-image-localOn macOS (cross-platform build for linux/amd64):
make build-image-mac-localThis runs docker build with the --platform linux/amd64 flag, which is necessary when building on Apple Silicon (M1/M2/M3) Macs to ensure compatibility.
Alternatively, you can build manually with:
docker build -t corems:<version> .Replace <version> with your desired tag (e.g., 4.0.1).
The Dockerfile performs the following steps:
On Linux/Windows:
make image-run-localOn macOS:
make image-run-mac-localThis launches an interactive bash shell inside the container:
docker run -it corems:<version>From within the container, you can import and use CoreMS directly:
python3 -c "import corems; print(corems.__version__)"To process your own data files, mount a local directory into the container:
docker run -it -v /path/to/your/data:/data corilo/corems:<version>Your files will then be accessible at /data inside the container.
The docker-compose.yml file defines a PostgreSQL database service for CoreMS. The Makefile provides targets to manage it:
Start the database:
make db-upStop the database:
make db-downView database logs:
make db-logsThese are equivalent to running docker-compose up -d, docker-compose down, and docker-compose logs -f respectively.
More examples can be found in the examples/notebooks directory
from corems.transient.input.brukerSolarix import ReadBrukerSolarix
from corems.molecular_id.search.molecularFormulaSearch import SearchMolecularFormulas
from corems.mass_spectrum.output.export import HighResMassSpecExport
from matplotlib import pyplot
file_path= 'tests/tests_data/ftms/ESI_NEG_SRFA.d'
# Instatiate the Bruker Solarix reader with the filepath
bruker_reader = ReadBrukerSolarix(file_path)
# Use the reader to instatiate a transient object
bruker_transient_obj = bruker_reader.get_transient()
# Calculate the transient duration time
T = bruker_transient_obj.transient_time
# Use the transient object to instatitate a mass spectrum object
mass_spectrum_obj = bruker_transient_obj.get_mass_spectrum(plot_result=False, auto_process=True)
# The following SearchMolecularFormulas function does the following
# - searches monoisotopic molecular formulas for all mass spectral peaks
# - calculates fine isotopic structure based on monoisotopic molecular formulas found and current dynamic range
# - searches molecular formulas of correspondent calculated isotopologues
# - settings are stored at SearchConfig.json and can be changed directly on the file or inside the framework class
SearchMolecularFormulas(mass_spectrum_obj, first_hit=False).run_worker_mass_spectrum()
# Iterate over mass spectral peaks objs within the mass_spectrum_obj
for mspeak in mass_spectrum_obj.sort_by_abundance():
# If there is at least one molecular formula associated, mspeak returns True
if mspeak:
# Get the molecular formula with the highest mass accuracy
molecular_formula = mspeak.molecular_formula_lowest_error
# Plot mz and peak height
pyplot.plot(mspeak.mz_exp, mspeak.abundance, 'o', c='g')
# Iterate over all molecular formulas associated with the ms peaks obj
for molecular_formula in mspeak:
# Check if the molecular formula is a isotopologue
if molecular_formula.is_isotopologue:
# Access the molecular formula text representation and print
print (molecular_formula.string)
# Get 13C atoms count
print (molecular_formula['13C'])
else:
# Get mz and peak height
print(mspeak.mz_exp,mspeak.abundance)
# Save data
## to a csv file
mass_spectrum_obj.to_csv("filename")
mass_spectrum_obj.to_hdf("filename")
# to pandas Datarame pickle
mass_spectrum_obj.to_pandas("filename")
# Extract data as a pandas Dataframe
df = mass_spectrum_obj.to_dataframe()UML (unified modeling language) diagrams for Direct Infusion FT-MS and GC-MS classes can be found here.
If you use CoreMS in your work, please cite the archived release on Zenodo. The badge below is the concept DOI — it always resolves to the latest archived release, and each archived release also has its own version-specific DOI listed on that page.
For citation metadata (BibTeX, RIS, etc.), use the "Cite this repository" button on the GitHub sidebar, click "Export" on the Zenodo page above, or see CITATION.cff in the repository root.
This material was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor the United States Department of Energy, nor Battelle, nor any of their employees, nor any jurisdiction or organization that has cooperated in the development of these materials, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness or any information, apparatus, product, software, or process disclosed, or represents that its use would not infringe privately owned rights.
Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof, or Battelle Memorial Institute. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof.
PACIFIC NORTHWEST NATIONAL LABORATORY
operated by
BATTELLE
for the
UNITED STATES DEPARTMENT OF ENERGY
under Contract DE-AC05-76RL01830
| Back | FazBrowse Home | New Git URL |