Replicon and genes
This page shows you basic information about genes that encode a protein, and the replicon (chromosome, plasmid, etc.) those genes sit on.
Gene names
The name(s) of the gene(s) that encode a protein are linked with an encodedBy property. There are four categories of gene names:
- The primary gene name:
skos:prefLabel. - Synonyms:
skos:altLabel. - Ordered locus names (OLN):
locusName. - ORF names:
orfName.
Resources representing a gene are members of the up:Gene class.
Example data (Turtle) — edit it, then re-run any query below
base <http://purl.uniprot.org/uniprot/>
prefix up: <http://purl.uniprot.org/core/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
<Q0JNS6>
a up:Protein ;
up:encodedBy <Q0JNS6#51304A4E53360019>, <Q0JNS6#51304A4E5336001A>, <Q0JNS6#51304A4E5336001B> .
<Q0JNS6#51304A4E53360019>
rdf:type up:Gene ;
skos:prefLabel "CAM1-1" ;
skos:altLabel "CAM1" ;
up:locusName "Os03g0319300", "LOC_Os03g20370" ;
up:orfName "OsJ_010214" .
<Q0JNS6#51304A4E5336001A>
rdf:type up:Gene ;
skos:prefLabel "CAM1-2" ;
skos:altLabel "CAM" ;
up:locusName "Os07g0687200", "LOC_Os07g48780" ;
up:orfName "OJ1150_E04.120-1", "OJ1200_C08.124-1", "OsJ_024630" .
<Q0JNS6#51304A4E5336001B>
rdf:type up:Gene ;
skos:prefLabel "CAM1-3" ;
up:locusName "Os01g0267900", "LOC_Os01g16240" ;
up:orfName "OsJ_001186", "P0011D01.22" .Selecting encoding genes
Adapted from sparql-examples UniProt/94.
PREFIX up: <http://purl.uniprot.org/core/>
SELECT ?protein ?gene
WHERE {
?protein a up:Protein ;
up:encodedBy ?gene .
}Selecting the recommended gene names
Adapted from sparql-examples UniProt/96.
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?gene ?recommendedGeneName
WHERE {
?protein a up:Protein ;
up:encodedBy ?gene .
?gene skos:prefLabel ?recommendedGeneName .
}Selecting alternative gene names
Adapted from sparql-examples UniProt/95.
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?gene ?altGeneName
WHERE {
?protein a up:Protein ;
up:encodedBy ?gene .
?gene skos:altLabel ?altGeneName .
}Selecting ordered locus names
PREFIX up: <http://purl.uniprot.org/core/>
SELECT ?gene ?oln
WHERE {
?protein a up:Protein ;
up:encodedBy ?gene .
?gene up:locusName ?oln .
}Selecting ORF names
Adapted from sparql-examples UniProt/97.
PREFIX up: <http://purl.uniprot.org/core/>
SELECT ?gene ?orfName
WHERE {
?protein a up:Protein ;
up:encodedBy ?gene .
?gene up:orfName ?orfName .
}Replicons
A protein’s gene sits on a replicon - a chromosome, plasmid, or other replicating DNA molecule. UniProt links a protein to a proteome component through the proteome property; the replicon name is encoded after the # in that IRI.
Example data (Turtle) — edit it, then re-run any query below
base <http://purl.uniprot.org/uniprot/>
prefix up: <http://purl.uniprot.org/core/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
<Q71RH2> rdf:type up:Protein ;
up:reviewed true ;
up:created "2005-04-12"^^xsd:date ;
up:modified "2021-04-07"^^xsd:date ;
up:version 130 ;
up:mnemonic "TLC3B_HUMAN" ;
up:proteome <http://purl.uniprot.org/proteomes/UP000005640#Chromosome%2016> .PREFIX up: <http://purl.uniprot.org/core/>
SELECT ?protein ?replicon
WHERE {
?protein a up:Protein ;
up:proteome ?proteomeData .
BIND(strafter(str(?proteomeData), "#") AS ?replicon)
}The query above works against any small example dataset, but “reference proteome” and “reviewed” are real UniProtKB-wide classifications a local fixture can’t meaningfully stand in for - so here’s the real version, restricted to human, running live against sparql.uniprot.org:
This query runs live against the real public endpoint https://sparql.uniprot.org/sparql — there's no local example data here, so it makes a real network request and results (and response time) depend on that service.
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX keywords: <http://purl.uniprot.org/keywords/>
PREFIX taxon: <http://purl.uniprot.org/taxonomy/>
SELECT DISTINCT ?proteomeData
WHERE {
# reviewed entries (UniProtKB/Swiss-Prot), restricted to Human taxid,
# reference proteome
?uniprot up:reviewed true .
?uniprot up:organism taxon:9606 .
?uniprot up:classifiedWith keywords:1185 .
?uniprot up:proteome ?proteomeData .
BIND(strbefore(str(?proteomeData), "#") AS ?proteome)
BIND(strafter(str(?proteomeData), "#") AS ?replicon)
}
LIMIT 3Organelles and plasmids
If a gene is located in an organelle other than the nucleus, and/or on a plasmid rather than a chromosome, the gene location is stored with the encodedIn property. If a plasmid has several names, they’re listed as multiple rdfs:label properties.
Example data (Turtle) — edit it, then re-run any query below
base <http://purl.uniprot.org/uniprot/>
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#>
<Q01529>
a up:Protein ;
up:encodedIn up:Mitochondrion, <Q01529#SIP29DF58> .
<Q01529#SIP29DF58>
rdf:type up:Plasmid ;
rdfs:label "pAL2-1" .PREFIX up: <http://purl.uniprot.org/core/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?protein ?plasmidOrOrganelle ?label
WHERE {
?protein a up:Protein ;
up:encodedIn ?plasmidOrOrganelle .
OPTIONAL {
?plasmidOrOrganelle rdfs:label ?label .
}
}Sometimes it’s known that a gene is located on a plasmid, but the plasmid’s name is unknown. The example below shows how this is represented.
Example data (Turtle) — edit it, then re-run any query below
base <http://purl.uniprot.org/uniprot/>
prefix up: <http://purl.uniprot.org/core/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
<Q7BS32>
a up:Protein ;
up:encodedIn <Q7BS32#51374253333200E> .
<Q7BS32#51374253333200E>
rdf:type up:Plasmid .PREFIX up: <http://purl.uniprot.org/core/>
SELECT ?protein ?type
WHERE {
?protein a up:Protein ;
up:encodedIn ?plasmidOrOrganelle .
OPTIONAL {
?plasmidOrOrganelle a ?type .
}
}