Skip to main content

Mass spectrometry query language python implementation

Project description

Mass Spec Query Languge

Unit Testing NF Workflow Testing

The Mass Spec Query Langauge (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:

  1. Expressiveness - Capture complex mass spectrometry patterns that the community would like to look for
  2. Precision - Exactly prescribe how to find data without ambiguity
  3. Relatively Natural - MassQL should be relatively easy to read and write and even use as a way to communicate ideas about mass spectrometry, you know like a language.

Repository Structure

This is the repository to define the language and reference implementation. This contains several parts

  1. Language Grammar
  2. Reference Implementation Python API
  3. Commandline Utility to execute
  4. NextFlow Workflow For Large Scale Analysis
  5. ProteoSAFe workflow
  6. Dash interactive exploration

Developers/Contact

Mingxun Wang is the main creator and developer of MassQL. Contact me for contributing or using it!

Language Specification/Documentation

Checkout specifics for the langauge, examples, and design patterns at the documentation.

Documentation Link

Python API

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)

Command Line Tool

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

Web API

API Version

/api

Parsing query into intermediate JSON string

/parse?query=<query string>

Example Link

Visualization of Query

Visualization image of MS1 spectra

/visualize/ms1

Example Link

Visualization image of MS2 spectra

/visualize/ms2

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

massql-0.0.9.tar.gz (28.6 kB view details)

Uploaded Source

Built Distribution

massql-0.0.9-py3-none-any.whl (39.4 kB view details)

Uploaded Python 3

File details

Details for the file massql-0.0.9.tar.gz.

File metadata

  • Download URL: massql-0.0.9.tar.gz
  • Upload date:
  • Size: 28.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.11

File hashes

Hashes for massql-0.0.9.tar.gz
Algorithm Hash digest
SHA256 7776ba28d827a5bc6ff053138b6b15cb7e065529d15a4175789312f4dd697cfd
MD5 c959da3a8d6cd2253f318377aeeec72d
BLAKE2b-256 bfe2eadae170e666a6a5b514cdefc6ae7b75faa018c281579f347e8f7f1c9d73

See more details on using hashes here.

File details

Details for the file massql-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: massql-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 39.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.11

File hashes

Hashes for massql-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 0a210ac1a7979e8656bf475d52668e1324ea343f87b107d834044ea234efd926
MD5 a12eb255d7b5e665ae38a20386a32c65
BLAKE2b-256 a28bbe77f27bd73a9e2d13ae3674d27848283a50d0f981d308b9aca7d7e7a14a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page