Skip to content

Latest commit

 

History

History
281 lines (186 loc) · 11.9 KB

README.md

File metadata and controls

281 lines (186 loc) · 11.9 KB

LipidLynx_Logo

Platforms total downloads GitHub (Pre-)Release Date GitHub commits since latest release GitHub last commit

The LipidLynxX project is aimed to provide a unified identifier for major lipids, especially oxidized lipids in the epilipidome.

LipidLynx_01_Home

Main Modules

  • LipidLynxX Converter

    • Convert different abbreviations to uniformed LipidLynxX ID
  • LipidLynxX Equalizer

    • Cross compare different level of LipidLynxX ID on selected level
  • LipidLynxX Linker

    • Link lipid abbreviations to available resources

Key Features

  • Optimized for manual interpretation and computer processing
  • Suitable for both unmodified lipids and modified lipids
  • Unified modification controlled vocabularies
  • Unified position specific annotations
  • Cross level match based on shared levels
  • Extract key information from LipidLynxX ID
  • Strictly controlled format using JSON schema
  • Easy to use Graphic User Interface
  • API access for professional users
  • Command line tools for professional users

Supported lipid notation styles

The current LipidLynxX source code was tested using our collection of lipid abbreviations for major lipid classes from following databases and programs:

  • Databases (5):

    • HMDB, LIPID MAPS LMSD & COMP_DB, LipidHome, RefMet, SwissLipids
  • Programs (17):

    • ALEX123 lipid calculator, Greazy, LDA 2, LipidBlast, LipidCreator, LipiDex, LipidFrag, LipidHunter, LipidMatch, LipidPro, LipidSearch, Lipostar, LIQUID, LPPtiger, MetFrag, MS-DIAL, MZmine2
  • Shorthand Notations

    • Shorthand notation using space: e.g. PC 16:0_18:2
    • Shorthand notation derivatives using brackets: e.g. PC(16:0_18:2)
  • Common abbreviations (customizable):

    • Abbreviations such as DHA, PAPE, PLPC, PONPC .etc are also included as defined alias. detailed settings can be found in lynx/configurations/defined_alias.json

Important Notice

If your database / program is not included in the list above, you can test if any of the configuration files located in lynx/configurations/rules/input would fit to your database / program. If conversion is not possible, please contact us so that we can help you to generate suitable configuration file.

A robust and accurate converter can only be achieved by community-wide collaborations, thus any issue reports from general users and developers are welcome and will improve LipidLynxX project.

Thus, if you meet any issues during using LipidLynxX, please report your issue here

Notice to general users

An easy to use .exe version for Windows platform users is available for test purpose only. LipidLynxX v0.4.12-beta preview release for Windows 10.

For macOS users, a installation pack is under development and will be ready in approximately end of May 2020. If you really want to have an early access to the exe version, please contact us by email.

Additional notice to developers

Since the code is still changing rapidly, the definitions of API and documentations in the source code may not be updated accordingly. We kindly ask if you have any plans to use LipidLynxX API contact us first, or follow this repository to get timely notifications when new changes are introduced.

New features of LipidLynxX is generally developed using repository https://github.com/ZhixuNi/LipidLynxX.

Instructions

Sample files:

  • Test input file: LipidLynxX/doc/sample_data/input
  • Test output file: LipidLynxX/doc/sample_data/output

How to install and use LipidLynxX

Please find our user guide in folder doc.

Try LipidLynxX simple converter demo on mybinder.org

This demo is always updated automatically to the latest source code on the master branch. To preview the latest changes on the converter without dealing with source code.

Just click this button 👉 Binder

And wait a bit ☕ Binder and Jupyter Notebook will prepare LipidLynxX demo for you.

  • You can paste a list of lipid abbreviations, select export style, and download the output table as .csv or .xlsx.

  • If you observed some IDs not converted in the Windows .exe version, try this demo to see if it got fixed.

  • You can run the notebook named converter_notebook.ipynb in this repository as well.

