1: Select the SwissLipids categories and their labels.

# Example 1 SELECT ?category ?label WHERE { ?category SWISSLIPID:rank SWISSLIPID:Category . ?category rdfs:label ?label . }Use

2: For a given (list of) lipid Species identifier(s) (e.g. SWISSLIPID:000056420 (Phosphatidylcholine (20:2)) SWISSLIPID:000308470 (Triacylglycerol (64:6))), return a list of the corresponding Molecular subspecies (if any), Structural subspecies (if any), and Isomeric subspecies. The query should return the lipid recommended names as well as identifiers. The list should be sorted by level in the hierarchy (Isomeric subspecies last). Future versions of this query should be generic enough to work from any start point (Species, Molecular subspecies, Structural subspecies). Recapitulates the “browse lipid analytes” function of the website (in batch).

# Example 2 SELECT ?startId ?startName ?rank ?id ?name WHERE { # query: list of SwissLipids Species identifiers VALUES ?startId { SWISSLIPID:000056420 SWISSLIPID:000308470 } ?startId SWISSLIPID:rank SWISSLIPID:Species . # SwissLipids Species name ?startId rdfs:label ?startName . # Hierarchical search ?id rdfs:subClassOf+ ?startId . ?id SWISSLIPID:rank ?rank . VALUES ?rank { SWISSLIPID:Isomeric_Subspecies SWISSLIPID:Molecular_Subspecies SWISSLIPID:Structural_Subspecies} ?id rdfs:label ?name . } ORDER BY DESC(?rank) ?startIdUse

3: For a given (list of) lipid Species identifiers (e.g. SWISSLIPID:000056493, Phosphatidylcholine (32:0)), return a list of the corresponding Molecular subspecies (if any), Structural subspecies (if any), and Isomeric subspecies (if any) which are associated with at least one citation (PMID: PubMed id). The query should return the lipid identifiers (?id), recommended names (?name), and PMIDs (?citation). Future versions of this query should be generic enough to work from any start point (Species, Molecular subspecies, Structural subspecies).

# Example 3 SELECT ?startId ?startLabel ?rank ?id ?name ?citation WHERE { # Queried lipid species VALUES ?startId { SWISSLIPID:000056493 } ?startId rdfs:label ?startLabel . ?id rdfs:subClassOf+ ?startId . VALUES ?rank { SWISSLIPID:Isomeric_Subspecie SWISSLIPID:Molecular_Subspecies SWISSLIPID:Structural_Subspecies} ?id SWISSLIPID:rank ?rank ; rdfs:label ?name ; SWISSLIPID:citation ?citation . } ORDER BY ?startId ?id DESC(?rank)Use

4: For a given (list of) lipid classes (e.g. SWISSLIPID:000399814 (Ceramide) SWISSLIPID:000000007 (Sphingomyelin (iso-d17:1(4E))), return a list of the corresponding Isomeric subspecies. The query should return the lipid recommended names (?name) as well as identifiers (?id). Recapitulates the “browse lipid classes” function of the website (in batch).

# Example 4 SELECT ?startId ?startName ?id ?name WHERE { VALUES ?startId { SWISSLIPID:000399814 SWISSLIPID:000000567} ?startId SWISSLIPID:rank SWISSLIPID:Class . ?startId rdfs:label ?startName . ?id rdfs:subClassOf+ ?startId . ?id SWISSLIPID:rank SWISSLIPID:Isomeric_Subspecies ; rdfs:label ?name . } ORDER BY ?startIdUse

5: For a given lipid (SWISSLIPID:000399814, Ceramide), return a list of all corresponding reactions (Rhea IDs and equation). This query does consider the hierarchy: it looks for reactions involving the specified lipid and/or its more specific forms.

# Example 5 SELECT ?startId ?startName ?id ?name ?chebi ?rhea ?rheaEquation WHERE { # SwissLipids query (list of) identifier(s) VALUES ?startId { SWISSLIPID:000399814 } # name ?startId rdfs:label ?startName . # Retrieve children lipids ?id rdfs:subClassOf* ?startId . ?id rdfs:label ?name . # ChEBI x-ref ?id owl:equivalentClass ?chebi . # federated query to Rhea SERVICE <https://sparql.rhea-db.org/sparql> { ?rhea rh:equation ?rheaEquation . ?rhea rh:side/rh:contains/rh:compound/rh:chebi ?chebi . } } ORDER BY ?startId ?idUse

6: For a given lipid (SWISSLIPID:000399814, Ceramide), return a list of all corresponding reactions (Rhea IDs and equation), as well as their enzymes as annotated in UniProtKB/Swiss-Prot) enzymes themselves (ID and protein name). This query does not consider the hierarchy: it looks for reactions and enzymes only for the specified lipid.

