Exosomes are cell-derived vesicles that are present in many and perhaps all biological fluids, including blood, urine, and cultured medium of cell cultures.[1][2] The reported diameter of exosomes is between 30 and 100 nm, which is larger than LDL, but much smaller than for example, red blood cells. Exosomes are either released from the cell when multivesicular bodies fuse with the plasma membrane or they are released directly from the plasma membrane.[3] It is becoming increasingly clear that exosomes have specialized functions and play a key role in, for example, coagulation, intercellular signaling, and waste management.[1] Consequently, there is a growing interest in the clinical applications of exosomes. Exosomes can potentially be used for prognosis, therapy, and biomarkers for health and disease.

Background

First discovered in the maturing mammalian reticulocyte (immature red blood cell) ,[4] exosomes were shown to participate in selective removal of many plasma membrane proteins[5] as the reticulocyte becomes a mature red blood cell (erythrocyte). In the reticulocyte, as in most mammalian cells, portions of the plasma membrane are regularly internalized as endosomes, with 50 to 180% of the plasma membrane being recycled every hour.[6] In turn, parts of the membranes of some endosomes are subsequently internalized as smaller vesicles. Such endosomes are called multivesicular bodies because of their appearance, with many small vesicles, or "intralumenal endosomal vesicles," inside the larger body. The intralumenal endosomal vesicles become exosomes if the multivesicular body merges with the cell membrane, releasing the internal vesicles into the extracellular space.[7]

Exosomes contain various molecular constituents of their cell of origin, including proteins and RNA. Although the exosomal protein composition varies with the cell and tissue of origin, most exosomes contain an evolutionary-conserved common set of protein molecules. The cargo of mRNA and miRNA in exosomes was first discovered at University of Gothenburg in Sweden, under the leadership of Prof. Jan Lotvall, now also head of the International Society for Extracellular Vesicles.[8] In that study, the differences in cellular and exosomal mRNA and miRNA content was described, as well as the functionality of the exosomal mRNA cargo. Exosomes have also been shown to carry double-stranded DNA.[8]

Exosomes can transfer molecules from one cell to another via membrane vesicle trafficking, thereby influencing the immune system, such as dendritic cells and B cells, and may play a functional role in mediating adaptive immune responses to pathogens and tumors.[9] Therefore, scientists that are actively researching the role that exosomes may play in cell-to-cell signaling, often hypothesize that delivery of their cargo RNA molecules can explain biological effects. For example, mRNA in exosomes has been suggested to affect protein production in the recipient cell.[8][10] However, another study has suggested that miRNAs in exosomes secreted by mesenchymal stem cells (MSC) are predominantly pre- and not mature miRNAs.[11] Because the authors of this study did not find RNA-induced silencing complex-associated proteins in these exosomes, they suggested that only the pre-miRNAs but not the mature miRNAs in MSC exosomes have the potential to be biologically active in the recipient cells.

Conversely, exosome production and content may be influenced by molecular signals received by the cell of origin. As evidence for this hypothesis, tumor cells exposed to hypoxia secrete exosomes with enhanced angiogenic and metastatic potential, suggesting that tumor cells adapt to a hypoxic microenvironment by secreting exosomes to stimulate angiogenesis or facilitate metastasis to more favorable environment.[12]

Currently, there are no firmly proven mechanisms by which exosomes trigger intercellular communication, but possible mechanisms include paracrine functions, fusion with cells, and uptake via phagocytosis or endocytosis. [13]

Terminology

Because of the multidisciplinary research field, detection and isolation difficulties, and different ways of classification, there is currently no consensus about the nomenclature of cell-derived vesicles including exosomes.[1] Consequently, exosomes are also referred to as microvesicles, epididimosomes, argosomes, exosome-like vesicles, microparticles, promininosomes, prostasomes, dexosomes, texosomes, dex, tex, archeosomes and oncosomes.[14] This confusion in terminology has led to typical exosome preparations sometimes being referred to as microvesicles and vice versa.

Research

Exosomes from red blood cells contain the transferrin receptor which is absent in mature erythrocytes. Dendritic cell-derived exosomes express MHC I, MHC II, and costimulatory molecules and have been proven to be able to induce and enhance antigen-specific T cell responses in vivo. In addition, the first exosome-based cancer vaccination platforms are being explored in early clinical trials.[15] Exosomes can also be released into urine by the kidneys, and their detection might serve as a diagnostic tool.[16][17][18] Urinary exosomes may be useful as treatment response markers in prostate cancer.[19][20] Exosomes secreted from tumour cells can deliver signals to surrounding cells and have been shown to regulate myofibroblast differentiation.[21] A recent investigation showed that exosome release positively correlates with the invasiveness of ovarian cancer.[22] Exosomes released from tumors into the blood may also have diagnostic potential. Exosomes are remarkably stable in bodily fluids strengthening their case as reservoirs for disease biomarkers. Patient blood samples stored in biorepositories can be used for biomarker analysis as colorectal cancer cell-derived exosomes spiked into blood plasma could be recovered after 90 days of storage at various temperature.[23]

