lifs-tools / goslin Goto Github PK
View Code? Open in Web Editor NEWGoslin is the Grammar on succinct lipid nomenclature.
Home Page: https://lifs-tools.org/goslin
License: Other
Goslin is the Grammar on succinct lipid nomenclature.
Home Page: https://lifs-tools.org/goslin
License: Other
The error is: Number of specified fatty acyl chains (2) not allowed for lipid class 'omega-linoleoyloxy-Cer' (having 0 fatty aycl chains).
ANTLR v4 allows import of grammars:
https://github.com/antlr/antlr4/blob/master/doc/grammars.md#grammar-imports
Output is "ST 28:2;1" instead of "ST 28:2;O".
Name 'MMAs' not registered in functional group list
The raise_error flag is not suppressing all exceptions in all the implementations.
Is your feature request related to a problem? Please describe.
ACer (Acyl Ceramides) are currently not supported in the Goslin Grammars.
Describe the solution you'd like
ACers should be parseable and mapped similarly to other Ceramides.
ACers are currently not available in LIPID MAPS apparently.
SwissLipids has some examples: https://www.swisslipids.org/#/search/Acylceramide
The MS-DIAL 4 nomenclature seems to be reasonably close to the existing nomenclatures to be able to add it with little effort:
http://prime.psc.riken.jp/compms/msdial/lipidnomenclature.html
Is your feature request related to a problem? Please describe.
LIPID MAPS has recently updated their shorthand nomenclature / abbreviation following this publication:
https://www.jlr.org/content/early/2020/10/09/jlr.S120001025.full.pdf
However, there are still some cases, where the new rules (removal of unnecessary parentheses) are not displayed in the common name, but only on the abbreviation levels:
https://www.lipidmaps.org/data/LMSDRecord.php?LMID=LMGL02010003
Describe the solution you'd like
Goslin should be able to parse the updated names and should also respect the updated hierarchy introduced in the paper linked to above.
Describe alternatives you've considered
None
Additional context
None
Some HMDB lipid names cannot be parsed.
I have implemented some patches in @gbaquer/LipidParser. Happy to incorporate into goslin and test. Let me know.
Issue 1: Functional groups
Solution:
Remove with REGEX
x=re.sub('(-\w+\(\d+[ A-Za-z,\d]*\))|\+=\w\(\d+\)','',x)
Issue 2: Specific FA's
Solution:
Replace by the corresponding nomenclature. For example: PGJ2 -> 20:5
for i in range(fa.shape[0]): x=re.sub(fa.name[i],fa.repname[i],x)
Currently, only the hydroxyl modification is handled and accounted for during the parsing.
Other modifications are currently parsed into the datamodel, but are not handled.
Lipids with trivial names such as EPA should get a more clever system for translating into the internal data structures.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
.github/workflows/check-grammars.yml
actions/checkout v2
actions/setup-java v2
gradle/gradle-build-action v1.5.0
build.gradle
org.antlr:antlr4 4.9.2
The sum formula calculation for Ceramides is incorrect, since Ceramides have two additional Oxygens, which are not included in the head group definition of Goslin:
SP | Ceramides [SP02] | [2] | 2 | H | 1.0078 | [Cer, Ceramide]
This is in the following line of the table
Line 64 in 89dc3ae
To Reproduce
Expected behavior
The sum formula should contain two more Oxygens, it should read HO2. Thus, the full sum formula should return C30H59NO3 in case of Cer 30:1
Is your feature request related to a problem? Please describe.
At the moment, Glycosphingolipids and Globosides are not directly mapped to a Lipid Maps class or subclass.
Describe the solution you'd like
The should be mapped to their equivalent Lipid Maps class or subclass.
Implement a lipid report function for all the implementations as it is in rGoslin.
Hi,
I am currently using rgoslin release version 1.1.2
I was trying to use it to parse a Ubiquinone, namely Coenzyme Q10.
Unfortunately, I do not know what name should I use as an input.
library("rgoslin")
isValidLipidName("CoQ 10")
#> Warning in rcpp_is_valid_lipid_name(lipidName): Parsing of lipid name 'CoQ 10'
#> caused an exception: Lipid not found
#> [1] FALSE
isValidLipidName("Coenzyme Q10")
#> Warning in rcpp_is_valid_lipid_name(lipidName): Parsing of lipid name 'Coenzyme
#> Q10' caused an exception: Lipid not found
#> [1] FALSE
isValidLipidName("Ubiquinone-10")
#> Warning in rcpp_is_valid_lipid_name(lipidName): Parsing of lipid name
#> 'Ubiquinone-10' caused an exception: Lipid not found
#> [1] FALSE
Created on 2021-09-02 by the reprex package (v2.0.1)
Kindly advise.
Thank you.
Add support for "MG", "DG", "TG" in the old Goslin parser.
Describe the bug
Ether lipids are misclassified as Di-acyl-species
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The same works when using "PC P-18:1/18:1".
See result as screen shot: working.
Else: If the lipid name is not correct, there should be an error. But the O- is transferred without error.
Screenshots
If applicable, add screenshots to help explain your problem.
working:
Additional context
Thank you for your work. We plan to use Goslin starting with version 2.0.
For LUX score template SMILES, the naming conventions and list of lipid classes of Pauling, Hermansson, et al. PLoS One 2017 (http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0188394) was used.
Some Lipidclass names are not used in Lipidmaps or Swiss lipids and would be great to have as an additional alias or complete addition, such as:
SQDG ~ Sulfoquinovosyl diacylglycerol (https://www.lipidmaps.org/data/LMSDRecord.php?LMID=LMGL05010004)
aPG = n-acylated PG (no entry in DBs, fatty acid at the head group)
aPE = NAPE ~ additional name
DMPE = PE-NMe2 ~ additional name
MMPE = PE-NMe ~ additional name
PEt = PEth = PEtOH ~ Phosphatidylethanol without the amine part
Is your feature request related to a problem? Please describe.
I have 3 main problem.
Currently, names like "SM 21:0;2O/21:1" are not successfully parsed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.