Missing something? Found a bug? Tell us. A screenshot and a few words are enough. Send feedback.
Guided tours
There are 10 tours. Tours walk you through a topic one balloon at a time, pointing at the real controls on this page. Use Next and Back (or the arrow keys); Esc ends a tour (while a demo plays, the first Esc only stops the demo). Most steps play a short demo: a cursor opens the menu, hovers, clicks or types on the control it names, and the result stays on screen while you read. When you press Next or Back, everything goes back, so your sets, colours and settings are as they were. The demos themselves never load, save or clear anything. Skip demo stops one, Replay demo plays it again. Only a tour loads an example: with no data yet it loads the prostate example, and afterwards offers Undo to empty the sets again. The use-case tours load their own example; if the tool already holds data they ask first, and Undo at the end puts your data back.
Back to contents
What you can do with InteractiVenn
InteractiVenn compares 2 to 16 lists. It draws Venn diagrams (2 to 6 sets), UpSet plots (up to 16 sets) and area-proportional Euler diagrams (2 to 16 sets; 7 or more when they share few regions) with exact counts; lists the elements of any region with search, Excel and CSV; merges sets by list or tree; finds items and answers questions about the sets; adds values such as fold changes; tests overlap significance with the hypergeometric test; offers colour palettes scored for colour-blind readers, a dark theme and high contrast; and exports PNG, SVG, PDF and Excel. Everything runs in your browser, with no upload and no account.
The page What you can do answers each of these 17 capabilities as one question with an example, names the fields and data types that use the tool, and gives everyday uses beyond research, such as survey answers, literature searches and product plans.
See InteractiVenn in published research: examples of Venn diagrams from checked papers, by field.
Back to contents
For teaching
Set operations (intersection, union, difference, complement) in plain words, with a diagram and an Ask example for each, a counts-only classroom exercise and made-up examples for class. The page For teaching has them all, and a note for teachers on privacy.
Every example on that page is also in File ▾ › Examples. Nothing is stored and no account is needed, so it works on a school laptop or a phone.
Back to contents
Getting started
Building a diagram
Choose how many sets to show with Sets shown (2 to 6, or More for 7 to 16) and fill the list of elements for each set (one element per line). Optionally change set names and colours. The diagram updates as you type.
Sets shown is how many sets the diagram shows, not how many your file holds: a file may hold up to 16, and the ones not shown are kept, hidden, with their data. When sets are hidden (or more than 6 are shown), Sets in your data lists every set with its unique elements and its values column; tick a set to show it, untick to hide it. Everything (the diagram, UpSet, the Summary, Compare sets, Intersections, Find & ask, the region lists) uses the sets shown. The Venn diagram draws up to 6 sets: with 7 to 16 shown, the diagram is an UpSet plot. Unions and trees work at any number of sets shown (letters A to P): with more than 6, each merged group is one UpSet row, such as "Liver ∪ Kidney". Saved sessions keep every set and how many are shown.
Saving and loading datasets
Paste or type your lists into the set boxes, drop a file anywhere on the page, or use File → Open file… (Ctrl+O, ⌘O on a Mac). File → Examples loads a published dataset at any time: over your own lists it replaces them and offers Undo. Use .interactivenn files to fully restore a session. Legacy .ivenn files are still supported for loading (backward compatibility), but new saves use the richer .interactivenn format. The original 2015 version is still at heberleh.github.io/interactivenn/web. Export ▾ › Region lists (.xlsx) gives your collaborators every region as a spreadsheet.
Importing from Excel (XLSX)
You can import sets directly from an Excel file:
- Use up to 16 columns (each column = one set).
- First row contains the set names (header). Empty header cells get default names (Set A, Set B, ...).
- Each cell below the header is one element (blank cells are skipped).
- Duplicate elements inside a column are detected (see Duplicate detection & removal below).
Listing the elements in a region
Hover over a region (or Tab to it) to see its size, its share of each set and, for two sets, their Jaccard similarity. Click the number (or press Enter) to list its elements: you can search the list, copy it, or download it as .xlsx or .csv. This works for regions of any size; very large regions are collected in the background while the dialog is already open.
Set labels
Labels that would leave the diagram or cover a count are moved to a clear spot automatically. Turn on "Wrap long names" to let long names use two or three lines. You can also move any label yourself: drag it, or focus it with Tab and use the arrow keys (Shift for bigger steps); double-click or Home puts it back. Moved positions are saved in .interactivenn files. Only the drawing changes, never the data.
Counts vs percentages
Region labels show raw counts by default. Under Numbers, beside Sets shown, choose percentages (or, with up to four sets, counts and percentages) to show each region as a proportion of the total unique elements across all active sets. Percentages apply to both exclusive regions and multi-set intersections.
Duplicate detection & removal
Elements are compared ignoring upper/lower case and extra spaces. If a set lists an element more than once, a message explains it and offers to remove the repeats in one click. When a loaded file has something worth cleaning up, a "Prepare" dialog lists it before the diagram is drawn: repeated elements (with a count per set), and, when most IDs end in a version number such as ENSG00000141510.17, the option to treat different versions of the same ID as one. Untick what you want to keep as it is, or cancel loading. The choices are saved with the session.
Find an element
The Find box (in the Find & ask tab under the diagram) looks for elements whose name contains what you type, ignoring upper and lower case. The regions holding a match are ringed and the other counts fade; the box says how many elements match and in how many regions. Suggestions list the first matches, the exact one first, with small squares in the colours of the sets each is in; pick one with the arrow keys and Enter (or a click) to ring its region only, and "Open its region" lists that region's elements. Escape clears the search. Small datasets are searched at once; above 50,000 different elements the search runs in the background and the page stays usable. While a union or tree is shown, the box waits.
Ask about regions
Type a question in the "Ask" box in the Find & ask tab under the diagram, using your set names or the letters A–P. The box says how it read the question, rings the matching counts, and "Open list" shows their elements together (with search, copy and download).How to ask next to the box opens six example cards written with your own set names, each with the number of elements it finds; "Try it" asks it. "Liver and Kidney" means everything in both, including elements also in other sets; "only Liver and Kidney" is the single region with exactly those two. "not", "but not", "except" and "without" leave a set out; "or" combines; "at least 2 of all" and "exactly 1 of Liver, Kidney, Heart" count sets. Names with spaces or hyphens need no quotes. Escape clears the question. While a union or tree is shown, the box waits: questions are about the original sets.
High contrast diagram
For readers with low vision, for projectors, and for figures that may be printed in black and white. Every set gets the same black outline, every number is drawn at full strength with a thin white edge (so 0 is as visible as any other count), and exported figures keep it. It is saved in .interactivenn files. On the dark theme the mirror applies: white outlines and a dark edge. If your system asks for more contrast, it is on from the start.
Exporting diagrams & intersections
The toolbar at the diagram's top-right corner is always visible:
- Copy image: puts a PNG of the figure on the clipboard, exactly as on screen (dark on the dark theme), to paste into a document or slides. Some browsers don't allow this; use Download PNG instead.
- Export menu: Download PNG, SVG or PDF at once; Size, DPI and font… opens the figure options: a journal width (single or double column, or custom mm), a resolution for PNG, a figure font with point sizes, and a white, dark or transparent background (it starts as the background you see), with a preview. Downloads use the options you chose there during this visit. Region lists (.xlsx) is a spreadsheet with every region's elements, one column each (all regions, not only a selection). With regions selected, Selected regions only saves just those (.xlsx or .csv), each element beside its region.
- Full screen: shows the diagram on the whole screen; Escape leaves.
The File menu beside “Your sets” saves your data:
- Save session (.interactivenn) (Ctrl+S, ⌘S on a Mac): everything to continue later: the lists and their names, colours, appearance (numbers, labels, borders, opacity, wrapping, high contrast, fading), moved labels, union and tree codes, the values table, starred regions, the total entered in Compare sets and which sets are shown (the hidden ones are saved too). A file saved by a newer InteractiVenn opens with a note, and settings this version does not know are kept when you save it again.
- Save lists as Excel: the sets as columns (first row = set names) for re-editing or sharing.
Tips
- Adjust opacity to reveal overlapping layers clearly.
- Raise the font size for slides.
- Show percentages to compare regions of different sizes.
- Move labels by dragging or with the arrow keys; turn on “Wrap long names” for long set names.
- Clearing the sets, or loading a file or example over your lists, can be undone from the message that appears.
- Save a .interactivenn file frequently during exploratory analysis.
Back to contents
Unions and trees
Unions of sets may be applied to the sets either through a tree or through a list of unions. The tours "Unions and trees" and "Unions and trees, visually" (see Guided tours) show everything below at work.
Two ways to merge sets
With Unions by tree, give a tree in Newick format, for example ((A,B),C), and click "Start". A pair of brackets may hold two or more parts, which merge in one step:(A,B,C) merges all three at once. Sets left out of the tree join at one more level on top, where everything merges. Levels are counted from the bottom: a pair of brackets merges one level above the highest pair inside it, and a pair holding only sets merges at the first level. So in ((A,B),((C,D),E)) the first level merges A∪B and C∪D, the second joins E to C∪D (A∪B stays as it was), and the third merges everything. Merged groups are listed left to right as you wrote them. The diagram first shows the top of the tree, where the largest unions are merged. "Down" goes one level toward the leaves (fewer merges) and "Up" goes back toward the root. The diagram shape stays the same: merged sets share one outline and label, and region sizes reflect the merge. Click "Stop" to return to the original sets. Problems in the tree code are explained under the field, and Start stays disabled until the code is valid.
With Unions by list, give a list of frames separated by semicolons; within a frame, commas separate unions shown at the same time. For instance, with four sets, ab; cd; ab,cdshows A∪B, then C∪D, then both unions together. Click "Start", then "→" (Next step) and "←" (Previous step) to move between frames, and "Stop" to return to the original sets. The merged groups are listed next to the controls.
Build the tree visually
Under the code boxes, Build visually opens the builder; the same button, or the X in its top-right corner, folds it again, and nothing is stored. With Unions by tree it draws your sets as boxes with their colour and size, and each union above them with the number of distinct elements in it. Every step writes the tree code in the box above and starts the union, so you can also type the code and the tree follows. With Unions by list the same row shows your sets as chips: pick two or more and press Merge to add a group to the frame, and Next frame to start another one. On a phone the tree scrolls sideways inside its card.
Merge two sets
Click two or more sets or groups to pick them, then press Merge. Pick a group and press Split to undo it, or Clear to start over. From the keyboard: arrows move, Space picks, Enter merges, Backspace splits.
Drag to merge, hover to preview
You can also drag a set onto another to merge them in one move; a drop that cannot merge says why. Point at a group, or move to it with the keyboard, and the diagram shows what it would look like merged; so does pointing at Merge while sets are picked. Nothing changes until you press Merge.
Suggest a tree from the overlaps
Suggest a tree from the overlaps groups the sets by how much they share, joining the most similar first. You choose the similarity: Jaccard, the overlap coefficient or the shared count. Each union shows the similarity at which it was joined, and Show similarity matrix lists the number for every pair. The suggestion fills the tree code and starts, ready to edit; or type your own. It runs only when you press the button, in your browser, and nothing is sent anywhere. If the box already holds a tree, the suggestion is shown next to it instead (see below).
Does the data agree with the tree?
When the tree code box already holds a tree (typed, opened or from an example), Suggest a tree from the overlaps does not replace it. It draws your tree and the suggested one, one above the other, marks with a check every group that both trees have, and counts them: Groups in common: 3 of 5 means that 3 of the 5 groups of the suggested tree (every merge except the last, which joins everything) are also groups of your tree, whatever the order inside a group. Press Use this tree to put the suggested tree in the box, or Keep my tree to close the comparison; editing the code closes it too. A low number is often the interesting result: the overlaps group the sets by what they share, while a taxonomy groups them by descent, and the two need not agree.
The tree beside the UpSet plot
In the UpSet view, the tree in the tree code box is also drawn beside the set rows, from the code in the box (typed, built, opened or suggested). Click a node, or press Enter or Space on it, to collapse it: its sets become one row, "Liver ∪ Kidney", exactly as if you had typed that union, and the columns follow. Click it again to expand: a node you collapsed gives back the rows it held; a node that was merged by Start or the level buttons opens one level, as Down does. Arrow keys move between nodes (up and down in reading order, left to the parent, right to a child). The level buttons and the tree agree: a level you choose is shown collapsed in the tree, and a collapse that is not one of the levels is labelled Custom. While the tree is on, the rows follow its order and the Order option waits; untick Show tree to give the width back (for this visit only; nothing is stored). Exports include the tree. The tree is not kept in a session beyond its code, like the other unions.
Open a tree from a file
Choose File › Open tree… to read a tree in Newick format (a .nwk, .newick, .tree or .txt file, or text you paste). Each leaf is matched to a set by its name, and you can change any match in the dialog; names that match no set are listed and must be fixed before the tree is used. Use this tree fills the tree code and switches to tree mode, exactly as if you had typed the code; it does not start the merging. Trees that hold only some of the sets are fine. Branch lengths are not kept.
File › Save tree… writes the current tree code as Newick with your set names, so other programs can read it. It is available once the tree code is valid. Nothing is sent anywhere: the file is read and written in your browser.
A tree from a database
Two examples come with a tree, so you can start from what is known and ask whether the data agree. Plant genomes comes with the NCBI Taxonomy tree of its six species (fetched 2026-10-17); where NCBI leaves three orders unresolved, the order follows APG IV (2016, doi:10.1111/boj.12385), and the grass split is the one of Grass Phylogeny Working Group II (2012, doi:10.1111/j.1469-8137.2011.03972.x). Tissue-elevated genes, 16 tissues comes with the organ groups of the Human Protein Atlas (read from its gene pages, 2026-10-17); a group that holds only one of the 16 tissues is not drawn, the tissue stands in its place, and the top label HPA_tissues is ours. Choosing the example fills the tree code box and shows its tab; nothing merges until you press Start (or click a node in the UpSet view).
The trees are part of the examples: the tool fetches nothing and sends nothing. The Newick files, the lineages, the mapping and what was not verified are kept with the project (docs/tree-examples). One placement is a judgement: the Brain set is the whole brain, which the atlas files under Brain by name.
Back to contents
Lists or region counts
Sometimes you have only numbers, such as the overlap counts printed in a paper, and no lists. Choose File › Type region counts only…, pick 2, 3 or 4 sets, name them and type how many elements each region holds. The Venn, UpSet and Euler views are drawn from those numbers.
With counts only there are no elements behind the regions, so regions cannot be opened or picked, and Find and Ask, values, unions and trees, Prepare your data and the region lists are off. Share links do not carry the counts; Save session keeps them, and the figure carries the caption "Counts only: drawn from region counts, no element lists." Choose Use element lists instead (the button at the top of the counts panel) to use your lists again.
Back to contents
Venn, UpSet and Euler views
The diagram has three views, chosen with the Venn | UpSet | Euler buttons above it. Venn draws up to 6 sets with ellipse-like outlines and every combination of sets. UpSet works for 2 to 16 sets: each column is one combination of sets, its height the number of elements in it, and the dots under it name the sets. Click a column to list its elements. Sort the columns by size, sets per region or deviation, list the sets as entered, by size or by name (Order, under More UpSet options), filter by how many sets a region has, group them by that number, and tick Show empty intersections to see combinations with no elements. Long lists show the first columns with Show more; the figure you export says how many are left out.Euler (in All features, 2 to 6 sets) is described below.
Back to contents
Links to databases
In a region list, Links turns each element into a link to a database that opens in a new tab. The ID type is guessed from the form of the IDs only (Ensembl, RefSeq, UniProt, gene symbols), and Best guess uses it. Other links lists the databases, including NCBI Gene for plain numbers, and No links turns the links off.
A name written SYMBOL_accession, such as KLK3_P07288, is read as UniProt: the link uses the accession after the last underscore. Use my own link… takes any https address and shows an example of how to mark where the element goes; it is kept for this visit only. Only elements that look like the chosen type get a link.
Back to contents
Example datasets
14 datasets to try the tool on, published or made up, from File › Examples, the empty screen, or the cards below. Loading one replaces the lists in the tool and offers Undo. The page opens empty. Examples with a suggested total fill in the total in Compare sets; change it if your total differs. The data keep the licences shown; please cite the source articles when you use them.
Prostate cancer proteins · 5 feature-selection methods · 349 proteins
Identification of differentially expressed proteins in direct expressed prostatic secretions of men with organ-confined versus extracapsular prostate cancer
Proteins ranked as candidate biomarkers for organ-confined versus extracapsular prostate cancer by five feature-selection methods (Beta-binomial, NSC, SVM-RFE, t test, MWW test), run in the InteractiVenn paper (Heberle et al. 2015, study case 1) on the proteomic data of Kim et al. 2012.
Kim Y et al.
Molecular & Cellular Proteomics 11, 1870–1884 (2012)
doi:10.1074/mcp.M112.017889
Data: Kim et al. 2012; lists: Heberle et al. 2015, BMC Bioinformatics 16:169, doi:10.1186/s12859-015-0611-3 (no licence stated)
Plant genomes · 6 species · 23,143 gene families
The banana (Musa acuminata) genome and the evolution of monocotyledonous plants
Gene families shared by banana and five other plant genomes (from the original InteractiVenn paper). Comes with a tree from NCBI Taxonomy.
D’Hont A et al.
Nature 488, 213–217 (2012)
doi:10.1038/nature11241
Data: Included since the 2015 InteractiVenn paper (no licence stated)
Tissue-elevated genes · 6 tissues · 4,616 genes
Tissue-based map of the human proteome
Genes with elevated RNA levels in liver, kidney, pancreas, heart muscle, skeletal muscle and brain (Human Protein Atlas).
Uhlén M et al.
Science 347, 1260419 (2015)
doi:10.1126/science.1260419
Data: CC BY 4.0
Lists: RNA tissue specificity "tissue enriched", "group enriched" or "tissue enhanced", from proteinatlas.org (version of 26 September 2026).
Suggested total N 20,162: every human protein-coding gene the Human Protein Atlas classifies.
Tissue-elevated genes, 16 tissues · 16 tissues · 7,848 genes
Tissue-based map of the human proteome
Genes with elevated RNA levels in 16 tissues (liver, kidney, pancreas, heart muscle, skeletal muscle, brain, lung, stomach, esophagus, skin, testis, gallbladder, urinary bladder, prostate, ovary and breast; Human Protein Atlas). Comes with a tree of the Human Protein Atlas tissue groups. Loading it shows the UpSet view: the Venn and Euler views need 6 sets or fewer.
Uhlén M et al.
Science 347, 1260419 (2015)
doi:10.1126/science.1260419
Data: CC BY 4.0
Lists: RNA tissue specificity "tissue enriched", "group enriched" or "tissue enhanced", from proteinatlas.org (version of 28 September 2026).
Suggested total N 20,162: every human protein-coding gene the Human Protein Atlas classifies.
Essential genes by method · 4 lists · 2,891 genes
Evaluation and design of genome-wide CRISPR/SpCas9 knockout screens
Human core essential genes from a reference set and from DepMap CRISPR screens, and a reference set of non-essential genes.
Hart T et al.
G3 Genes|Genomes|Genetics 7, 2719–2727 (2017)
doi:10.1534/g3.117.041277
Data: CEGv2 and NEGv1: MIT (hart-lab/bagel); DepMap 23Q2: CC BY 4.0
DepMap lists from DepMap 23Q2 Public (doi:10.6084/m9.figshare.22765112.v4); Tsherniak A et al. (2017) Cell 170:564, doi:10.1016/j.cell.2017.06.010; Dempster JM et al. (2021) Genome Biology 22:343, doi:10.1186/s13059-021-02540-7.
Suggested total N 17,931: the genes scored in the DepMap 23Q2 CRISPR screens.
Tissue expression, with values · 3 tissues · 16,162 genes · nTPM
Tissue-based map of the human proteome
Genes expressed (nTPM ≥ 1) in liver, kidney and cerebral cortex, with each gene’s nTPM in the three tissues as values (Human Protein Atlas consensus). 11,954 genes are shared by all three tissues, yet 1,242 of them differ at least 10-fold between tissues.
Uhlén M et al.
Science 347, 1260419 (2015)
doi:10.1126/science.1260419
Data: CC BY-SA 3.0
Values: rna_tissue_consensus.tsv (HPA and GTEx consensus nTPM) from proteinatlas.org, downloaded 26 September 2026; genes with nTPM ≥ 1 in at least one of the three tissues. This derived table is shared under the same licence, CC BY-SA 3.0.
Oral cancer: invasive front vs inner tumour (islands and stroma) · 4 sets · 969 proteins · log2 LFQ
Combining discovery and targeted proteomics reveals a prognostic signature in oral cancer
Proteins of tumour islands and stroma at the invasive tumour front (ITF) and in the inner tumour of oral squamous cell carcinoma. The two island sets reproduce the paper’s Fig. 2a (19 | 704 | 76) and the two stroma sets its Fig. 2b (42 | 602 | 60), both made with InteractiVenn. The paper never crosses islands with stroma: to do so here, proteins are matched by their first UniProt accession, which is our choice. Values: each protein’s median log2 LFQ intensity over the patients with a value.
Carnielli CM et al.
Nature Communications 9, 3598 (2018)
doi:10.1038/s41467-018-05696-2
Data: CC BY 4.0
Lists and values from Supplementary Data 7 (islands, 20 patients, ≥ 10 valid LFQ values per group) and 12 (stroma, 17 patients, ≥ 8 valid values), via Europe PMC (PMC6125363). Elements are the first UniProt accession of each protein group, kept as in the source (including its contaminant rows).
Suggested total N 969: every protein quantified in tumour islands (799) or stroma (704) at the paper’s valid-value thresholds.
Head and neck cancer: proteins linked to lymph-node status at five sites · 5 sites · 479 proteins · log2 pN+/pN0
Connecting multiple microenvironment proteomes uncovers the biology in head and neck cancer
Proteins whose abundance differs between patients with (pN+) and without (pN0) lymph-node metastasis, at five sites: primary tumour malignant and non-malignant, lymph-node non-malignant, buffy coat and saliva. It reproduces the paper’s Fig. 2a UpSet, except that the lymph-node-only region is 167 rather than 168: HLA-A appears as two protein groups in the source, and a set keeps it once. Values: log2 pN+/pN0 (blank for proteins found in only one group).
Busso-Lopes AF et al.
Nature Communications 13, 6725 (2022)
doi:10.1038/s41467-022-34407-1
Data: CC BY 4.0
Lists from the Source Data, sheet "Figure 2a" (gene names); values from Supplementary Data 2, sheets 1–5, column "Ratio log2 (pN+ vs pN0)"; via Europe PMC (PMC9640649). For HLA-A in the lymph node the larger ratio (2.05) is kept.
Suggested total N 5,361: every protein identified at any of the six sampled sites (Supplementary Fig. 2a).
Microbiome OTU table (made up) · 6 samples · 111 OTUs · read counts
Made-up OTU table
A made-up OTU table: read counts of 111 OTUs in six samples (two gut, two soil, two pond). The sets are the OTUs with at least one read in each sample; many of those are one to three reads of noise, so "Make one set per column" with a limit of 10 reads gives cleaner sets.
Made for the tool
InteractiVenn (2026)
Data: Made for the tool
Invented with a fixed seed (scripts/examples/matrixExamples.py); no real sequences or samples.
Proteomics intensity matrix (made up) · 4 conditions · 179 proteins · log2 intensity
Made-up protein intensities
A made-up proteomics matrix: log2 intensities of 179 proteins under four conditions (Control, Heat, Cold, Salt); a blank is a protein not quantified. The sets are the proteins quantified in each condition; "Make one set per column" with a limit of 24 keeps the strong signals.
Made for the tool
InteractiVenn (2026)
Data: Made for the tool
Invented with a fixed seed (scripts/examples/matrixExamples.py); no real proteins, samples or measurements.
Differential expression results (made up) · 2 contrasts · 127 genes · log2 fold change, padj
Made-up differential-expression results
A made-up result table in the columns DESeq2 writes (baseMean, then log2FoldChange and padj for a Heat and a Salt contrast). The sets are the genes with padj < 0.05 in each contrast. The column names are recognised, so "Make up and down sets from one column" proposes padj < 0.05 and |log2FoldChange| ≥ 1.
Made for the tool
InteractiVenn (2026)
Data: Made for the tool
Invented with a fixed seed (scripts/examples/matrixExamples.py); no real genes, samples or measurements.
Disease-target lists and compound targets (made up) · 4 lists · 164 made-up genes
Made-up target lists
Made-up lists of invented gene-like symbols, shaped the way a network-pharmacology study prepares them: three disease-target lists and the targets of one compound. Nothing here comes from a real database or study.
Made for the tool
InteractiVenn (2026)
Data: Made for the tool
The symbols are invented: they are not taken from any gene database, and the lists say nothing about biology.
Students in three courses · 3 courses · 21 students
Made-up course enrolments
Which of three courses (Maths, Biology, Art) each of 21 made-up students takes; each student is a code. Shows intersection, union and difference.
Made for the tool
InteractiVenn (2026)
Data: Made for the tool
Three reading lists · 3 lists · 23 books
Made-up reading lists
Made-up books on a term reading list, a summer list and a book club list; each book is a code. Which books are on more than one list?
Made for the tool
InteractiVenn (2026)
Data: Made for the tool
Plant genomes. The original publication illustrated comparisons among six plant genomes (banana and others). By applying unions (e.g., grouping species by clade via a tree) you can highlight conserved vs lineage-specific gene complements without redrawing the diagram at each aggregation step. It comes with a tree (NCBI Taxonomy), ready for Unions by tree.
Prostate cancer proteins. Feature selection methods (Beta-binomial, t test, MWW, NSC, SVM-RFE) produced ranked candidate biomarker lists. InteractiVenn helps compare overlap, exclusive findings and incremental unions of method outputs, revealing commonly selected proteins (potential robust biomarkers) and method-specific candidates.
Tissue-elevated genes. With the suggested total of 20,162 genes, heart and skeletal muscle share far more genes than chance would give, and so do liver and kidney; liver and brain share fewer than chance.
Essential genes by method. The essential-gene lists agree strongly, while the non-essential reference list barely touches them: a check that the methods measure the same thing.
Tissue expression, with values. The centre of the diagram holds 11,954 genes expressed in all three tissues; hover it to see that 1,242 of them differ at least 10-fold. Albumin is among them (198,524, 434 and 2.4 nTPM). Try the filter at nTPM ≥ 10.
Oral cancer: invasive front vs inner tumour. Show 2 sets (the tumour islands) to get the paper’s Fig. 2a: 19, 704 and 76 proteins. 22 of the 704 shared proteins differ at least 2-fold between the front and the inner tumour (set medians); the scatter in their region list shows which.
Head and neck cancer: proteins linked to lymph-node status. Most proteins are linked to metastasis at one site only; 46 are found at two or more, and 24 of those change in opposite directions at different sites (the discordance rule here is direction).
The files can also be downloaded: prostate_dataset.ivenn, banana_dataset.ivenn, hpa_tissue_elevated_genes.ivenn, hpa_tissue_elevated_genes_16.ivenn, essential_genes_methods.ivenn, hpa_liver_kidney_cortex_values.interactivenn, carnielli2018_compartment_region_values.interactivenn, bussolopes2022_pN_metastasis_by_site_values.interactivenn, otu_table_made_up.interactivenn, protein_intensities_made_up.interactivenn, de_results_made_up.interactivenn, network_pharmacology_made_up.ivenn, students_courses_made_up.ivenn, reading_lists_made_up.ivenn.
Back to contents
Colour palettes for Venn diagrams
New diagrams start with “Okabe-Ito CUD”. Choose another palette from the Colours menu in the bar under the diagram (on a phone: the row of swatches). Each palette gives its colours in the order that scores best for the number of sets shown, so adding or removing sets recolours the diagram. “Shuffle”, at the top right of the palette's details in the Colours menu (on a phone: next to Details), picks another order that still scores well; the face, the four task scores and the notes there update each time, so you can shuffle and watch. “Colour mode”, beside the Colours menu, changes how regions are coloured: transparent layers (the default), regions painted solid, degree shading, coloured outlines, a count heatmap, or coloured filters (light theme only). Hover or arrow over a mode to see a miniature of your diagram in it; the modes other than transparent layers and solid painting are experimental. Changing any set's colour makes the colours “Custom”: they then stay as they are, and a file with its own colours keeps them. Label colours are always a darker, readable shade of their set's colour. Font size, opacity, percentages, label wrapping, high contrast and a colour-vision preview are under “Appearance” in the same bar; its “Reset appearance” restores the default palette and every drawing setting and label position; it never touches your data.
The palettes come from a study of colours for Venn diagrams: candidate palettes were scored on the real diagram shapes for 2–6 sets, for normal colour vision and three kinds of colour blindness, and compared with how much people liked them. The ranking below comes from it.
How the colour scores work: the actual picture
The face next to a palette scores the diagram as drawn, not the swatches: its real shapes, the colours after they blend at the opacity you chose, the outlines (their colour and width) and the ink of the numbers (black, white, or chosen per region), plus the labels. Change the opacity, the borders or the number colour under Appearance and the face is computed again. Four tasks are scored from 0 to 1: regions apart (neighbouring regions look different), sets identifiable (each set's colour can be told from the others), borders visible and counts and labels readable. Each task counts at its worst over normal colour vision and simulated protanopia, deuteranopia and tritanopia. The index F25 is the geometric mean of the four. Faces: poor below 0.65, borderline from 0.65 to 0.75 (readable, but some readers will struggle), good from 0.75; fully happy means every task is good for every kind of colour vision and no two sets look the same to anyone. In the details panel, “What lowers the score” lists what pulls the face down, and “Tips” lists things worth knowing that do not lower the score. The menu also gives each palette's F25 range over 2–6 sets, how well people liked it (preference percentile) and the share of good orders.
The face changes smoothly with the score: its mouth is straight at 0.70, frowns more the lower the score goes (fully at 0.45 and below) and smiles more the higher it goes (fully at 0.95 and above), so a poor score always frowns and a good one always smiles. Next to it, and read out by screen readers, are the word (Good, Borderline, Poor) and the number.
Red-green colour blindness is a hard limit. Colours can never score good if readers with protanopia or deuteranopia (together the most common colour blindness) cannot tell them apart: if regions apart or sets identifiable is poor (below 0.65) for either of them, the score shown is capped at 0.74, and the details panel says “Capped: hard to tell apart for red-green colour-blind readers.” Shuffle skips orders that would be capped.
The score follows the colour mode on screen. Transparent layers and solid painting score the same picture (the same colours, one see-through and one opaque); coloured outlines and, on the light theme, degree shading and coloured filters score the picture those modes actually draw (the key-coloured lines, the grey ramp's outlines, or the filtered fills), so a palette can look better or worse there than under transparent layers. The count heatmap and the Values colour mode never have a score, because there the palette only colours the set names, not the regions—and degree shading on the dark theme colours only the labels too. In those modes the Colours button says so (“the palette only colours the set names; there is no colour score”) instead of showing a face.
“Preview as” shows the diagram as a reader with deuteranopia, protanopia or tritanopia (Machado et al. 2009, full severity), or in greyscale, would see it. The preview is for the screen only: copied and exported figures keep the real colours.
Colour differences use CIEDE2000 (Sharma, Wu & Dalal 2005), colour-vision simulation Machado, Oliveira & Fernandes (2009), text contrast WCAG 2.1. Palettes by others are cited in the menu: Okabe & Ito (2008), Paul Tol, ColorBrewer (Harrower & Brewer 2003), CARTOColors and D3.
Colours that work for everyone
About 1 in 12 men and 1 in 200 women of Northern European descent see colours differently, most often red and green. A diagram whose sets differ only by hue can then show two sets in what looks like the same colour. Three steps keep a figure readable for every reader:
- Start from a palette that scores well. Open Colours in the bar under the diagram. Every palette there has a face for the number of sets shown, and the table below ranks them over 2–6 sets.
- Look at it as others would. Under Appearance, Preview as shows the diagram as a reader with deuteranopia, protanopia or tritanopia would see it, or in greyscale. Only the screen changes, never an export.
- Keep a good order. Shuffle (in the details of the palette in use, in the Colours menu) only picks orders that still score well, and the scores beside it update as you shuffle. If you choose your own colours, watch the face next to Colours: a poor face means some readers may not tell two sets apart, and the Export dialog says so too.
Palettes ranked for this diagram (light theme)
Ranked by the worst F25 over 2–6 sets, each at its best order for that number of sets. F25 is at most 1; below 0.65 is poor and from 0.75 good. Likeability is how much people tend to like the colours, as a percentile among 400 random palettes (higher is better).
Palettes ranked by their worst F25 over 2 to 6 sets| # | Palette | Made by | Worst F25 | F25 over 2–6 sets | Fully happy at | Likeability |
|---|
| 1 | InteractiVenn 5 | InteractiVenn | 0.80 | 0.80–0.94 | 2, 3, 4 sets | 76 |
|---|
| 2 | InteractiVenn 11 | InteractiVenn | 0.80 | 0.80–0.90 | 3, 4 sets | 50 |
|---|
| 3 | InteractiVenn 3 | InteractiVenn | 0.79 | 0.79–0.91 | – | 85 |
|---|
| 4 | InteractiVenn 7 | InteractiVenn | 0.79 | 0.79–0.95 | 2, 3, 4, 5 sets | 67 |
|---|
| 5 | Tol muted | Paul Tol | 0.79 | 0.79–0.96 | 2, 3, 4, 5 sets | 62 |
|---|
| 6 | CARTO Safe | CARTO | 0.79 | 0.79–0.96 | 2, 3, 4, 5 sets | 61 |
|---|
| 7 | InteractiVenn 10 | InteractiVenn | 0.78 | 0.78–0.96 | 2, 3, 4, 5 sets | 61 |
|---|
| 8 | InteractiVenn 8 | InteractiVenn | 0.78 | 0.78–0.90 | 4, 5 sets | 65 |
|---|
| 9 | InteractiVenn 1 | InteractiVenn | 0.78 | 0.78–0.91 | 4 sets | 61 |
|---|
| 10 | InteractiVenn 6 | InteractiVenn | 0.78 | 0.78–0.90 | 4, 5 sets | 71 |
|---|
| 11 | InteractiVenn 2 | InteractiVenn | 0.77 | 0.77–0.92 | 3, 4, 5 sets | 86 |
|---|
| 12 | Okabe-Ito CUD | Masataka Okabe, Kei Ito | 0.77 | 0.77–0.93 | 3, 4 sets | 83 |
|---|
| 13 | Brewer Set1 | Cynthia Brewer, Mark Harrower (ColorBrewer) | 0.77 | 0.77–0.97 | 2, 3, 4 sets | 40 |
|---|
| 14 | InteractiVenn 9 | InteractiVenn | 0.77 | 0.77–0.92 | 3, 4 sets | 65 |
|---|
| 15 | CARTO Bold | CARTO | 0.76 | 0.76–0.95 | 2, 3, 4, 5 sets | 57 |
|---|
| 16 | Tol bright | Paul Tol | 0.76 | 0.76–0.92 | 3, 4 sets | 65 |
|---|
How the ranking was made
Each palette was scored on the real diagrams (2–6 sets), with their shapes, 50% fills, outlines, counts and labels, for every order of its colours. Four tasks are scored: regions apart, sets identifiable, borders visible, and counts and labels readable, each at its worst over normal vision and simulated protanopia, deuteranopia and tritanopia. F25 combines the four (see "How the colour scores work" in this Help). Two sets whose colours look the same (or nearly the same) with normal vision make "sets identifiable" poor however many other sets there are, and the panel names them; pairs that look the same only under a simulated colour vision are noted there too. Colour differences use CIEDE2000, the simulations Machado et al. (2009), text contrast WCAG 2.1, and likeability the pair-preference model of Colorgorical. The numbers above are read from the same data the Colours menu uses. They describe how distinguishable the colours are on this diagram, not whether a palette suits every purpose.
References and palette sources
- Sharma G, Wu W, Dalal EN (2005). The CIEDE2000 color-difference formula: implementation notes, supplementary test data, and mathematical observations. Color Research & Application 30(1):21–30. doi:10.1002/col.20070
- Machado GM, Oliveira MM, Fernandes LAF (2009). A physiologically-based model for simulation of color vision deficiency. IEEE Transactions on Visualization and Computer Graphics 15(6):1291–1298. doi:10.1109/TVCG.2009.113
- Gramazio CC, Laidlaw DH, Schloss KB (2017). Colorgorical: creating discriminable and preferable color palettes for information visualization. IEEE Transactions on Visualization and Computer Graphics 23(1):521–530. doi:10.1109/TVCG.2016.2598918
- W3C (2018). Web Content Accessibility Guidelines (WCAG) 2.1. w3.org/TR/WCAG21
- Harrower M, Brewer CA (2003). ColorBrewer.org: an online tool for selecting colour schemes for maps. The Cartographic Journal 40(1):27–37. doi:10.1179/000870403235002042
- Paul Tol: Colour schemes (SRON technical note). sronpersonalpages.nl/~pault/
- CARTO: CARTOColors (CC-BY-4.0). github.com/CartoDB/CartoColor
- Masataka Okabe, Kei Ito: Color Universal Design (CUD): how to make figures and presentations that are friendly to colorblind people. jfly.uni-koeln.de/color/
- Cynthia Brewer, Mark Harrower (ColorBrewer): ColorBrewer, via d3-scale-chromatic (Apache-2.0). github.com/d3/d3-scale-chromatic
- Further reading: Color blindness (Wikipedia)
Back to contents
Hide zeros
In Appearance › Numbers in the regions › More number options, Hide zeros leaves a region with no elements empty instead of printing 0. It applies on screen and in exported figures and is saved in session files. Fade counts, in the same place, only softens small numbers instead.
Back to contents
Statistics (Compare sets)
Compare sets (under the diagram) looks at every pair of the sets shown. It asks one question: do these two lists share more items than two random lists of the same sizes, drawn from the same pool, would?
Please read: InteractiVenn computes these numbers exactly as described here, but it cannot know how your lists were made. Choosing the total, the test and the correction for your study is your decision, and we cannot give advice on individual analyses. We take no responsibility for conclusions drawn from a method or total that does not fit your data. When in doubt, a statistician at your institution may be able to help.
What each column means
- Sizes and Overlap: the different items in each set and in both (compared ignoring upper and lower case, like the diagram).
- Jaccard: overlap divided by all different items in the two sets (Jaccard 1912). It needs no total and is shown always.
- Expected: the overlap chance alone would give, size 1 × size 2 / total.
- Fold enrichment: observed overlap / expected. 1 is what chance gives; 1.25 is a quarter more.
- p: the one-sided hypergeometric test, the chance of an overlap at least this large if the two lists were independent random picks from the total. It is the same as a one-sided Fisher exact test on the 2 × 2 table (Rivals et al. 2007). Only over-representation is tested.
- Adjusted p: p after the correction chosen for testing several pairs.
The total
The p-value depends on the total: the number of items that could have ended up in any of your lists, counted the same way for all of them (for example, the genes that passed your expression filter). It is usually much larger than your lists together and smaller than "everything that exists". Too large a total makes chance overlaps look significant; too small a total, such as the union of the lists, hides real ones. The app refuses a total smaller than the different items in your lists, warns when it equals them, and shows no p-value when the field is empty. Background choice is discussed by Timmons et al. (2015) and Wijesooriya et al. (2022). The total is saved in .interactivenn session files.
Which total should I enter? A worked example
The total is the whole pool: every item that could have appeared in any of your lists, measured the same way. It is a property of the study, not of the picture.
You annotated gene families in 8 plant genomes. Together the 8 genomes contain 25,000 gene families. You show 6 species in a Venn diagram (or two diagrams of 4). The families present in those 6 add up to 21,000. Enter 25,000. Leaving species out of the picture does not change which families could have been found.
Suppose species A has 8,000 families, B has 6,000, and they share 2,200.
- With N = 25,000 (correct), 8,000 × 6,000 / 25,000 = 1,920 shared families are expected by chance. 2,200 is more, p ≈ 10⁻¹⁸.
- With N = 21,000 (only what the picture shows), 2,286 are expected and the same overlap looks below chance, p ≈ 1.
- With N = 40,000 (every family in a database, including ones no genome could show), 1,200 are expected and p ≈ 10⁻²³⁷, a big overstatement.
More situations, each with the number to enter and the tempting wrong numbers (the same list is in the Compare sets panel):
- Survey. Your city has 600,000 inhabitants. The survey got 5,000 answers, 1,000 were removed as low quality, so 4,000 are analysed. The Venn shows only 500 answers, the people aged 20 to 25.
Enter 4,000: the number the Venn's sets were drawn from: the answers that were analysed.
Not 600,000 (everyone in the city, most of whom were never asked); 5,000 (the answers received, including the 1,000 you removed); 500 (only the people aged 20 to 25 that the picture shows, a part of the 4,000).
- RNA-seq. The genome has 20,000 genes. 14,000 are expressed in your tissue and 12,000 of those passed the filter and were tested for differential expression. Your two lists are the genes up in treatment A (800) and up in treatment B (600), picked from the tested genes.
Enter 12,000: the genes that were tested: only they could have ended up in a list.
Not 20,000 (all genes of the genome, many of which could never be in a list; it makes an ordinary overlap look significant); 14,000 (the expressed genes, including 2,000 that were filtered out before testing); 1,350 (the union of your two lists, which hides real overlaps).
- Two platforms. Array A measures 15,000 genes and array B measures 13,000. 11,000 genes are on both. You compare a list from each array.
Enter 11,000: the genes measured on both: only those could appear in both lists (first remove from each list the genes the other array cannot measure).
Not 15,000 (what array A measures, including genes array B never saw); 28,000 (the two arrays added together, which counts the 11,000 shared genes twice).
- Gene families in eight genomes. You annotated gene families in 8 plant genomes, which together hold 25,000 families. The Venn shows 6 of the species, and the families present in those 6 add up to 21,000.
Enter 25,000: the families of the whole study: leaving species out of the picture does not change which families could have been found.
Not 21,000 (only what the picture shows, which is too small and hides real overlaps); 40,000 (every family in a public database, including ones no genome of yours could show).
- Lists taken from papers. You collected the top genes from three papers (200, 150 and 300 genes). Each paper tested a different set of genes and did not say how many.
Enter leave it empty: there is no real total. The table then shows how much the lists share (Jaccard) without a p-value.
Not the union of the three lists (it assumes every possible gene is in some list, and it hides real overlaps); the largest list (it assumes all other genes are inside the biggest paper's list).
Rules of thumb: use the list of items that were tested (genes on the array, proteins quantified, species in the regional pool, countries that could join), not the union of the lists you drew. When in doubt, the union of all the study's lists (all 8 here) is the smallest honest total. The union of the sets shown is too small. The examples with a suggested total (File › Examples) fill it in for you, with a note saying where it comes from.
Corrections for testing several pairs
With 5 sets there are 10 pairs, and at p < 0.05 one of them would look significant by chance about 40% of the time. The corrections differ in what they keep under control:
- Holm (Holm 1979, the default) keeps the chance of any false finding among all pairs at 5% (the family-wise error rate), like Bonferroni, but is never less powerful: it compares the smallest p with 0.05/m, the next with 0.05/(m − 1), and so on, and needs no extra assumption. This might be a reasonable default when a few pairs are compared and each claimed overlap should hold on its own.
- Bonferroni (Bonferroni 1936; Dunn 1961) multiplies every p by the number of pairs. It controls the same error as Holm and is the simplest to explain, but is more conservative. It may be useful when a reader or journal expects it.
- Benjamini-Hochberg (Benjamini & Hochberg 1995) keeps the expected share of false findings among the significant pairs at 5% (the false discovery rate), when the tests are independent or positively related. It finds more, at the price of some false findings, and is often used when many pairs are screened.
- None shows raw p-values. It is not recommended when several pairs are tested; it can make sense for a single pair decided before looking at the data.
The adjusted p-values are computed like R's p.adjust, capped at 1. Every export (.csv, .xlsx and Copy pairwise table) ends with a method note naming the test, the total, the number of pairs and the correction, which you can adapt for a methods section.
References
- Benjamini Y, Hochberg Y (1995). Controlling the false discovery rate: a practical and powerful approach to multiple testing. Journal of the Royal Statistical Society B 57(1):289–300. doi:10.1111/j.2517-6161.1995.tb02031.x
- Bonferroni CE (1936). Teoria statistica delle classi e calcolo delle probabilità. Pubblicazioni del R Istituto Superiore di Scienze Economiche e Commerciali di Firenze 8:3–62.
- Dunn OJ (1961). Multiple comparisons among means. Journal of the American Statistical Association 56(293):52–64. doi:10.1080/01621459.1961.10482090
- Holm S (1979). A simple sequentially rejective multiple test procedure. Scandinavian Journal of Statistics 6(2):65–70. jstor.org/stable/4615733
- Jaccard P (1912). The distribution of the flora in the alpine zone. New Phytologist 11(2):37–50. doi:10.1111/j.1469-8137.1912.tb05611.x
- Rivals I, Personnaz L, Taing L, Potier M-C (2007). Enrichment or depletion of a GO category within a class of genes: which test? Bioinformatics 23(4):401–407. doi:10.1093/bioinformatics/btl633
- Timmons JA, Szkop KJ, Gallagher IJ (2015). Multiple sources of bias confound functional enrichment analysis of global -omics data. Genome Biology 16:186. doi:10.1186/s13059-015-0761-7
- Wijesooriya K, Jadaan SA, Perera KL, Kaur T, Ziemann M (2022). Urgent need for consistent standards in functional enrichment analysis. PLoS Computational Biology 18(3):e1009935. doi:10.1371/journal.pcbi.1009935
Back to contents
Testing whether an overlap is significant (hypergeometric / Fisher's exact test)
Yes, InteractiVenn can test overlap significance. For every pair of sets it computes the hypergeometric test (the same as a one-sided Fisher's exact test): the p-value of seeing an overlap at least this large if the two lists were random picks from the same pool. It also shows the expected overlap, the fold enrichment and the Jaccard index, and corrects the p-values for several pairs with Holm (default), Bonferroni or Benjamini–Hochberg (false discovery rate).
Add 2 to 6 sets, then open Compare sets under the diagram (the line “Is this overlap more than chance?” opens it). Enter the total N, the whole pool the lists were drawn from, and read the p-value and the adjusted p-value of each pair. Without a total only the Jaccard index is shown.
Which total N fits which study
- Survey: the answers that were analysed (4,000 of 5,000 received), not the city's population.
- RNA-seq, differentially expressed genes: the genes that were tested after filtering (for example 12,000), not all 20,000 genes of the genome.
- Two arrays or platforms: the genes measured on both (for example 11,000), after removing from each list the genes the other cannot measure.
- Gene families in 8 genomes, 6 shown: the families of the whole study (25,000), not the 21,000 the picture shows.
- Microbiome: the OTUs or species detected in the whole study after filtering, not only those in the sites you compare.
Too large a total makes chance overlaps look significant; too small a total (such as the union of your lists) hides real ones. The numbers are exact; choosing the total and the test for your study is your decision.
Worked examples, corrections and references: Statistics (Compare sets)
Back to contents
Values (expression, intensity, scores)
A Venn diagram counts which elements are shared. When each element also has a value in each set (expression, intensity, abundance, a fold change or a score), “shared” can hide large differences: a gene expressed in three tissues may be a hundred times higher in one. A values table shows them, without changing how the diagram works. With no values loaded, nothing on the page changes.
Loading values
Use File › Open values table… (or drop a .csv, .tsv or .txt file on the page). The table is either wide, with the element in the first column and one column of numbers per set, or long, with three columns named element (any name), set and value. Elements are matched to your sets ignoring case, as the counts are. Leave a missing value blank or write NA. Repeated rows for one element can be combined (largest absolute value, mean or most significant row); text where a number belongs is refused, and the message says which rows. Rows that name no element of your sets are kept but not used, and the bar under the diagram says how many. Each set takes the column with its name (or, when no name matches, the column in its position); change it under “Which column each set takes”. Say whether the numbers are as measured or log2 values: it changes how “differ k-fold” is computed. On an empty tool, the table's columns become the sets (elements with a value); “Make one set per column” does the same with a threshold, and can be undone.
Make sets from one column (in the values bar) builds sets from a rule such as value > t, |value| ≥ t, or up and down. A second column per set (for example the adjusted p-value) can be added under “Which column each set takes” and is used only by this combined rule (for example padj < 0.05 and |log2FC| ≥ 1); the threshold filter, the region lists and the hover card use the first column only. If your table has several rows per element, you are offered a way to combine them (largest |value|, mean, or the row with the smallest p-value, q-value or FDR when such a column is found by name); “largest |value|” and “mean” work column by column, so one element's numbers may come from different rows.
The values are processed in your browser only and are never stored in it. They are saved in session files (File › Save session), but share links don't include them: a table is too big for a link. Save the session to keep them.
Threshold filter
“Count only elements with value ≥, ≤ or |value| ≥ X” applies to one set or to all sets. The regions are counted again from the elements that pass (an element without a value in that set does not pass); unions, trees, region lists and exports follow. Your lists are unchanged, the bar shows the rule while it is on, the hover card gives each region's count before the filter (“Was 682”), and Clear filter removes it in one click.
Discordant elements
An element in two or more sets is discordant when its values disagree: they differ at least k-fold (largest over smallest, or a difference of log2 k for log2 values; k is 2 unless you change it), or, with the other rule, they differ in direction (one above zero, one below). Only sets with a value count. Hovering a region shows its count with the number of discordant elements (“682 · 17 differ ≥2×”) and each set's median. With as-measured values, an element at or below zero in one set and above it in another counts as discordant.
The region list, plots and exports
Clicking a region lists its elements with a value column per set. Click a column heading to sort by it; “Show only discordant” keeps the flagged rows. Under the list, a strip plot shows each set's values (the bar is the median), and a scatter plots one set against another (choose which with three or more sets): discordant elements are marked, the dashed line is equal values, and clicking a dot finds that element in the list. The region's .csv and .xlsx, the selection export and the region lists (a second sheet, “Values”) include the values and the discordant flag. Lists of union regions (unions and trees) show no values yet.
Three examples from published studies come with values: Tissue expression, with values (Human Protein Atlas nTPM), Oral cancer: invasive front vs inner tumour (Carnielli et al. 2018, median log2 LFQ) and Head and neck cancer: proteins linked to lymph-node status(Busso-Lopes et al. 2022, log2 pN+/pN0). Their sources are in Example datasets above.
Back to contents
From a table with one column per sample
Some tables have one column per sample or condition: an OTU table of read counts, a proteomics matrix of intensities. Open it with File › Open values table… (on an empty tool its columns become the sets), or load it while your own sets are there. The values bar then offers Make one set per column….
Choose the columns (all by default) and a rule: present, which means the value is neither empty nor 0 (an abundance of 0 means absent), or a limit: ≥, >, |value| ≥, ≤ or <. Each chosen column becomes a set named after it, with the elements that pass. Up to 16 columns become sets; the others are kept as extra sets, without a values column. Your sets are replaced and Undo brings them back; the table stays attached.
Limits: a missing value never passes, whatever the rule; elements are matched ignoring case; nothing leaves your browser. Examples: Microbiome OTU table (made up) and Proteomics intensity matrix (made up) in File › Examples; the tour From a table with one column per sample uses the first.
More on the page “What you can do”: Turn an abundance or intensity table into sets.
Back to contents
Result tables are recognised
When a table has the columns a differential-expression or proteomics tool writes, the names are recognised, ignoring case and with a prefix such as “Heat.” or “treated_vs_control_”: DESeq2 (log2FoldChange, padj, pvalue, baseMean), edgeR (logFC, FDR, PValue, logCPM), limma (logFC, adj.P.Val, P.Value, AveExpr), proteomics (log2FC, q-value, −log10 p) and Seurat markers (avg_log2FC, p_val_adj).
The values bar says what it recognised and sets the scale to log2 for a log2 fold change. Make up and down sets from one column then starts with the effect column, the significance column and the usual rule, padj < 0.05 and |log2FC| ≥ 1, labelled as a proposal. Nothing is made until you press Make sets, and every field can be changed. Names it does not know are left alone; with several contrasts the first is used.
Try it with Differential expression results (made up) in File › Examples.
Back to contents
Euler diagrams
The Venn | UpSet | Euler buttons above the diagram offer Euler next to Venn and UpSet, for 2 to 16 sets; from 7 sets only when the data has at most 25 non-empty regions. An Euler diagram draws each region with an area proportional to its count: a big overlap looks big, and combinations with no elements are left out. Nothing runs by itself: press Run layout. If it is rejected, Find minimum size that passes hides the smallest regions: a minimum size k drops regions with fewer than k elements, and the search hides at most 10% of the elements. Hidden regions are always said beside the diagram and in the export caption. The ellipses are fitted in the background (the notice shows progress and Cancel), and the Venn diagram stays until a faithful layout is found. Any change to the data brings the Venn back; the layout is never saved.
The fidelity readout
Under an Euler diagram, one line says how far the worst region's share of the area is from its share of the elements (in points of the whole picture), with the stress of the fit, and names any region too small to draw. The table beside it lists every region's count, its share of the elements and its share of the area. Hover a region or its count for the numbers; click it to list its elements.
Why some data can't be drawn
Ellipses cannot draw every pattern of overlaps: some combinations need shapes that ellipses cannot make. A layout is shown only if no region is off by more than 2 points, no empty combination takes more than 0.5% of the area, no region with 1% or more of the elements is missing, and all missing regions together hold at most 2% of the elements. Otherwise the reasons are listed in plain words and the Venn diagram, which always shows every combination, stays.
The fitting method is ported from eulerr by Johan Larsson (MIT licence): Larsson J. eulerr: Area-Proportional Euler and Venn Diagrams with Ellipses. doi:10.32614/CRAN.package.eulerr. Region areas are computed exactly from the ellipses, not estimated.
Back to contents
Link to a diagram from a script or notebook
A diagram can be a link. Everything the link needs is in the text after the # of the address, so a script or notebook can write that text itself, with no server, account or package, and anyone who opens the link sees the interactive diagram. There is no API: the link is the only interface.
Copy the code
Open Export ▾ › Copy link as code, choose Python, R or Shell and copy the lines. Each is at most 15 lines, uses only what the language already has, and prints the link for the lists you have now. Change the lists in the code and run it again for another diagram. See also Link to an interactive diagram from a report or notebook on the What you can do page.
What the link holds
The lists, the set names and the colours. Unions, trees, the colour mode and the other display settings can be in a link too (the Share link button writes them), but the code leaves them out so that it stays short. A values table is never in a link.
The address, then #d=v2r. and the base64url text of a small JSON object. Its key s holds one pair per set: the name and the elements. The elements are written as one separator character followed by the elements joined with it, using the first of comma, semicolon, space, bar, tab or line break that no element contains (the Liver set with the elements g1 and g2 is the pair Liver and ",g1,g2"). With more than eight sets the mark is v3r. The Share link button writes the same object compressed (v2c), which is shorter; both open.
Limits and privacy
Nothing after the # is sent to a server: the browser keeps it to itself, so your lists never reach us. The code writes the link uncompressed, so it is longer than the one the Share link button makes. Above 100,000 characters the dialog gives no code, and some chat and mail apps cut links already above about 8,000 characters; for long lists save a session file instead.
Back to contents
Citation
If InteractiVenn helps your work, please cite it. The Cite menu with the diagram copies the reference in several styles, and the Citation page has it in full.
Heberle H. et al. (2015) InteractiVenn: a web-based tool for the analysis of sets through Venn diagrams. BMC Bioinformatics 16:169. DOI: 10.1186/s12859-015-0611-3.
When you use an example dataset, please also cite its source (see Example datasets).
Back to contents
Combine target databases and intersect with your compounds' targets
This is the network-pharmacology Venn diagram: several target databases merged into one disease-target list, then intersected with a compound's targets. Load each list as a set, type the letters of the database sets in the List code box (abc for three of them) and press Start, then open the overlap region to list its genes.
Copy the list with "Copy as one per line" (for a spreadsheet column) or "Copy as comma-separated" (for a query, a script or a form). Both copy the whole list of the region.
The lists are compared exactly as written (case is ignored). InteractiVenn does not look up targets, does not remove duplicates across databases and does not check which name is current; use one identifier, such as gene symbols, in every list. The example "Disease-target lists and compound targets (made up)" has invented symbols, so its numbers say nothing about biology.
The tour "Network pharmacology" walks through the steps on the example.
Back to contents
FAQ
Is my data sent anywhere?
Your data stays on your computer. It is not sent through the internet. We never receive, see or store your data. Your data is processed exclusively in your web browser of choice. If you prefer extra anonymity, you may use internal codes instead of real identifiers, although this is not required.
Where the Feedback box is shown, the only thing that leaves your browser is what you press Send on (or a thumbs vote): your message, the time and the page's build number, sent to this same site and nothing else. Never your sets.
Does the browser remember anything?
Your lists are never kept in this browser. Save the session (File › Save session) to keep your work, and open the file next time. Settings (theme, tour progress, dismissed notes) are remembered for your next visit only if you tick “Save my preferences on this device” in News and tours, or in Settings. The box is never ticked for you, and until you tick it nothing is stored. Once ticked, they are kept in this browser's local storage under two keys, interactivenn.storageConsent and interactivenn.prefs; InteractiVenn doesn't collect them and they never leave your browser. Unticking the box deletes both keys.
How do I switch between light and dark?
InteractiVenn follows your device's light or dark setting. To choose, open Settings (the gear at the top right; in the menu on narrow screens) and pick Light, Dark or System. On the dark theme the diagram uses palettes made for a dark background (the default is Tol Muted), with white counts and lighter labels; the colour scores are computed for the dark background. Exports default to the background you see (dark on the dark theme); choose White, Dark or Transparent under Export › Size, DPI and font…. Copy image copies exactly what is on screen. In Windows High Contrast and other forced-colour modes, the diagram keeps its colours.
Can it handle large datasets?
Files with hundreds of thousands of elements load in the background: a notice shows progress, an estimate and a Cancel button, and the page stays usable meanwhile. Large sets are shown read-only (their first elements, with a search box) instead of in editable boxes. Counts are always exact; the elements of a region are collected when you open it or export.
Can I use it to clean lists?
Yes. Besides visualisation, you can use the tool to standardise and clean list collections: import (or paste) lists, remove duplicates, verify overlaps via percentages, then export a clean unified dataset or intersection table.
Which total should I enter in Compare sets?
Every item that could have been in any of your lists, measured the same way, not the union of the lists you drew. See the worked example in Statistics.
Can I load an OTU table or an intensity matrix?
Yes. Open it as a values table (File › Open values table…), then use Make one set per column… in the values bar: choose the columns and a rule such as “present” or “≥ 10”. See “From a table with one column per sample” above.
Can I make a link to a diagram from a script or notebook?
Yes. Export ▾ › Copy link as code gives Python, R or shell lines that build a link from your lists, using only the language's standard library. Everything the link needs is in the text after the #, which is never sent to a server. There is no API.
Can I copy the genes of a region for the next tool?
Yes. Click the number of the region to list its elements, then choose Copy as one per line or Copy as comma-separated. Both copy the whole list, not only what is on screen.
Which languages is it available in?
InteractiVenn is available in 8 languages: English, Português (Brasil), Español, Deutsch, 简体中文, Français, Italiano and 日本語. Choose one in Settings (the gear in the header), under Language. All but English are computer translations; figures, exported files, set names and the citation always stay in English.
Can I use InteractiVenn in class?
Yes. The page For teaching has set operations with a diagram and an Ask example for each, a classroom exercise that uses counts only, and made-up examples. Nothing is stored and no account is needed.
Back to contents