SPARQL example query
216_human_proteins_by_existence_evidence: Break down reviewed human proteins by their protein-existence evidence level (up:existence): how many are 'very well characterized' with direct evidence at the protein level, as opposed to only evidence at the transcript level, inferred from homology, predicted, or uncertain
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> SELECT ?existence (COUNT(*) AS ?proteinCount) WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:existence ?existence . } GROUP BY ?existence ORDER BY DESC(?proteinCount)Use217_proteins_in_a_cancer_pathway: Find reviewed human proteins that are part of a cancer-related Reactome pathway (matched by the pathway's own name), using the pathway cross-reference's rdfs:comment as the pathway's human-readable name
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?protein ?pathway ?pathwayName WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; rdfs:seeAlso ?pathway . ?pathway up:database <http://purl.uniprot.org/database/Reactome> ; rdfs:comment ?pathwayName . FILTER(CONTAINS(?pathwayName, "Cancer")) }Use218_protein_amino_acid_composition: Count how many times each of the 20 standard amino acids occurs in human TP53's (P04637) canonical sequence, using STRLEN(sequence) minus STRLEN(sequence with that residue letter removed) as an amino-acid-counting trick rather than a per-position scan. Note: for performance over a larger set rewrite this as a huge union.
PREFIX up: <http://purl.uniprot.org/core/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?residue ?count WHERE { <http://purl.uniprot.org/uniprot/P04637> up:sequence ?sequence . ?sequence a up:Simple_Sequence ; rdf:value ?seq . VALUES ?residue { "A" "R" "N" "D" "C" "Q" "E" "G" "H" "I" "L" "K" "M" "F" "P" "S" "T" "W" "Y" "V" } BIND(STRLEN(?seq) - STRLEN(REPLACE(?seq, ?residue, "")) AS ?count) } ORDER BY DESC(?count)Use219_human_gene_count_vs_isoform_count: Compare the number of reviewed human UniProtKB entries (one canonical accession per gene) to the number of distinct sequence resources those entries carry (the canonical sequence plus every annotated splice isoform), showing directly why searching human in UniProt returns far more sequences than there are protein-coding genes — the full picture also includes unreviewed (TrEMBL) entries on top of this. This is also due to there being more than one 'genome' source (proteome).
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> SELECT (COUNT(DISTINCT ?gene) AS ?reviewedGenes) (COUNT(DISTINCT ?isoformSequence) AS ?distinctSequences) WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:sequence ?isoformSequence . OPTIONAL { ?protein up:encodedBy ?gene } }Use221_ddbj_to_uniparc: Using a "genome" identifier in INSDC use the DDBJ sparql endpoint to find the CDS identifiers and link these to UniParc records
PREFIX up: <http://purl.uniprot.org/core/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX insdc: <http://ddbj.nig.ac.jp/ontologies/nucleotide/> PREFIX faldo: <http://biohackathon.org/resource/faldo#> SELECT ?ddbj ?emblCds ?uniparc WHERE { SERVICE <https://rdfportal.org/ddbj/sparql> { VALUES ?ddbj { <http://identifiers.org/insdc/OQ416313.1> } GRAPH <http://rdfportal.org/dataset/ddbj>{ ?ddbj rdf:type insdc:Entry. ?ddbj insdc:sequence ?sequence . ?position faldo:reference ?sequence . ?region faldo:begin ?position . ?cds faldo:location ?region ; a insdc:Coding_Sequence ; rdfs:seeAlso ?potentialProtein . BIND(STR(?potentialProtein) AS ?potentialProteinStr) FILTER(STRSTARTS(?potentialProteinStr, 'http://identifiers.org/ncbiprotein/')) BIND(IRI(CONCAT('http://purl.uniprot.org/embl-cds/', SUBSTR(?potentialProteinStr, 36))) AS ?emblCds) } } ?uniparc up:sequenceFor ?emblCds . }Use62_diseases_involving_enzymes: Find diseases that are thought to be related to enzymes
PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX up: <http://purl.uniprot.org/core/> SELECT ?disease ?diseaseLabel WHERE { ?protein up:enzyme|up:annotation/up:catalyticActivity/up:enzymeClass ?enzyme ; up:annotation ?diseaseAnnotation . ?diseaseAnnotation a up:Disease_Annotation ; up:disease ?disease . ?disease skos:prefLabel ?diseaseLabel . }Use63_diseases_involving_enzymes_located_in_mitochondrion: Find (Human genetic) diseases that are thought to be related to Enzymes, known to be located in the Mitochondrion
PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX up: <http://purl.uniprot.org/core/> SELECT DISTINCT ?disease WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:annotation ?disease_annotation , ?subcellularLocation . { ?protein up:enzyme [] . } UNION { ?protein up:annotation/a up:Catalytic_Activity_Annotation . } ?disease_annotation a up:Disease_Annotation ; up:disease ?disease . ?subcellularLocation a up:Subcellular_Location_Annotation ; up:locatedIn ?location . ?location up:cellularComponent ?component . ?component up:partOf* <http://purl.uniprot.org/locations/173> . }Use64_diseases_related_to_mutation_in_active_site: Find (Human Genetic) diseases, that are related to a natural variant on the active site of an enzyme.
PREFIX faldo: <http://biohackathon.org/resource/faldo#> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX up: <http://purl.uniprot.org/core/> SELECT DISTINCT ?disease WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:annotation ?disease_annotation, ?active_site_annotation, ?natural_variant_annotation . { ?protein up:enzyme [] . } UNION { ?protein up:annotation/a up:Catalytic_Activity_Annotation . } ?disease_annotation a up:Disease_Annotation ; up:disease ?disease . ?active_site_annotation a up:Active_Site_Annotation ; up:range ?active_site_range . ?active_site_range faldo:begin ?active_site_begin . ?active_site_begin faldo:position ?active_site_position ; faldo:reference ?sequence . ?natural_variant_annotation a up:Natural_Variant_Annotation ; up:range ?natural_variant_range ; skos:related ?disease . ?natural_variant_range faldo:begin ?natural_variant_begin ; faldo:end ?natural_variant_end . ?natural_variant_begin faldo:position ?natural_variant_begin_position . ?natural_variant_end faldo:position ?natural_variant_end_position ; faldo:reference ?sequence . FILTER(?natural_variant_begin_position >= ?active_site_position && ?active_site_position <= ?natural_variant_end_position) }Use65_distinct_extinct_organisms_in_uniprotkb: How many distinct extinct organisms are represented in UniProtKB
PREFIX keywords: <http://purl.uniprot.org/keywords/> PREFIX up: <http://purl.uniprot.org/core/> SELECT ?taxon (SAMPLE(?name) AS ?anName) (COUNT(DISTINCT ?protein) AS ?entriesPerExtinctTaxon) WHERE { GRAPH<http://sparql.uniprot.org/taxonomy>{ ?taxon a up:Taxon ; up:scientificName ?name . } ?protein up:organism ?taxon ; up:classifiedWith keywords:952 . } GROUP BY ?taxon ORDER BY ?taxonUse66_distinct_rhea_transport_in_reviewed_uniprot: Count number of unique Rhea transport reactions annotated in reviewed UniProtKB entries.
PREFIX rh: <http://rdf.rhea-db.org/> PREFIX up: <http://purl.uniprot.org/core/> SELECT (COUNT(DISTINCT ?rhea) AS ?distinctRheaTransportInUniProt) WHERE { GRAPH <https://sparql.rhea-db.org/rhea> { ?rhea rh:isTransport true . } ?protein up:annotation ?ann . ?ann up:catalyticActivity ?ca . ?ca up:catalyzedReaction ?rhea . }Use67_draft_human_metabolome: Generate a draft human metabolome
PREFIX chemrof: <https://w3id.org/chemrof/> PREFIX rh: <http://rdf.rhea-db.org/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX up: <http://purl.uniprot.org/core/> SELECT ?uniprot ?mnemonic ?rhea ?chebi ?smiles ?inchiKey WHERE { ?uniprot up:annotation/up:catalyticActivity/up:catalyzedReaction ?rhea ; up:organism taxon:9606 ; up:mnemonic ?mnemonic . SERVICE <https://sparql.rhea-db.org/sparql> { ?rhea rh:side/rh:contains/rh:compound ?compound . ?compound (rh:chebi|(rh:reactivePart/rh:chebi)|rh:underlyingChebi) ?chebi . } ?chebi chemrof:smiles_string ?smiles ; chemrof:inchi_key_string ?inchiKey . }Use70_enzymes_interacting_with_molecules_similar_to_dopamine: Look for enzymes catalyzing reactions with molecules similar to dopamine.
PREFIX CHEBI: <http://purl.obolibrary.org/obo/CHEBI_> PREFIX rh: <http://rdf.rhea-db.org/> PREFIX sachem: <http://bioinfo.uochb.cas.cz/rdf/v1.0/sachem#> PREFIX up: <http://purl.uniprot.org/core/> SELECT ?protein ?rhea ?chebi WHERE { # Use the smiles of dopamine CHEBI:18243 SERVICE <https://idsm.elixir-czech.cz/sparql/endpoint/chebi>{ ?chebi sachem:similarCompoundSearch [ sachem:query "NCCc1ccc(O)c(O)c1" ] . } GRAPH<https://sparql.rhea-db.org/rhea>{ ?rhea rh:side/rh:contains/rh:compound ?compound . ?compound (rh:chebi|(rh:reactivePart/rh:chebi)|rh:underlyingChebi) ?chebi . } ?protein up:reviewed true ; up:annotation ?caa . ?caa up:catalyticActivity/up:catalyzedReaction ?rhea . }Use71_enzymes_interacting_with_molecules_similar_to_dopamine_with_variants_related_to_disease: Look for enzymes catalyzing reactions with molecules similar to dopamine, with natural variants related to a disease.
PREFIX CHEBI: <http://purl.obolibrary.org/obo/CHEBI_> PREFIX rh: <http://rdf.rhea-db.org/> PREFIX sachem: <http://bioinfo.uochb.cas.cz/rdf/v1.0/sachem#> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX up: <http://purl.uniprot.org/core/> SELECT ?protein ?rhea ?chebi ?disease WHERE { # Use the smiles of dopamine CHEBI:18243 SERVICE <https://idsm.elixir-czech.cz/sparql/endpoint/chebi>{ ?chebi sachem:similarCompoundSearch [ sachem:query "NCCc1ccc(O)c(O)c1" ] . } GRAPH<https://sparql.rhea-db.org/rhea>{ ?rhea rh:side/rh:contains/rh:compound ?compound . ?compound (rh:chebi|(rh:reactivePart/rh:chebi)|rh:underlyingChebi) ?chebi . } ?protein up:reviewed true ; up:annotation ?caa, ?natural_variant_annotation, ?disease_annotation . ?caa up:catalyticActivity/up:catalyzedReaction ?rhea . ?natural_variant_annotation a up:Natural_Variant_Annotation ; skos:related ?disease . ?disease_annotation a up:Disease_Annotation ; up:disease ?disease . }Use72_enzymes_mapping_to_PDB: Select a mapping of UniProtKB enzymes to PDB entries using the UniProtKB cross-references to the PDB database.
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX up: <http://purl.uniprot.org/core/> SELECT ?protein ?db WHERE { ?protein a up:Protein . ?protein rdfs:seeAlso ?db . ?db up:database <http://purl.uniprot.org/database/PDB> . { ?protein up:enzyme ?enzyme . } UNION { ?protein up:annotation/rdf:type up:Catalytic_Activity_Annotation . } }Use73_enzymes_related_to_protein: Select Enzyme Classification (EC) classes that have a protein associated to them
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX up: <http://purl.uniprot.org/core/> SELECT DISTINCT ?enzyme WHERE { ?protein a up:Protein . { ?protein up:enzyme ?enzyme . } UNION { ?protein up:annotation ?caa . ?caa a up:Catalytic_Activity_Annotation . ?caa up:catalyticActivity ?ca . ?ca up:enzymeClass ?enzyme } UNION { ?protein up:component/up:enzyme ?enzyme . } UNION { ?protein up:domain/up:enzyme ?enzyme . } }Use74_enzymes_with_at_least_two_transmembrane_domains: Find Hydrolases (enzymes that catalyse the hydrolysis of various bonds) that have at least two transmembrane domains
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX up: <http://purl.uniprot.org/core/> SELECT ?protein WHERE { ?protein up:enzyme|up:annotation/up:catalyticActivity/up:enzymeClass ?enzymeClass ; up:annotation ?transMembraneAnnotation . ?enzymeClass rdfs:subClassOf <http://purl.uniprot.org/enzyme/3.-.-.-> . ?transMembraneAnnotation a up:Transmembrane_Annotation . } GROUP BY ?protein HAVING (COUNT(DISTINCT ?transMembraneAnnotation) >= 2)Use75_enzymes_with_at_least_two_transmembrane_domains_PDB_xray: Find enzymes that have at least two transmembrane domains, whose 3D structure is elucidated through X-Ray analysis
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX up: <http://purl.uniprot.org/core/> SELECT ?protein WHERE { ?protein a up:Protein ; up:annotation ?transmembrane_annotation ; rdfs:seeAlso ?wwPDB . { ?protein up:enzyme ?enzyme . } UNION { ?protein up:annotation/a up:Catalytic_Activity_Annotation . } ?wwPDB up:database <http://purl.uniprot.org/database/PDB> ; up:method up:X-Ray_Crystallography . ?transmembrane_annotation a up:Transmembrane_Annotation . } GROUP BY ?protein HAVING(COUNT(DISTINCT ?transmembrane_annotation ) >= 2)Use76_enzymes_with_mutagenesis_affecting_active_site: Find enzymes, where the active site is a region affected by mutagenesis and show the comment regarding mutagenesis effect.
PREFIX faldo: <http://biohackathon.org/resource/faldo#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX up: <http://purl.uniprot.org/core/> SELECT ?protein ?mutagenesisBeginPosition ?activeSiteBeginPosition ?mutagenesisRangeEndPosition ?mutagenesisComment WHERE { ?protein up:annotation ?activeSiteAnnotation , ?mutagenesisAnnotation . ?mutagenesisAnnotation a up:Mutagenesis_Annotation ; up:range ?mutagenesisRange ; rdfs:comment ?mutagenesisComment . ?activeSiteAnnotation a up:Active_Site_Annotation ; up:range ?activeSiteRange . ?activeSiteRange faldo:begin ?activeSiteBegin . ?activeSiteBegin faldo:position ?activeSiteBeginPosition ; faldo:reference ?sequence . ?mutagenesisRange faldo:begin ?mutagenesisRangeBegin ; faldo:end ?mutagenesisRangeEnd . ?mutagenesisRangeBegin faldo:position ?mutagenesisBeginPosition ; faldo:reference ?sequence . ?mutagenesisRangeEnd faldo:position ?mutagenesisRangeEndPosition . FILTER(?mutagenesisBeginPosition <= ?activeSiteBeginPosition && ?activeSiteBeginPosition <= ?mutagenesisRangeEndPosition) }Use78_genetic_disease_related_proteins: List all UniProtKB proteins annotated to be related to a genetic disease.
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX up: <http://purl.uniprot.org/core/> SELECT ?uniprot ?disease ?diseaseComment ?mim WHERE { GRAPH <http://sparql.uniprot.org/uniprot> { ?uniprot a up:Protein ; up:annotation ?diseaseAnnotation . ?diseaseAnnotation up:disease ?disease . } GRAPH <http://sparql.uniprot.org/diseases> { ?disease a up:Disease ; rdfs:comment ?diseaseComment . OPTIONAL { ?disease rdfs:seeAlso ?mim . ?mim up:database <http://purl.uniprot.org/database/MIM> . } } }Use79_mnemonic_also_known_as_id: List all UniProtKB protein ID (mnemonic) for current UniProtKB entries.
PREFIX up: <http://purl.uniprot.org/core/> SELECT ?uniprot ?mnemonic WHERE { GRAPH <http://sparql.uniprot.org/uniprot> { ?uniprot a up:Protein ; up:mnemonic ?mnemonic . } }Use80_obsolete_mnemonic_also_known_as_id: List all UniProtKB protein ID (mnemonic) that where used in the past for current UniProtKB entries.
PREFIX up: <http://purl.uniprot.org/core/> SELECT ?uniprot ?obsoleteMnemonic WHERE { GRAPH <http://sparql.uniprot.org/uniprot> { ?uniprot a up:Protein ; up:oldMnemonic ?obsoleteMnemonic . } }Use81_rhea_reactions_annotated_as_experimental_and_only_small_molecules: Find all Rhea (only small molecule) that are used in UniProtKB where the annotation has a paper and is tagged having experimental evidence.
PREFIX ECO: <http://purl.obolibrary.org/obo/ECO_> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rh: <http://rdf.rhea-db.org/> PREFIX up: <http://purl.uniprot.org/core/> SELECT ?rhea ?catalyzedReaction ?source WHERE { { SELECT DISTINCT ?rhea WHERE { GRAPh<https://sparql.rhea-db.org/rhea> { ?rhea rdfs:subClassOf rh:Reaction . ?rhea rh:side/rh:contains/rh:compound ?compound2 . ?uc rdfs:subClassOf rh:Compound . } ?compound2 rdfs:subClassOf ?uc . BIND(IF(?uc = rh:SmallMolecule, 0, 1) AS ?c) } GROUP BY ?rhea HAVING (SUM(?c) = 0) } ?catalyzedReaction up:catalyzedReaction ?rhea . ?reif rdf:object ?catalyzedReaction ; up:attribution ?attr . ?attr up:evidence ECO:0000269 ; up:source ?source . ?source a up:Citation . }Use82_rhea_reactions_associated_with_ec_in_uniprotkb: List Rhea reactions associated with an EC (enzyme classification).
PREFIX up: <http://purl.uniprot.org/core/> SELECT ?rhea ?EC WHERE { ?CatalyticActivity up:catalyzedReaction ?rhea ; up:enzymeClass ?EC . }Use83_rhea_reactions_not_associated_with_ec_in_uniprotkb: List Rhea reactions that are not associated with an EC (enzyme classification).
PREFIX up: <http://purl.uniprot.org/core/> SELECT ?rhea ?EC WHERE { ?CatalyticActivity up:catalyzedReaction ?rhea . MINUS { ?CatalyticActivity up:enzymeClass ?EC . } }Use84_taxonomy_hierarchy: Find all taxonomic records that describe species of the genus Homo.
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX up: <http://purl.uniprot.org/core/> SELECT ?species ?genus WHERE { BIND(taxon:9605 AS ?genus) ?species a up:Taxon ; up:rank up:Species ; rdfs:subClassOf ?genus . ?genus a up:Taxon ; up:rank up:Genus . }Use85_taxonomy_host: Find taxon records that are known to have part of their life cycle in other organisms (e.g. parasite, symbiont, infection)
PREFIX up: <http://purl.uniprot.org/core/> SELECT ?virus ?host WHERE { ?virus up:host ?host . }Use