GitXplorerGitXplorer
m

MassQueryLanguage

public
39 stars
8 forks
53 issues

Commits

List of commits on branch master.
Verified
dc23b1f336631a3286cbc7aca5ad57a23989d7cd

Update test_queries.txt

mmwang87 committed 7 months ago
Unverified
3347200704eecf75369e2471e6eefa4a5c9375d8

updating

mmwang87 committed 8 months ago
Unverified
ff493005e2b48b51a4b56dba47ef30c5c58a3886

adding demangling for tasks needed for massql workflow

mmwang87 committed 8 months ago
Unverified
7ac8970915583a67f7dec8da5b3a898a53ea04d5

making the extraction a parameter

mmwang87 committed 10 months ago
Unverified
bfc097b069c8653a918621c1255368ce355ee99a

removing dash to be a separate repo

mmwang87 committed a year ago
Unverified
39e560cde0e8f41417b5f4ffb85178409d0988f8

cleanup

mmwang87 committed a year ago

README

The README file for this repository.

Mass Spec Query Language

Unit Testing NF Workflow Testing

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:

  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. Scalable - Easily facilitating the querying of one spectrum all the way up to entire repositories of data
  4. Relatively Natural - MassQL should be relatively easy to read and write and even use 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. Command line 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 language, 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

Testing

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

License

MIT License