# Example 6 SELECT ?startId ?startName ?chebi ?rhea ?rheaEquation ?uniprot ?uniprotName WHERE { # SwissLipids query (list of) identifier(s) VALUES ?startId { SWISSLIPID:000399814 } # name ?startId rdfs:label ?startName . # ChEBI x-ref ?startId owl:equivalentClass ?chebi . # federated query to Rhea SERVICE <https://sparql.rhea-db.org/sparql> { ?rhea rh:equation ?rheaEquation . ?rhea rh:side/rh:contains/rh:compound/rh:chebi ?chebi . } # federated query to UniProt SERVICE <https://sparql.uniprot.org/sparql> { ?uniprot up:reviewed true . ?uniprot up:recommendedName/up:fullName ?uniprotName . ?uniprot up:annotation/up:catalyticActivity/up:catalyzedReaction ?rhea . } } ORDER BY ?startIdUse

7: For a given list of lipid Species, return a list of the corresponding Isomeric subspecies for that particular lipid that are linked to an enzyme as annotated in UniProtKB (UniProt AC and recommended name). This question would allow a user with (a list of) very high level MS identifications to immediately narrow them to the most likely potential lipid structures and protein targets as in this example: SWISSLIPID:000056871 / PC(O-36:4) (target species of interest) -> SWISSLIPID:000028143 / PC(O-16:0/20:4(5Z,8Z,11Z,14Z)) -> LPCAT4, PLA2G4A, PLA2G4C, PLA2G4F (target proteins)

# Example 7 SELECT ?startId ?startLabel ?id ?name WHERE { # Queried lipid species VALUES ?startId { SWISSLIPID:000056871 } ?startId rdfs:label ?startLabel . # Corresponding Isomeric subspecies ?id rdfs:subClassOf+ ?startId . ?id SWISSLIPID:rank SWISSLIPID:Isomeric_Subspecie ; rdfs:label ?name . # Mapped ChEBI ?id owl:equivalentClass ?chebi . # federated query to Rhea SERVICE <https://sparql.rhea-db.org/sparql> { ?rhea rh:equation ?rheaEquation . ?rhea rh:side/rh:contains/rh:compound/rh:chebi ?chebi . } # federated query to UniProt SERVICE <https://sparql.uniprot.org/sparql> { ?uniprot up:reviewed true . ?uniprot up:recommendedName/up:fullName ?uniprotName . ?uniprot up:annotation/up:catalyticActivity/up:catalyzedReaction ?rhea . } }Use

8: Retrieve mapping between SwissLipids lipid identifiers and their corresponding LIPID MAPS identifiers. Output should include SwissLipids identifier and name plus the LIPID MAPS identifier.

# Example 8 SELECT ?slm ?slmName ?lipidmaps WHERE { ?slm rdfs:label ?slmName . # Corresponding LIPID MAPS ?slm rdfs:seeAlso ?lipidmaps . FILTER (strstarts(str(?lipidmaps), str(lipidmaps:))) . } ORDER BY ?slmUse

9: For a given list of LIPID MAPS identifiers return the list of corresponding SwissLipids identifiers. Output should include SwissLipids identifier and name plus the LIPID MAPS identifier. This query considers only the cross references in the SwissLipids entry – it does not attempt to query other levels to find links between parents or children. Recapitulates one ID mapping function on the website

# Example 9 SELECT ?lipidmaps ?slm ?slmName WHERE { VALUES ?lipidmaps {lipidmaps:LMSP01020001 lipidmaps:LMST01010069 lipidmaps:LMST04030222} ?slm rdfs:label ?slmName . # Corresponding SwissLipds entries ?slm rdfs:seeAlso ?lipidmaps . } ORDER BY ?lipidmapsUse

10: Retrieve mapping between SwissLipids lipid identifiers and their corresponding HMDB identifiers. Output should include SwissLipids identifier and name plus the HMDB identifier.

# Example 10 SELECT ?slm ?slmName ?hmdb WHERE { ?slm rdfs:label ?slmName . # Corresponding HMDB entries ?slm rdfs:seeAlso ?hmdb . FILTER regex(str(?hmdb), "hmdb") . } ORDER BY ?slmUse

