InteractiVenn compares lists. Paste or load two to sixteen lists of names, identifiers or any other items, and it draws the overlap as a Venn diagram, an UpSet plot or an area-proportional Euler diagram, with exact counts you can click. It is free, runs in your browser and needs no account. This page answers, one question at a time, what it can do.
What you can do
Compare up to 16 lists
Paste each list into its own box (one item per line), drop a file, or open an Excel sheet where every column is a set. You can show 2 to 6 sets as a Venn diagram or up to 16 as an UpSet plot. Matching ignores upper and lower case, and every region shows its exact count.
Example: Four gene lists from four studies: see which genes appear in all four and which in only one.
Venn diagram for up to 6 sets
A Venn diagram gives every combination of sets its own place, so you see the whole structure at once and can click any region. Strength: nothing is left out. Limit: from five sets on the regions become thin and are hard to read without hovering, which is why hovering names a region and clicking lists its elements.
Example: Three lists of customers by sales channel: the number in the middle is the customers who bought through all three.
UpSet plot online for up to 16 sets
An UpSet plot lists every non-empty intersection as a column and sorts the columns by size, by degree or by deviation from chance. Strength: it stays readable with 16 sets, up to 65,535 intersections. Limit: you cannot see a set as a whole, and the order decides which columns you see; an exported figure says how many columns it shows. For two to four sets a Venn diagram is usually the better figure.
Example: Sixteen tissues and the genes elevated in each: the tallest columns are the genes specific to one tissue.
Area-proportional Euler diagram
In an Euler diagram a bigger region means more elements. It is hard to draw exactly, so the tool runs it on request, checks its own fit and says which small regions it left out; if the fit is not faithful it refuses rather than mislead. Use it for 2 to 6 sets, or up to 16 that share few regions, when sizes matter more than showing every combination.
Example: Two reading lists where one is nearly inside the other: the Euler diagram shows the small list almost inside the large one.
Merge sets into unions, by hand or by similarity
Merge sets that belong together and see the diagram again with the merged shapes, step by step. Type a list such as ab; cd or a tree such as ((A,B),C), or use set names; or build the tree by clicking and dragging, let the overlaps suggest one (by Jaccard, overlap coefficient or shared count), or open one from a Newick file. In the UpSet view the tree stands beside the rows and a node collapses its sets into one row. Every arrangement of 2 to 6 sets has a diagram, and the merged groups keep their place so you can follow the change.
Example: Pool two methods of one family, then compare the pool with a third method.
Group sets by a known tree or by their overlaps
Group sets along a tree you already have, such as a taxonomy or a list of tissue groups, or let the overlaps suggest one, and then compare the two: the tool shows them one above the other and counts the groups they share. Two examples come with a tree; choosing one fills the tree code box, and nothing merges until you press Start. No tree is fetched: everything runs in your browser.
Example: Plant genomes comes with its NCBI Taxonomy tree: start it, step through the levels, then ask whether the gene families group the species the same way.
List the elements of any region
Click a number to open the elements of that region. Search the list, copy it, or download it as Excel or CSV. Gene and protein identifiers (Ensembl, RefSeq, UniProt, gene symbols, NCBI Gene) get a link to their database, which opens only when you click it. This works for regions of any size.
Example: Click the number for genes found by method A and B but not C, and download the list.
Find an item or ask a question about the sets
Type a name in Find to ring the regions that contain it. Type a question such as "in Liver and Kidney, not Heart" in Ask: the tool says how it read it, circles the regions and opens their elements together.
Example: Type KLK3 and see at once which methods retrieved that protein.
Add values: fold changes, expression, scores
Load a table with a number per element and set, such as log fold change or expression. The values appear in the region lists, can colour the regions, and a threshold filter keeps the elements that pass. A discordance mark flags elements that go up in one set and down in another.
Example: Genes shared by two tissues, with the ones whose expression differs at least 10-fold marked.
Hypergeometric test for gene list overlap
Compare sets tests whether two lists overlap more than chance with the hypergeometric test, which gives the same p-value as a one-sided Fisher's exact test, and corrects for many pairs with Holm, Bonferroni or Benjamini-Hochberg. You enter the total N, the number of items that could have been in either list. It also reports Jaccard similarity and writes a plain-words description.
Example: Two lists of 300 and 250 genes share 40: with the 20,000 genes measured as the total, the p-value says if 40 is more than chance.
Colours for colour-blind readers, dark theme, high contrast
The colour palettes are scored for how well people with red-green and other colour-vision deficiencies can tell the regions apart, and the score follows the colour mode you draw in. You can preview the diagram as a colour-blind reader sees it, switch on high contrast, and use a light or a dark theme.
Example: Pick a palette marked good for your set count before you export a figure for a paper.
Export PNG, SVG or PDF at the size you need
Download the figure as PNG, SVG or a vector PDF, at a width in millimetres, a DPI for PNG, and a font that is safe in print. Copy the image to the clipboard, or export the region table as Excel with every element.
Example: A 85 mm wide figure at 600 DPI for a journal column.
Save sessions and share a diagram
Save a session file to reopen the same lists, colours and settings later, and share a link that carries the diagram you see. The tool never keeps your lists in the browser, so the session file is how you keep your work.
Example: Send a collaborator a session file and they see exactly your diagram.
Large lists, up to hundreds of thousands of elements
Big files load in the background with progress and a Cancel button while the page stays usable, and the counts stay exact. The region dialog and the Excel export were built and benchmarked for lists of up to about a million elements.
Example: Three lists of 300,000 identifiers each compared on a laptop.
No upload, no account
Your lists are processed in your browser and are never sent anywhere or kept there. There are no cookies, no analytics and no third-party requests. Interface preferences are saved only if you agree.
Example: Compare lists that contain patient or customer identifiers without sending them to a server.
Turn an abundance or intensity table into sets
Some tables have one column per sample or condition: an OTU table of read counts, a proteomics matrix of intensities. Load it as a values table and make one set per column in one step, with the rule "present" (not empty and not 0) or a limit such as at least 10 reads or a log2 intensity of 24. Each set is named after its column and the values stay attached. A result table with the columns DESeq2, edgeR, limma, proteomics tools or Seurat write is recognised by its names and proposes the usual rule, padj < 0.05 and |log2FC| ≥ 1, for up and down sets; nothing is made until you press the button.
Example: A made-up OTU table of six samples: the OTUs found in all six, first with any read and then with at least 10 (File › Examples › Microbiome OTU table (made up)).
Link to an interactive diagram from a report or notebook
A diagram can be a plain link: the lists, names and colours sit in the text after the # of the address. Export ▾ › Copy link as code gives a few lines of Python, R or shell that build that link from your lists, with nothing to install and no server or account. Put the link in a report, a README or a notebook, and a reader gets the interactive diagram with exact counts and clickable regions. The lists travel inside the link and nothing after the # is sent to a server. There is no API; the link is the only interface.
Example: In a Jupyter notebook, run the Python lines on three marker lists and paste the printed link under your figure.
Who uses it: fields and data types
The 2015 article has been cited by 2,597 works (OpenAlex, October 2026); the numbers below are from the 2,511 with full records: 102 countries, 413 of them in 2024 alone. A citation shows that a work cites the tool, not how it used it, and fields are assigned by OpenAlex automatically.
Fields of the citing works
Citing works by OpenAlex field (each work has one main field):
- Biochemistry, genetics and molecular biology: 764 citing works
- Medicine: 636 citing works
- Agricultural and biological sciences: 405 citing works
- Environmental science: 225 citing works
Data types and the tasks they bring
Counted among the 2,151 citing works that have an abstract, by words in the title or abstract. Tags find what is named, not what is studied.
- Transcriptomics (RNA-seq, differentially expressed genes) (640 citing works): Differentially expressed genes shared between conditions, treatments or time points.
- Proteomics (400 citing works): Proteins found by two methods, in two tissues or in two fractions.
- Microbiome and metagenomics (282 citing works): Taxa or OTUs shared between sites, hosts or treatments.
- Non-coding RNA (157 citing works): miRNAs or lncRNAs shared between disease and control comparisons.
- Genomes and variants (135 citing works): Gene families shared between genomes, and variants shared between samples.
- Network pharmacology and docking (102 citing works): Targets of a compound that are also disease genes.
- Epigenomics (86 citing works): Differentially methylated sites or peaks shared between cell types.
- Metabolomics and lipidomics (83 citing works): Metabolites shared between groups or detected by two platforms.
Organisms named
Among the same 2,151 citing works:
- Humans and clinical samples: 848 citing works
- Bacteria: 395 citing works
- Plants: 354 citing works
- Mouse and rat: 273 citing works
See 188 published examples by field
Source: OpenAlex, October 2026 (snapshot of 12 October 2026; 2,511 of the 2,597 citing works could be retrieved).
Beyond research: everyday lists
Any question of the form "what do these lists have in common, and what is only in one?" fits. Each case below says what to paste and what to read off the diagram. The three marked with a button load a small made-up example (no real people or products).
Survey answers: who chose which topic
Paste one list of respondents per answer, for example the people who chose Science, Film or Project. Read the middle for people who chose all three, and the outer parts for people who chose one topic only. An engagement study of 2020 used exactly this to compare which activities people joined.
Overlap between literature searches
Paste the paper identifiers returned by each database query, and by citation chasing. Read which papers only one search found, which tells you which query adds the most; a software-engineering study of 2022 compared searches this way.
Reading lists
Paste the titles on each course or each friend's list. Read the books everyone has, and the ones only one list recommends.
Product features across plans
Paste the features of the Free, Plus and Team plans. Read what every plan has, and what only the top plan adds.
Students in several courses
Paste the class list of each course using ID numbers, not names. Read who takes two or three courses at once.
Customers across channels
Paste customer IDs per channel: shop, web, newsletter. Read who is reached by all channels and who by one.
Duplicates between spreadsheets
Paste a column from each spreadsheet. The duplicates inside a list are detected and can be removed, and the intersection is the rows both sheets share.
New in this release
These features arrived with this version of InteractiVenn.
Make sets from a values table
From a loaded values table, choose a column and a rule, such as greater than a threshold or absolute value at least a threshold, and fill sets with the elements that pass, for example an "up" and a "down" set.
A second value column per set
A values table can carry two columns per set, such as log fold change and adjusted p-value, and a rule can combine them.
Diagrams from region counts only
When you only have the counts of each region, type them into a table and draw the same diagram; the figure is tagged "counts only".
Hide zeros
An option under Numbers in the regions hides the zero counts for a calmer figure.
Profile line for ordered sets
For time courses and other ordered sets, the region dialog draws a small line of the median value per set.
One set per column, and recognised result columns
Open an abundance or intensity table as a values table and make one set per column. Columns written by DESeq2, edgeR, limma, proteomics tools or Seurat are recognised by name and proposed as padj < 0.05 and |log2FC| ≥ 1.
Network pharmacology
Merge several target lists with a list code such as abc, intersect the merged list with a compound's targets, and copy the overlap one per line or comma-separated. A made-up example and a tour show it.
Link to a diagram as code
Export ▾ › Copy link as code gives Python, R or shell lines that build a link to your diagram from your lists, for a report or notebook.
For teaching
A page with set operations in plain words and live diagrams, a classroom exercise that needs only counts, and made-up examples.