SPARQL example query
140_disulfide_bonds_and_interchain_links: Find the disulfide bonds of human insulin (P01308), the pair of residue positions each one connects, and whether it links two different chains (e.g. the A and B chains of mature insulin) rather than two residues within the same chain
PREFIX up: <http://purl.uniprot.org/core/> PREFIX uniprotkb: <http://purl.uniprot.org/uniprot/> PREFIX faldo: <http://biohackathon.org/resource/faldo#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?annotation (GROUP_CONCAT(STR(?position); separator="-") AS ?positions) (SAMPLE(?rawComment) AS ?interchainNote) WHERE { uniprotkb:P01308 up:annotation ?annotation . ?annotation a up:Disulfide_Bond_Annotation ; up:range ?range . # Each disulfide bond annotation has one up:range per residue it # connects; a plain xsd:int position must be coerced with STR() before # GROUP_CONCAT can aggregate it. ?range faldo:begin/faldo:position ?position . # Absence of a comment means the bond is intra-chain; a comment # mentioning "Interchain" means it links two separate chains. OPTIONAL { ?annotation rdfs:comment ?rawComment } } GROUP BY ?annotationUse141_lipidation_sites_and_lipid_type: Find reviewed human proteins with a covalently attached lipid (e.g. palmitoylation, farnesylation, GPI-anchor) and the residue position and kind of lipid attached
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX faldo: <http://biohackathon.org/resource/faldo#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?protein ?position ?lipidationType WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Lipidation_Annotation ; rdfs:comment ?lipidationType ; up:range ?range . ?range faldo:begin/faldo:position ?position . }Use142_cross_linked_residues: Find reviewed human proteins with a cross-linked residue (e.g. a glycyl lysine isopeptide bond formed by ubiquitin or SUMO conjugation) and the residue position and nature of the cross-link
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX faldo: <http://biohackathon.org/resource/faldo#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?protein ?position ?crossLinkType WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Cross-link_Annotation ; rdfs:comment ?crossLinkType ; up:range ?range . ?range faldo:begin/faldo:position ?position . }Use143_protein_function_description: Retrieve the free-text function description of human tumor suppressor TP53 (P04637), as distinct from its more specific catalytic-activity, disease, or subunit annotations
PREFIX up: <http://purl.uniprot.org/core/> PREFIX uniprotkb: <http://purl.uniprot.org/uniprot/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?functionText WHERE { uniprotkb:P04637 up:annotation ?annotation . ?annotation a up:Function_Annotation ; rdfs:comment ?functionText . }Use144_mature_chain_after_signal_peptide_cleavage: Find reviewed human secreted proteins where the mature chain begins immediately after the signal peptide is cleaved off
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX faldo: <http://biohackathon.org/resource/faldo#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?protein ?signalPeptideEnd ?chainName ?chainBegin ?chainEnd WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?signalPeptideAnnotation , ?chainAnnotation . ?signalPeptideAnnotation a up:Signal_Peptide_Annotation ; up:range ?signalPeptideRange . ?signalPeptideRange faldo:end/faldo:position ?signalPeptideEnd . ?chainAnnotation a up:Chain_Annotation ; up:range ?chainRange . OPTIONAL { ?chainAnnotation rdfs:comment ?chainName } ?chainRange faldo:begin/faldo:position ?chainBegin ; faldo:end/faldo:position ?chainEnd . FILTER(?chainBegin = ?signalPeptideEnd + 1) }Use145_mitochondrial_transit_peptides: Find reviewed human proteins with a transit peptide targeting them to the mitochondrion, and the extent of that transit peptide
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX faldo: <http://biohackathon.org/resource/faldo#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?protein ?destination ?begin ?end WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Transit_Peptide_Annotation ; rdfs:comment ?destination ; up:range ?range . ?range faldo:begin/faldo:position ?begin ; faldo:end/faldo:position ?end . FILTER(CONTAINS(?destination, "Mitochondrion")) }Use146_propeptide_regions_removed_during_maturation: Find propeptide regions of reviewed human proteins that are removed during protein maturation, with their extent
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX faldo: <http://biohackathon.org/resource/faldo#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?protein ?description ?begin ?end WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Propeptide_Annotation ; up:range ?range . OPTIONAL { ?annotation rdfs:comment ?description } ?range faldo:begin/faldo:position ?begin ; faldo:end/faldo:position ?end . }Use147_enzymes_with_kinetic_parameters: Find reviewed enzymes with reported kinetic parameters (Michaelis-Menten constant Km and/or maximal velocity Vmax) and their reported values
PREFIX up: <http://purl.uniprot.org/core/> SELECT ?protein ?km ?vmax WHERE { ?protein a up:Protein ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Kinetics_Annotation . OPTIONAL { ?annotation up:measuredAffinity ?km } OPTIONAL { ?annotation up:measuredActivity ?vmax } }Use148_optimum_ph_for_enzyme_activity: Find the optimum pH reported for the activity of reviewed human enzymes
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 ?phDependence WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:PH_Dependence_Annotation ; rdfs:comment ?phDependence . }Use149_optimum_temperature_for_enzyme_activity: Find the optimum temperature or thermostability reported for the activity of reviewed human enzymes
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 ?temperatureDependence WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Temperature_Dependence_Annotation ; rdfs:comment ?temperatureDependence . }Use150_redox_potential_measurements: Find redox potential (E0) measurements reported for reviewed electron-transport proteins
PREFIX up: <http://purl.uniprot.org/core/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?protein ?redoxPotential WHERE { ?protein a up:Protein ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Redox_Potential_Annotation ; rdfs:comment ?redoxPotential . }Use151_membrane_orientation_of_subcellular_location: Find reviewed human proteins with a known membrane orientation (e.g. cytoplasmic side vs. lumenal side) for one of their subcellular locations
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> SELECT ?protein ?subcellularLocation ?orientation WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Subcellular_Location_Annotation ; up:locatedIn ?location . ?location up:cellularComponent ?component ; up:orientation ?orientationResource . ?component skos:prefLabel ?subcellularLocation . ?orientationResource skos:prefLabel ?orientation . }Use152_topology_of_subcellular_location: Find the membrane topology (e.g. peripheral membrane protein, lipid-anchor, multi-pass membrane protein) recorded for a subcellular location of reviewed human proteins
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> SELECT ?protein ?subcellularLocation ?topology WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Subcellular_Location_Annotation ; up:locatedIn ?location . ?location up:cellularComponent ?component ; up:topology ?topologyResource . ?component skos:prefLabel ?subcellularLocation . ?topologyResource skos:prefLabel ?topology . }Use153_protein_domain_extents: Find the extent (start and end position) of annotated protein domains on reviewed human proteins, using UniProt's own domain model rather than an InterPro/Pfam cross-reference
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX faldo: <http://biohackathon.org/resource/faldo#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?protein ?domainName ?begin ?end WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Domain_Extent_Annotation ; rdfs:comment ?domainName ; up:range ?range . ?range faldo:begin/faldo:position ?begin ; faldo:end/faldo:position ?end . }Use154_zinc_finger_regions: Find zinc finger regions in reviewed human DNA-binding proteins, with the zinc finger type and its extent
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX faldo: <http://biohackathon.org/resource/faldo#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?protein ?zincFingerType ?begin ?end WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Zinc_Finger_Annotation ; up:range ?range . OPTIONAL { ?annotation rdfs:comment ?zincFingerType } ?range faldo:begin/faldo:position ?begin ; faldo:end/faldo:position ?end . }Use155_coiled_coil_regions: Find coiled-coil regions annotated on reviewed human proteins and their extent
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX faldo: <http://biohackathon.org/resource/faldo#> SELECT ?protein ?begin ?end WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Coiled_Coil_Annotation ; up:range ?range . ?range faldo:begin/faldo:position ?begin ; faldo:end/faldo:position ?end . }Use156_compositionally_biased_regions: Find compositionally-biased (low-complexity) regions annotated on reviewed human proteins, with the kind of bias and its extent
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX faldo: <http://biohackathon.org/resource/faldo#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?protein ?bias ?begin ?end WHERE { ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:annotation ?annotation . ?annotation a up:Compositional_Bias_Annotation ; up:range ?range . OPTIONAL { ?annotation rdfs:comment ?bias } ?range faldo:begin/faldo:position ?begin ; faldo:end/faldo:position ?end . }Use157_polymorphisms_reported_for_a_protein: Find polymorphisms reported for proteins, i.e. population sequence variation described as such rather than as a disease-causing natural variant
PREFIX up: <http://purl.uniprot.org/core/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?protein ?polymorphism WHERE { ?protein a up:Protein ; up:annotation ?annotation . ?annotation a up:Polymorphism_Annotation ; rdfs:comment ?polymorphism . }Use158_citation_scope_via_citation_statement: Find the citations attached to human insulin (P01308) and, for each one, the scope of what it was cited for (e.g. which disease variant, which sequence region, or which experiment it documents). UniProt records the plain triple
159_excluded_proteomes_and_reason: Find proteomes that have been excluded from UniProtKB and the reason they were excluded (e.g. contaminated, derived from metagenome, unverified source organism)
PREFIX up: <http://purl.uniprot.org/core/> SELECT ?proteome ?exclusionReason WHERE { ?proteome a up:Excluded_Proteome ; up:exclusionReason ?exclusionReason . }Use160_non_reference_proteomes_and_strain: Find non-reference proteomes and the organism and strain they were sequenced from
PREFIX up: <http://purl.uniprot.org/core/> SELECT ?proteome ?organism ?strain WHERE { ?proteome a up:Non_Reference_Proteome ; up:organism ?organism . OPTIONAL { ?proteome up:strain ?strain } }Use161_taxa_sharing_a_rank: List all taxa in UniProt's taxonomy that have the taxonomic rank "genus", using the up:Rank resource rather than matching on a rank name string
PREFIX up: <http://purl.uniprot.org/core/> SELECT ?taxon ?scientificName WHERE { ?taxon up:rank up:Taxonomic_Rank_Genus ; up:scientificName ?scientificName . }Use162_common_taxon_of_a_uniref_cluster: Find the common taxon (the lowest taxon shared by all members) of the UniRef100 cluster that human TP53 (P04637) belongs to, and how many sequences that cluster groups together. up:commonTaxon is precomputed per UniRef cluster from its actual members, not a general-purpose lowest-common-ancestor function over two arbitrary organisms
PREFIX up: <http://purl.uniprot.org/core/> PREFIX uniref: <http://purl.uniprot.org/uniref/> SELECT ?cluster (COUNT(?member) AS ?memberCount) (SAMPLE(?rawCommonTaxonName) AS ?commonTaxonName) WHERE { BIND(uniref:UniRef100_P04637 AS ?cluster) ?cluster up:member ?member ; up:commonTaxon ?commonTaxon . ?commonTaxon up:scientificName ?rawCommonTaxonName . } GROUP BY ?clusterUse163_canonical_isoform_does_not_need_to_be_dash_1: Find reviewed proteins whose canonical isoform does not end in -1, ordered by the highest isoform number used as the canonical sequence. UniProt's up:sequence points to whichever isoform was chosen as canonical, which is not always isoform -1
PREFIX up: <http://purl.uniprot.org/core/> PREFIX uniprotkb: <http://purl.uniprot.org/uniprot/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> SELECT ?protein (?sequence AS ?canonicalIsoform) ?isoformCount WHERE { GRAPH <http://sparql.uniprot.org/uniprot> { ?protein up:reviewed true . ?protein up:sequence ?sequence . ?sequence a up:Simple_Sequence . OPTIONAL { ?sequence a up:External_Sequence . BIND(true AS ?isExternalSequence) BIND(SUBSTR(STR(?protein), STRLEN(STR(uniprotkb:))) AS ?proteinAc) FILTER(CONTAINS(STR(?sequence), ?proteinAc)) } FILTER(?isExternalSequence || !BOUND(?isExternalSequence)) } BIND(xsd:int(STRAFTER(STR(?sequence), "-")) AS ?isoformCount) } ORDER BY DESC(?isoformCount)Use164_batch_go_annotations_from_mnemonics: Given a batch of UniProt mnemonic identifiers (Entry Names, e.g. MTMR1_HUMAN) rather than accessions, resolve each to its protein and retrieve its GO annotations in one query. This is the classic biomaRt batch-lookup pattern where a SPARQL VALUES clause replaces getBM(), and unlike biomaRt it naturally returns one row per (protein, GO term) pair instead of dropping or truncating the one-to-many result
PREFIX up: <http://purl.uniprot.org/core/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX GO: <http://purl.obolibrary.org/obo/GO_> SELECT ?mnemonic ?protein ?goTerm ?goLabel WHERE { VALUES ?mnemonic { "MTMR1_HUMAN" "P53_HUMAN" "INS_HUMAN" } ?protein up:mnemonic ?mnemonic ; up:classifiedWith ?goTerm . ?goTerm rdfs:label ?goLabel . FILTER(STRSTARTS(STR(?goTerm), STR(GO:))) }Use165_reviewed_proteins_for_a_go_term: Given a GO term, find all reviewed human proteins annotated with it. This is the reverse direction of retrieving GO terms for a protein, matching the classic BioMart workflow of building an enrichment-analysis candidate or background gene set from a GO id filter
PREFIX up: <http://purl.uniprot.org/core/> PREFIX taxon: <http://purl.uniprot.org/taxonomy/> PREFIX GO: <http://purl.obolibrary.org/obo/GO_> SELECT ?protein WHERE { # GO:0006915 is "apoptotic process" ?protein a up:Protein ; up:organism taxon:9606 ; up:reviewed true ; up:classifiedWith GO:0006915 . }Use