11: For a given list of HMDB identifiers return the list of corresponding SwissLipids identifiers. Output should include SwissLipids identifier and name plus the HMDB identifier. This query considers only the cross references in the SwissLipids entry – it does not attempt to query other levels to find links between parents or children. Recapitulates one ID mapping function on the website.

# Example 11 prefix HMDB:<http://identifiers.org/hmdb/> SELECT ?hmdb ?slm ?slmName WHERE { VALUES ?hmdb {HMDB:HMDB00269 HMDB:HMDB00032 HMDB:HMDB01383} ?slm rdfs:label ?slmName . # Corresponding SwissLipids entries ?slm rdfs:seeAlso ?hmdb . } ORDER BY ?hmdbUse

12: Retrieve mapping between SwissLipids lipid identifiers and their corresponding ChEBI identifiers. Output should include SwissLipids identifier and name plus the ChEBI identifier.

# Example 12 SELECT ?slm ?slmName ?chebi WHERE { ?slm rdfs:label ?slmName . # Corresponding ChEBI entries ?slm owl:equivalentClass ?chebi . } ORDER BY ?slmUse

13: For a given list of ChEBI identifiers return the list of corresponding SwissLipids identifiers. Output should include SwissLipids identifier and name plus the HMDB identifier. This query considers only the cross references in the SwissLipids entry – it does not attempt to query other levels to find links between parents or children. Recapitulates one ID mapping function on the website.

# Example 13 SELECT ?chebi ?slm ?slmName WHERE { VALUES ?chebi {CHEBI:70846 CHEBI:70771 CHEBI:70829} ?slm rdfs:label ?slmName . # Corresponding SwissLipids entries ?slm owl:equivalentClass ?chebi . } ORDER BY ?chebiUse

14: For a given list of LIPID MAPS identifiers return the list of corresponding ChEBI IDs. Output should include LIPID MAPS ID, the corresponding SwissLipids ID and name, plus the ChEBI ID. This query first identifies SwissLipids identifiers for a given list of HMDB identifiers. It then retrieves all children and from them the required LIPID MAPS identifiers. extends ex:9

# Example 14 SELECT ?lipidmaps ?slm ?slmName ?chebi WHERE { #VALUES ?lipidmaps {lipidmaps:LMSP01020001 lipidmaps:LMST01010069 lipidmaps:LMST04030222} ?slm rdfs:label ?slmName . # Corresponding SwissLipids entries ?slm rdfs:seeAlso ?lipidmaps . FILTER regex(str(?lipidmaps), "lipidmaps") . # Hierarchical search #?children rdfs:subClassOf* ?slm . #?children rdfs:label ?name . # Corresponding ChEBI entries ?slm owl:equivalentClass ?chebi . } ORDER BY ?lipidmaps ?slm ?chebiUse

15: For a given list of LipidX lipid identifiers return the list of published Isomeric subspecies. Output should include the LipidX ID and the corresponding SwissLipids ID(s) and name(s) plus PubMed ID(s). This query first identifies SwissLipids identifiers for a given list of LipidX identifiers. It then retrieves the corresponding Isomeric subspecies that are linked to at least one publication, and the corresponding PMIDs. extends ex:15

SELECT ?swisslipid ?lipidx ?isomericsubSwisslipid ?pubmed WHERE { VALUES ?hmdb {'HMDB00269' 'MDB00032'} BIND (IRI(CONCAT('http://identifiers.org/lipidx/', ?lipidx)) AS ?lipidxIRI) ?swisslipid rdfs:seeAlso ?lipidxIRI . ?swisslipid rdfs:subClassOf ?isomericsubSwisslipid . ?isomericsubSwisslipid SWISSLIPID:rank SWISSLIPID:Isomeric_Subspecies . ?isomericsubSwisslipid SWISSLIPID:citation ?pubmed . }Use

16: For a given list of LipidX lipid identifiers return the list of corresponding LIPID MAPS IDs. Output should include LipidX ID, the corresponding SwissLipids ID and name, plus the LIPID MAPS ID. This query first identifies SwissLipids identifiers for a given list of LipidX identifiers. It then retrieves the corresponding Isomeric subspecies and from them the required LIPID MAPS identifiers. Extends ID mapping to LipidX identifiers and by using the hierarchy. extends ex:15

SELECT ?TODO WHERE {?TODO a ?TODO}Use

