Dihydroorotate oxidase
Identifiers
EC number 1.3.3.1
CAS number 9029-03-2
Databases
IntEnz IntEnz view
BRENDA BRENDA entry
ExPASy NiceZyme view
KEGG KEGG entry
MetaCyc metabolic pathway
PRIAM profile
PDB structures RCSB PDB PDBe PDBsum
Gene Ontology AmiGO / EGO
Dihydroorotate dehydrogenase from E. coli
Identifiers
Symbol DHO_dh
Pfam PF01180
InterPro IPR001295
PROSITE PDOC00708
SCOP 1dor
SUPERFAMILY 1dor
OPM superfamily 59
OPM protein 1uum
CDD cd02810
Human dihydroorotate dehydrogenase
Identifiers
Symbol DHODH
Entrez 1723
HUGO 2867
OMIM 126064
PDB 1D3G
RefSeq NM_001361
UniProt Q02127
Other data
EC number 1.3.3.1
Locus Chr. 16 q22

Dihydroorotate dehydrogenase (DHODH) is an enzyme that in humans is encoded by the DHODH gene on chromosome 16. The protein encoded by this gene catalyzes the fourth enzymatic step, the ubiquinone-mediated oxidation of dihydroorotate to orotate, in de novo pyrimidine biosynthesis. This protein is a mitochondrial protein located on the outer surface of the inner mitochondrial membrane (IMM).[1] Inhibitors of this enzyme are used to treat autoimmune diseases such as rheumatoid arthritis.[2]

Structure

DHODH can vary in cofactor content, oligomeric state, subcellular localization, and membrane association. An overall sequence alignment of these DHODH variants presents two classes of DHODHs: the cytosolic Class 1 and the membrane-bound Class 2. In Class 1 DHODH, a basic cysteine residue catalyzes the oxidation reaction, whereas in Class 2, the serine serves this catalytic function. Structurally, Class 1 DHODHs can also be divided into two subclasses, one of which forms homodimers and uses fumarate as its electron acceptor, and the other which forms heterotetramers and uses NAD+ as its electron acceptor. This second subclass contains an addition subunit (PyrK) containing an iron-sulfur cluster and a flavin adenine dinucleotide (FAD). Meanwhile, Class 2 DHODHs use coenzyme Q/ubiquinones for their oxidant.[2] In higher eukaryotes, this class of DHODH contains an N-terminal bipartite signal comprising a cationic, amphipathic mitochondrial targeting sequence of about 30 residues and a hydrophobic transmembrane sequence. The targeting sequence is responsible for this protein’s localization to the IMM, possibly from recruiting the import apparatus and mediating ΔΨ-driven transport across the inner and outer mitochondrial membranes, while the transmembrane sequence is essential for its insertion into the IMM.[2][3] This sequence is adjacent to a pair of α-helices, α1 and α2, which are connected by a short loop. Together, this pair forms a hydrophobic funnel that is suggested to serve as the insertion site for ubiquinone, in conjunction with the FMN binding cavity at the C-terminal.[2] The two terminal domains are directly connected by an extended loop. The C-terminal domain is the larger of the two and folds into a conserved α/β-barrel structure with a core of eight parallel β-strands surrounded by eight α helices.[2][4]

Function

Human DHODH is a ubiquitous FMN flavoprotein. In bacteria (gene pyrD), it is located on the inner side of the cytosolic membrane. In some yeasts, such as in Saccharomyces cerevisiae (gene URA1), it is a cytosolic protein, whereas, in other eukaryotes, it is found in the mitochondria.[5] It is also the only enzyme in the pyrimidine biosynthesis pathway located in the mitochondria rather than the cytosol.[4]

Mechanism

In mammalian species, DHODH catalyzes the fourth step in de novo pyrimidine biosynthesis, which involves the ubiquinone-mediated oxidation of dihydroorotate to orotate and the reduction of FMN to dihydroflavin mononucleotide (FMNH2):

(S)-dihydroorotate + O2 \rightleftharpoons orotate + H2O2

The particular mechanism for the dehydrogenation of dihydroorotic acid by DHODH differs between the two classes of DHODH. Class 1 DHODHs follow a concerted mechanism, in which the two C–H bonds of dihydroorotic acid break in concert. Class 2 DHODHs follow a stepwise mechanism, in which the breaking of the C–H bonds precedes the equilibration of iminium into orotic acid.[2]

Biological Function

As an enzyme associated with the electron transport chain, DHODH could link mitochondrial bioenergetics, cell proliferation, ROS production, and apoptosis in certain cell types. DHODH depletion also resulted in increased ROS production, decreased membrane potential and cell growth retardation.[4] Also, due to its role in DNA synthesis, inhibition of DHODH may provide a means to regulate transcriptional elongation.[6]

Clinical significance

The immunomodulatory drugs teriflunomide and leflunomide have been shown to inhibit DHODH. Human DHODH has two domains: an alpha/beta-barrel domain containing the active site and an alpha-helical domain that forms the opening of a tunnel leading to the active site. Leflunomide has been shown to bind in this tunnel.[7] Leflunomide is being used for treatment of rheumatoid and psoriatic arthritis, as well as multiple sclerosis.[7][2] Its immunosuppressive effects have been attributed to the depletion of the pyrimidine supply for T cells or to more complex interferon or interleukin-mediated pathways, but nonetheless require further research.[2]

Additionally, DHODH may play a role in retinoid N-(4-hydroxyphenyl)retinamide (4HPR)-mediated cancer suppression. Inhibition of DHODH activity with teriflunomide or expression with RNA interference resulted in reduced ROS generation in, and thus apoptosis of, transformed skin and prostate epithelial cells.[8]

Mutations in this gene have been shown to cause Miller syndrome, also known as Genee-Wiedemann syndrome, Wildervanck-Smith syndrome or post axial acrofacial dystosis (POADS).[9][10]

Interactions

DHODH binds to its FMN cofactor in conjunction with ubiquinone to catalyze the oxidation of dihydroorotate to orotate.[2]

Model organisms

knockout mouse line called Dhodhtm1b(EUCOMM)Wtsi was generated at the Wellcome Trust Sanger Institute.[11] Male and female animals underwent a standardized phenotypic screen[12] to determine the effects of deletion.[13][14][15][16] Additional screens performed: - In-depth immunological phenotyping[17]


.

References


-- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p
  1. ^
  2. ^ a b c d e f g h i
  3. ^
  4. ^ a b c
  5. ^
  6. ^
  7. ^ a b
  8. ^
  9. ^
  10. ^
  11. ^
  12. ^ a b
  13. ^
  14. ^
  15. ^
  16. ^
  17. ^ a b

Further reading

External links



This article incorporates text from the public domain Pfam and InterPro IPR001295