Screenshots

  • GUI LipidLynx_01_Converter

  • API

    • LipidLynxX provides API documentation using both OpenAI (left) and ReDoc (right) LipidLynxX_API
  • Terminal Tools

    • LipidLynxX provide the same function in command line.
          python cli-lynx.py
      LipidLynxX_API
  • Use as Python module

    • Please check examples_notebook.ipynb
    • You can find online interactive version via Binder Binder

LipidLynxX Nomenclature

  • LipidLynxX levels

    • Lipid level:

      • B: Bulk
      • M: Molecular species
      • S: sn Specific
    • Modification levels:

      • 0 : no modification
      • 1 : mass shift
      • 2 : element shift
      • 3 : number and type of modification
      • 4 : modification position information
      • 5 : additional information (e.g. R-/S-)
    • Double bond levels:

      • .0 : no information of double bond position (.0 should always be skipped, e.g. B0.0 -> B0)
      • .1 : double bond position information given
      • .2 : cis- / trans- information of all C=C bond
  • LipidLynxX level matrix

    • The combinations of 3 sub-levels result in a matrix of LipidLynxX levels

      • e.g. B2 , D4, and S4.2
      Mod DB Bulk Molecular species sn Specific
      0 B M S
      .1 M0.1 S0.1
      .2 M0.2 S0.2
      1. B1 M1 S1
      .1 M1.1 S1.1
      .2 M1.2 S1.2
      2. B2 M2 S2
      .1 M2.1 S2.1
      .2 M2.2 S2.2
      3. B3 M3 S3
      .1 M3.1 S3.1
      .2 M3.2 S3.2
      4. M4 S4
      .1 M4.1 S4.1
      .2 M4.2 S4.2
      5. M5 S5
      .1 M5.1 S5.1
      .2 M5.2 S5.2
    • Example

      LipidLynx_levels

  • Currently supported modification controlled vocabularies LipidLynx_01_Home

  • Some examples of LipidLynx abbreviations:

    • Fatty acids

      • FA18:0
      • O-16:0
      • P-18:0
      • 20:4<2OH,oxo>
      • 20:4{5Z,9E,11Z,14Z}<OH{8S}>
      • 20:4{5Z,9E,12E,15E}<2OH{8S,11R},oxo{14}>
    • Phospholipids

      • PC(O-16:0/18:1)
      • PE(P-16:0_18:1)
      • PC(16:0/20:4<2OH,oxo>)
      • PE(16:0/20:4{5,9,12,15}<2OH{8,11},oxo{14}>)

Information for developers

  • LipidLynxX is configured to use travis-ci and GitHub Actions with py.test to test cross-platform compatibility on Linux, macOS and Windows.

  • Current status of the master branch

    Code style: black Codacy Badge GitHub commits since latest release

    Travis-CI Build Status GitHub Actions Python application

  • You can also use py.test to test LipidLynxX in your python environment, all test files can be found in ./test folder.

Errors/bugs

In case you experienced any problems with running LipidLynxX, please report an issue in the issue tracker or contact us.

Report issues

License

  • LipidLynxX is using GPL V3 License

    • license: GPL v3
  • Please cite our publication in an appropriate form.

    • LipidLynxX preprint on bioRxiv.org

      • Zhixu Ni, Maria Fedorova. "LipidLynxX: a data transfer hub to support integration of large scale lipidomics datasets"

Dependencies

  • LipidLynxX is powered by open-source projects, main dependencies are:

    • FastAPI, starlette, Typer, and uvicorn

    • jsonschema, pandas, and regex

  • LipidLynxX is based on the previous project epiLION

    • Ni, Zhixu, Laura Goracci, Gabriele Cruciani, and Maria Fedorova. "Computational solutions in redox lipidomics–Current strategies and future perspectives." Free Radical Biology and Medicine (2019).

Fundings

We acknowledge all projects that supports the development of LipidLynxX: