The Mass Spec Query Language (MassQL) is a domain specific language meant to be a succinct way to express a query in a mass spectrometry centric fashion.
MIT License
The Mass Spec Query Language (MassQL) is a domain specific language meant to be a succinct way to express a query in a mass spectrometry centric fashion. It is inspired by SQL, but it attempts to bake in assumptions of mass spectrometry to make querying much more natural for mass spectrometry users. Broadly we attempt to design it according to several principles:
This is the repository to define the language and reference implementation. This contains several parts
Mingxun Wang is the main creator and developer of MassQL. Contact me for contributing or using it!
Checkout specifics for the language, examples, and design patterns at the documentation.
To install massql
pip install massql
Here is the most basic operation you can do
from massql import msql_engine
results_df = msql_engine.process_query(input_query, input_filename)
If you want to push in a data frame you already have, you can specify it
from massql import msql_engine
from massql import msql_fileloading
# Loading Data
ms1_df, ms2_df = msql_fileloading.load_data(input_filename)
# Executing Query
results_df = msql_engine.process_query(input_query, input_filename, ms1_df=ms1_df, ms2_df=ms2_df)
You can use the command line tool massql
to query things or put things into a pipeline.
A few examples of what you can do
massql test.mzML "QUERY scaninfo(MS2DATA)" --output_file results.tsv
/api
/parse?query=<query string>
Visualization image of MS1 spectra
/visualize/ms1
Visualization image of MS2 spectra
/visualize/ms2
To run tests, you'll need to first fetch some fixtures that are not bundled with the git repo:
cd tests && sh ./get_data.sh
You will also want to install the extra requirements for the test suite:
pip install -r requirements_test.txt
MIT License