17: For a given list of LipidX lipid identifiers return the list of corresponding HMDB IDs. Output should include LipidX ID, the corresponding SwissLipids ID and name, plus the HMDB ID. This query first identifies SwissLipids identifiers for a given list of LipidX identifiers. It then retrieves the corresponding Isomeric subspecies and from them the required HMDB identifiers. Extends ID mapping to LipidX identifiers and by using the hierarchy. extends ex:16

SELECT ?TODO WHERE {?TODO a ?TODO}Use

18: For a given list of LipidX lipid identifiers return the list of corresponding ChEBI IDs. Output should include LipidX ID, the corresponding SwissLipids ID and name, plus the HMDB ID. This query first identifies SwissLipids identifiers for a given list of LipidX identifiers. It then retrieves the required ChEBI identifiers from them. Extends ID mapping to LipidX identifiers and by using the hierarchy. extends ex:15

SELECT ?TODO WHERE {?TODO a ?TODO}Use

19: For a given list of LipidX lipid identifiers return the list of possible structures and relevant enzymes. Output should include the LipidX ID, the corresponding SwissLipids ID(s) and name(s), and the name(s) and ID(s) of the proteins. This query first identifies SwissLipids identifiers for a given list of LipidX identifiers. It then retrieves the corresponding Isomeric subspecies, and from them retrieves the list of reactions in which they participate, and the enzymes that catalyze them. extends ex:16

SELECT ?TODO WHERE {?TODO a ?TODO}Use

20: Returns the list of lipid analytes identified in a list of tissues (UBERON lipid identifiers). Output should include the corresponding SwissLipids ID(s) and name(s), and the name(s) and ID(s) of the tissues. A simple query which does not traverse the hierarchy.

SELECT ?TODO WHERE {?TODO a ?TODO}Use

21: Returns the list of possible lipid structures for a list of tissues (UBERON lipid identifiers). Output should include the corresponding SwissLipids ID(s) and name(s), and the name(s) and ID(s) of the tissues. This query first retrieves SwissLipids identifiers for a given list of UBERON identifiers. It then retrieves the corresponding Isomeric subspecies and returns those. Extends ex:20

SELECT ?TODO WHERE {?TODO a ?TODO}Use

22: Returns the list of possible lipid structures for a list of tissues (UBERON lipid identifiers), but considers only those lipids associated with one or more publications. Output should include the corresponding SwissLipids ID(s) and name(s), and the name(s) and ID(s) of the tissues. This query first retrieves SwissLipids identifiers for a given list of UBERON identifiers. It then retrieves the corresponding Isomeric subspecies and returns those that are linked to at least one PMID. As that PMID does not necessarily reflect association to the tissue in question we don’t return that. Extends ex:3, ex:23

SELECT ?TODO WHERE {?TODO a ?TODO}Use

23: Returns the list of lipid analytes associated with a list of one or more subcellular locations (GO cellular components). Output should include the corresponding SwissLipids ID(s) and name(s), and the name(s) and ID(s) of the cellular components.

SELECT ?TODO WHERE {?TODO a ?TODO}Use

24: Returns the list of possible lipid structures associated with a list of one or more subcellular locations (GO cellular components). Output should include the corresponding SwissLipids ID(s) and name(s), and the name(s) and ID(s) of the cellular components. This query first retrieves SwissLipids identifiers for a given list of GO cellular component identifiers. It then retrieves the corresponding Isomeric subspecies and returns those. Extends ex:25

SELECT ?TODO WHERE {?TODO a ?TODO}Use

25: Returns the list of possible lipid structures associated with a list of one or more subcellular locations (GO cellular components), but considers only those lipids associated with one or more publications. Output should include the corresponding SwissLipids ID(s) and name(s), and the name(s) and ID(s) of the cellular components. This query first identifies SwissLipids identifiers for a given list of GO cellular component identifiers. It then retrieves the corresponding Isomeric subspecies and returns those that are linked to at least one PMID. As that PMID does not necessarily reflect association to the cellular compartment in question we don’t return that. Extends ex:3, ex:25

SELECT ?TODO WHERE {?TODO a ?TODO}Use

26: Returns the list of lipid analytes associated with a list of one or more organisms (NCBI taxonomic IDs). Output should include the corresponding SwissLipids ID(s) and name(s), and the name(s) and ID(s) of the organisms.

SELECT ?TODO WHERE {?TODO a ?TODO}Use