A group from the University of Oxford led by Prof. Matthew Wood claims that exosomes can cross the blood-brain barrier and deliver siRNAs, antisense oligonucleotides, chemotherapeutic agents, and proteins specifically to neurons after injecting them systemically (in blood). Because these exosomes are able to cross the blood-brain barrier, this protocol could solve the issue of poor delivery of medications to the central nervous system and cure Alzheimer's, Parkinson's Disease, and brain cancer, among other diseases. The laboratory has been recently awarded a new 30 million Euro project, leading experts from 14 academic institutions, two biotechnology companies, and seven pharmaceutical companies to translate the concept to the clinic.[24][25][26][27]

Isolation and detection

The isolation and detection of exosomes has proven to be complicated.[1] Due to the complexity of body fluids, physical separation of exosomes from cells and similar-sized particles is challenging. Isolation of exosomes using differential ultracentrifugation results in co-isolation of protein and other contaminants and incomplete separation of vesicles from lipoproteins. Combining ultracentrifugation with micro-filtration or a gradient can improve purity.[28][29] Single step isolation of extracellular vesicles by size-exclusion chromatography has been demonstrated to provide greater efficiency for recovering intact vesicles over centrifugation,[30] although a size-based technique alone will not be able to distinguish exosomes from other vesicle types. To isolate a pure population of exosomes a combination of techniques is necessary, based on both physical (e.g. size, density) and biochemical parameters (e.g. presence/absence of certain proteins involved in their biogenesis).

Often, functional as well as antigenic assays are applied to derive useful information from multiple exosomes. Well-known examples of assays to detect proteins in total populations of exosomes are mass spectrometry and Western blot. However, a limitation of these methods is that contaminants may be present that affect the information obtained from such assays. Preferably, information is derived from single exosomes. Relevant properties of exosomes to detect include size, density, morphology, composition, and zeta potential.[31]

Detection techniques

Since the diameter of exosomes is typically below 100 nm and because they have a low refractive index, exosomes are below the detection range of many currently used techniques. Flow cytometry is probably the most commonly applied optical method to detect exosomes in suspension. Nevertheless, the applicability of flow cytometry to detect single exosomes is still inadequate due to limited sensitivity and potential measurement artifacts such as swarm detection.[32] Other methods to detect single exosomes are atomic force microscopy, nanoparticle tracking analysis, Raman microspectroscopy, tunable resistive pulse sensing, and transmission electron microscopy.[31]

Microarrays are now being used to detect exosomes.[33]

Databases

An overview of molecules known to be present in exosomes is provided by the ExoCarta database.[34]

Bioinformatics analysis of exosomes

Exosomes contain RNA, proteins, lipids and metabolites that is reflective of the cell type of origin. As exosomes contain numerous proteins, RNA and lipids, large scale analysis including proteomics and transcriptomics is often performed. Currently, to analyse these data, non-commercial tools such as FunRich[35] can be used to identify over-represented groups of molecules.

See also

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. ^ a b c d
  2. ^
  3. ^
  4. ^
  5. ^
  6. ^
  7. ^
  8. ^ a b c
  9. ^
  10. ^
  11. ^
  12. ^
  13. ^
  14. ^
  15. ^
  16. ^
  17. ^
  18. ^
  19. ^
  20. ^
  21. ^
  22. ^
  23. ^
  24. ^
  25. ^
  26. ^
  27. ^
  28. ^
  29. ^
  30. ^
  31. ^ a b
  32. ^
  33. ^
  34. ^
  35. ^

External links

  • http://www.exocarta.org ExoCarta - Database of molecules identified in exosomes
  • http://www.evpedia.info EVpedia - Database of molecules identified in extracellular vesicles from eukaryotic cells and bacteria
  • http://www.microvesicles.org Vesiclepedia - Database of molecules identified in extracellular vesicles
  • FunRich - Perform gene set enrichment analysis —software
  • http://www.isev.org - International Society for Extracellular Vesicles (ISEV), society home page
  • http://www.isevmeeting.org - International Society for Extracellular Vesicles annual scientific meeting including program
  • http://www.journalofintracellularvesicles.net - The first international journal for Extracellular Vesicles, official journal of ISEV
  • http://www.asemv.org - American Society for Exosomes and Microvesicles
  • http://www.exosome.com Exosome.com - Resource on advances in exosome technology
  • http://www.edwinvanderpol.com/research - Resource on the detection of exosomes
  • http://www.metves.eu - Research project on the metrological characterisation of micro-vesicles from body fluids
  • http://atlas.dmi.unict.it/mirandola - miRandola: Extracellular Circulating microRNAs Database
  • http://www.exosomedx.com - Exosome Diagnostics, Inc.
  • http://www.exosome-rna.com Exosome RNA
  • http://www.exosomesresearch.com Exosomes in Research - cross-discipline, educational highlights of reviewed publications