[{"data":1,"prerenderedAt":857},["ShallowReactive",2],{"content-query-mC6DgLwyK2":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"heading":10,"prompt":11,"tags":15,"files":19,"nav":6,"presets":20,"gallery":33,"body":35,"_type":850,"_id":851,"_source":852,"_file":853,"_stem":854,"_extension":855,"sitemap":856},"/tools/volcano-plot","tools",false,"","Volcano Plot Generator for RNA-seq and Omics Data","Create volcano plots online from differential expression or screening results. Highlight fold change, significance, and top hits with AI.","Volcano Plot Generator",{"prefix":12,"label":13,"placeholder":14},"Create a volcano plot","Describe the volcano plot you want to create","e.g. volcano plot with log2FC threshold 1.5 and p-value 0.05, label the top 10 genes",[16,17,18],"charts","statistics","science",true,[21,27],{"label":22,"prompt":23,"dataset_url":24,"dataset_title":25,"dataset_citation":26},"COVID-19 gene expression","volcano plot of differential gene expression between SARS-CoV-2 infected and mock-treated cells; use log2FC threshold of 1 and adjusted p-value \u003C 0.05; color upregulated genes red, downregulated blue; label the top 15 significant genes","https://raw.githubusercontent.com/CebolaLab/RNA-seq/master/tutorial_data/DESeq2_results.csv","RNA-seq differential expression results (DESeq2 format)","CebolaLab / GitHub",{"label":28,"prompt":29,"dataset_url":30,"dataset_title":31,"dataset_citation":32},"Cancer vs normal expression","volcano plot comparing tumor vs normal tissue gene expression; threshold at |log2FC| > 1.5 and padj \u003C 0.01; annotate top 20 hits by significance; add quadrant labels","https://raw.githubusercontent.com/hbctraining/DGE_workshop/master/data/DESeq2_results.csv","DESeq2 differential expression results","Harvard Bioinformatics Core / GitHub",[34],"/img/tools/volcano-plot.png",{"type":36,"children":37,"toc":839},"root",[38,47,89,115,141,147,217,223,394,406,412,514,520,630,642,648,751,757,778,784,794,804,822],{"type":39,"tag":40,"props":41,"children":43},"element","h2",{"id":42},"what-is-a-volcano-plot",[44],{"type":45,"value":46},"text","What Is a Volcano Plot?",{"type":39,"tag":48,"props":49,"children":50},"p",{},[51,53,59,61,66,68,73,75,80,82,87],{"type":45,"value":52},"A ",{"type":39,"tag":54,"props":55,"children":56},"strong",{},[57],{"type":45,"value":58},"volcano plot",{"type":45,"value":60}," is a scatter plot designed to simultaneously display the ",{"type":39,"tag":54,"props":62,"children":63},{},[64],{"type":45,"value":65},"statistical significance",{"type":45,"value":67}," and ",{"type":39,"tag":54,"props":69,"children":70},{},[71],{"type":45,"value":72},"magnitude of change",{"type":45,"value":74}," for a large number of features — typically genes, proteins, or genetic variants. The x-axis shows the ",{"type":39,"tag":54,"props":76,"children":77},{},[78],{"type":45,"value":79},"log₂ fold change",{"type":45,"value":81}," (how much a feature increases or decreases between two conditions), and the y-axis shows ",{"type":39,"tag":54,"props":83,"children":84},{},[85],{"type":45,"value":86},"−log₁₀(p-value)",{"type":45,"value":88}," (flipping the p-value scale so that more significant results appear higher up). The result looks like a volcanic eruption: a dense cloud of uninteresting features at the bottom center, with significant hits \"erupting\" upward at the left and right edges.",{"type":39,"tag":48,"props":90,"children":91},{},[92,94,99,101,106,108,113],{"type":45,"value":93},"The chart's strength is its ability to show ",{"type":39,"tag":54,"props":95,"children":96},{},[97],{"type":45,"value":98},"thousands of features at once",{"type":45,"value":100}," while making the important ones immediately obvious. A gene that appears in the upper-right corner is both ",{"type":39,"tag":54,"props":102,"children":103},{},[104],{"type":45,"value":105},"strongly upregulated",{"type":45,"value":107}," (large positive fold change) and ",{"type":39,"tag":54,"props":109,"children":110},{},[111],{"type":45,"value":112},"highly statistically significant",{"type":45,"value":114}," (tiny p-value) — the ideal combination. Upper-left means strongly downregulated and significant. Features near the bottom or center are either not significant, not changed, or both.",{"type":39,"tag":48,"props":116,"children":117},{},[118,120,125,127,132,134,139],{"type":45,"value":119},"Volcano plots originated in genomics but apply to any setting where you compare two groups across many features simultaneously: ",{"type":39,"tag":54,"props":121,"children":122},{},[123],{"type":45,"value":124},"proteomics",{"type":45,"value":126}," (treatment vs control protein abundance), ",{"type":39,"tag":54,"props":128,"children":129},{},[130],{"type":45,"value":131},"GWAS",{"type":45,"value":133}," (genetic variant association across the genome), ",{"type":39,"tag":54,"props":135,"children":136},{},[137],{"type":45,"value":138},"metabolomics",{"type":45,"value":140},", or even large-scale A/B testing (many metrics compared at once across two cohorts).",{"type":39,"tag":40,"props":142,"children":144},{"id":143},"how-it-works",[145],{"type":45,"value":146},"How It Works",{"type":39,"tag":148,"props":149,"children":150},"ol",{},[151,182,198],{"type":39,"tag":152,"props":153,"children":154},"li",{},[155,160,162,167,169,173,175,180],{"type":39,"tag":54,"props":156,"children":157},{},[158],{"type":45,"value":159},"Upload your data",{"type":45,"value":161}," — provide a CSV or Excel file with at least three columns: a ",{"type":39,"tag":54,"props":163,"children":164},{},[165],{"type":45,"value":166},"feature identifier",{"type":45,"value":168}," (gene name, protein ID, SNP rsID), a ",{"type":39,"tag":54,"props":170,"children":171},{},[172],{"type":45,"value":79},{"type":45,"value":174},", and a ",{"type":39,"tag":54,"props":176,"children":177},{},[178],{"type":45,"value":179},"p-value",{"type":45,"value":181}," (raw or adjusted). This is the standard output format from DESeq2, edgeR, limma, or any differential analysis tool.",{"type":39,"tag":152,"props":183,"children":184},{},[185,190,192],{"type":39,"tag":54,"props":186,"children":187},{},[188],{"type":45,"value":189},"Describe the plot",{"type":45,"value":191}," — e.g. ",{"type":39,"tag":193,"props":194,"children":195},"em",{},[196],{"type":45,"value":197},"\"volcano plot with |log2FC| > 1 and padj \u003C 0.05 thresholds, label the top 20 genes by significance, color upregulated red and downregulated blue\"",{"type":39,"tag":152,"props":199,"children":200},{},[201,206,208,215],{"type":39,"tag":54,"props":202,"children":203},{},[204],{"type":45,"value":205},"Get the visualization",{"type":45,"value":207}," — the AI generates Python code using ",{"type":39,"tag":209,"props":210,"children":212},"a",{"href":211},"https://plotly.com/python/",[213],{"type":45,"value":214},"Plotly",{"type":45,"value":216}," to render the plot with threshold lines, color-coded points, and gene labels",{"type":39,"tag":40,"props":218,"children":220},{"id":219},"required-data-format",[221],{"type":45,"value":222},"Required Data Format",{"type":39,"tag":224,"props":225,"children":226},"table",{},[227,251],{"type":39,"tag":228,"props":229,"children":230},"thead",{},[231],{"type":39,"tag":232,"props":233,"children":234},"tr",{},[235,241,246],{"type":39,"tag":236,"props":237,"children":238},"th",{},[239],{"type":45,"value":240},"Column",{"type":39,"tag":236,"props":242,"children":243},{},[244],{"type":45,"value":245},"Description",{"type":39,"tag":236,"props":247,"children":248},{},[249],{"type":45,"value":250},"Example values",{"type":39,"tag":252,"props":253,"children":254},"tbody",{},[255,306,346],{"type":39,"tag":232,"props":256,"children":257},{},[258,277,282],{"type":39,"tag":259,"props":260,"children":261},"td",{},[262,269,271],{"type":39,"tag":263,"props":264,"children":266},"code",{"className":265},[],[267],{"type":45,"value":268},"gene",{"type":45,"value":270}," / ",{"type":39,"tag":263,"props":272,"children":274},{"className":273},[],[275],{"type":45,"value":276},"feature",{"type":39,"tag":259,"props":278,"children":279},{},[280],{"type":45,"value":281},"Feature identifier",{"type":39,"tag":259,"props":283,"children":284},{},[285,291,293,299,300],{"type":39,"tag":263,"props":286,"children":288},{"className":287},[],[289],{"type":45,"value":290},"BRCA2",{"type":45,"value":292},", ",{"type":39,"tag":263,"props":294,"children":296},{"className":295},[],[297],{"type":45,"value":298},"TP53",{"type":45,"value":292},{"type":39,"tag":263,"props":301,"children":303},{"className":302},[],[304],{"type":45,"value":305},"rs12345",{"type":39,"tag":232,"props":307,"children":308},{},[309,318,323],{"type":39,"tag":259,"props":310,"children":311},{},[312],{"type":39,"tag":263,"props":313,"children":315},{"className":314},[],[316],{"type":45,"value":317},"log2FoldChange",{"type":39,"tag":259,"props":319,"children":320},{},[321],{"type":45,"value":322},"log₂(condition A / condition B)",{"type":39,"tag":259,"props":324,"children":325},{},[326,332,333,339,340],{"type":39,"tag":263,"props":327,"children":329},{"className":328},[],[330],{"type":45,"value":331},"-3.2",{"type":45,"value":292},{"type":39,"tag":263,"props":334,"children":336},{"className":335},[],[337],{"type":45,"value":338},"0.1",{"type":45,"value":292},{"type":39,"tag":263,"props":341,"children":343},{"className":342},[],[344],{"type":45,"value":345},"4.7",{"type":39,"tag":232,"props":347,"children":348},{},[349,366,371],{"type":39,"tag":259,"props":350,"children":351},{},[352,358,360],{"type":39,"tag":263,"props":353,"children":355},{"className":354},[],[356],{"type":45,"value":357},"pvalue",{"type":45,"value":359}," or ",{"type":39,"tag":263,"props":361,"children":363},{"className":362},[],[364],{"type":45,"value":365},"padj",{"type":39,"tag":259,"props":367,"children":368},{},[369],{"type":45,"value":370},"Raw or adjusted p-value",{"type":39,"tag":259,"props":372,"children":373},{},[374,380,381,387,388],{"type":39,"tag":263,"props":375,"children":377},{"className":376},[],[378],{"type":45,"value":379},"0.0001",{"type":45,"value":292},{"type":39,"tag":263,"props":382,"children":384},{"className":383},[],[385],{"type":45,"value":386},"0.32",{"type":45,"value":292},{"type":39,"tag":263,"props":389,"children":391},{"className":390},[],[392],{"type":45,"value":393},"8.2e-15",{"type":39,"tag":48,"props":395,"children":396},{},[397,399,404],{"type":45,"value":398},"Column names are flexible — describe them in your prompt if they differ (e.g. ",{"type":39,"tag":193,"props":400,"children":401},{},[402],{"type":45,"value":403},"\"the fold change column is called 'FC' and p-value is 'p.adj'\"",{"type":45,"value":405},").",{"type":39,"tag":40,"props":407,"children":409},{"id":408},"interpreting-the-results",[410],{"type":45,"value":411},"Interpreting the Results",{"type":39,"tag":224,"props":413,"children":414},{},[415,431],{"type":39,"tag":228,"props":416,"children":417},{},[418],{"type":39,"tag":232,"props":419,"children":420},{},[421,426],{"type":39,"tag":236,"props":422,"children":423},{},[424],{"type":45,"value":425},"Position on plot",{"type":39,"tag":236,"props":427,"children":428},{},[429],{"type":45,"value":430},"What it means",{"type":39,"tag":252,"props":432,"children":433},{},[434,450,466,482,498],{"type":39,"tag":232,"props":435,"children":436},{},[437,445],{"type":39,"tag":259,"props":438,"children":439},{},[440],{"type":39,"tag":54,"props":441,"children":442},{},[443],{"type":45,"value":444},"Upper right",{"type":39,"tag":259,"props":446,"children":447},{},[448],{"type":45,"value":449},"Significantly upregulated — high fold change + low p-value",{"type":39,"tag":232,"props":451,"children":452},{},[453,461],{"type":39,"tag":259,"props":454,"children":455},{},[456],{"type":39,"tag":54,"props":457,"children":458},{},[459],{"type":45,"value":460},"Upper left",{"type":39,"tag":259,"props":462,"children":463},{},[464],{"type":45,"value":465},"Significantly downregulated — large negative fold change + low p-value",{"type":39,"tag":232,"props":467,"children":468},{},[469,477],{"type":39,"tag":259,"props":470,"children":471},{},[472],{"type":39,"tag":54,"props":473,"children":474},{},[475],{"type":45,"value":476},"Lower center",{"type":39,"tag":259,"props":478,"children":479},{},[480],{"type":45,"value":481},"Not significant — close to baseline, high p-value",{"type":39,"tag":232,"props":483,"children":484},{},[485,493],{"type":39,"tag":259,"props":486,"children":487},{},[488],{"type":39,"tag":54,"props":489,"children":490},{},[491],{"type":45,"value":492},"Right/left, bottom",{"type":39,"tag":259,"props":494,"children":495},{},[496],{"type":45,"value":497},"Large fold change but not statistically significant (possibly low power)",{"type":39,"tag":232,"props":499,"children":500},{},[501,509],{"type":39,"tag":259,"props":502,"children":503},{},[504],{"type":39,"tag":54,"props":505,"children":506},{},[507],{"type":45,"value":508},"Top center",{"type":39,"tag":259,"props":510,"children":511},{},[512],{"type":45,"value":513},"Highly significant but small effect size (common with very large samples)",{"type":39,"tag":40,"props":515,"children":517},{"id":516},"key-thresholds",[518],{"type":45,"value":519},"Key Thresholds",{"type":39,"tag":224,"props":521,"children":522},{},[523,543],{"type":39,"tag":228,"props":524,"children":525},{},[526],{"type":39,"tag":232,"props":527,"children":528},{},[529,534,539],{"type":39,"tag":236,"props":530,"children":531},{},[532],{"type":45,"value":533},"Threshold",{"type":39,"tag":236,"props":535,"children":536},{},[537],{"type":45,"value":538},"Typical default",{"type":39,"tag":236,"props":540,"children":541},{},[542],{"type":45,"value":430},{"type":39,"tag":252,"props":544,"children":545},{},[546,567,588,609],{"type":39,"tag":232,"props":547,"children":548},{},[549,557,562],{"type":39,"tag":259,"props":550,"children":551},{},[552],{"type":39,"tag":54,"props":553,"children":554},{},[555],{"type":45,"value":556},"|log₂FC| > 1",{"type":39,"tag":259,"props":558,"children":559},{},[560],{"type":45,"value":561},"2-fold change",{"type":39,"tag":259,"props":563,"children":564},{},[565],{"type":45,"value":566},"Feature doubled or halved between conditions",{"type":39,"tag":232,"props":568,"children":569},{},[570,578,583],{"type":39,"tag":259,"props":571,"children":572},{},[573],{"type":39,"tag":54,"props":574,"children":575},{},[576],{"type":45,"value":577},"p-value \u003C 0.05",{"type":39,"tag":259,"props":579,"children":580},{},[581],{"type":45,"value":582},"−log₁₀p > 1.3",{"type":39,"tag":259,"props":584,"children":585},{},[586],{"type":45,"value":587},"5% false positive rate (unadjusted)",{"type":39,"tag":232,"props":589,"children":590},{},[591,599,604],{"type":39,"tag":259,"props":592,"children":593},{},[594],{"type":39,"tag":54,"props":595,"children":596},{},[597],{"type":45,"value":598},"padj \u003C 0.05",{"type":39,"tag":259,"props":600,"children":601},{},[602],{"type":45,"value":603},"Stricter",{"type":39,"tag":259,"props":605,"children":606},{},[607],{"type":45,"value":608},"Benjamini-Hochberg adjusted; accounts for multiple testing",{"type":39,"tag":232,"props":610,"children":611},{},[612,620,625],{"type":39,"tag":259,"props":613,"children":614},{},[615],{"type":39,"tag":54,"props":616,"children":617},{},[618],{"type":45,"value":619},"|log₂FC| > 1.5",{"type":39,"tag":259,"props":621,"children":622},{},[623],{"type":45,"value":624},"More stringent",{"type":39,"tag":259,"props":626,"children":627},{},[628],{"type":45,"value":629},"~2.8-fold change; reduces false positives",{"type":39,"tag":48,"props":631,"children":632},{},[633,635,640],{"type":45,"value":634},"Always prefer ",{"type":39,"tag":54,"props":636,"children":637},{},[638],{"type":45,"value":639},"adjusted p-values",{"type":45,"value":641}," (padj, FDR) over raw p-values when available — raw p-values will produce many false positives across thousands of comparisons.",{"type":39,"tag":40,"props":643,"children":645},{"id":644},"example-prompts",[646],{"type":45,"value":647},"Example Prompts",{"type":39,"tag":224,"props":649,"children":650},{},[651,667],{"type":39,"tag":228,"props":652,"children":653},{},[654],{"type":39,"tag":232,"props":655,"children":656},{},[657,662],{"type":39,"tag":236,"props":658,"children":659},{},[660],{"type":45,"value":661},"Scenario",{"type":39,"tag":236,"props":663,"children":664},{},[665],{"type":45,"value":666},"What to type",{"type":39,"tag":252,"props":668,"children":669},{},[670,687,700,717,734],{"type":39,"tag":232,"props":671,"children":672},{},[673,678],{"type":39,"tag":259,"props":674,"children":675},{},[676],{"type":45,"value":677},"Standard DE analysis",{"type":39,"tag":259,"props":679,"children":680},{},[681],{"type":39,"tag":263,"props":682,"children":684},{"className":683},[],[685],{"type":45,"value":686},"volcano plot, log2FC threshold 1, padj \u003C 0.05, label top 15 genes by significance",{"type":39,"tag":232,"props":688,"children":689},{},[690,695],{"type":39,"tag":259,"props":691,"children":692},{},[693],{"type":45,"value":694},"Strict thresholds",{"type":39,"tag":259,"props":696,"children":697},{},[698],{"type":45,"value":699},"`volcano plot with",{"type":39,"tag":232,"props":701,"children":702},{},[703,708],{"type":39,"tag":259,"props":704,"children":705},{},[706],{"type":45,"value":707},"Custom colors",{"type":39,"tag":259,"props":709,"children":710},{},[711],{"type":39,"tag":263,"props":712,"children":714},{"className":713},[],[715],{"type":45,"value":716},"volcano plot, upregulated in orange, downregulated in teal, grey for non-significant",{"type":39,"tag":232,"props":718,"children":719},{},[720,725],{"type":39,"tag":259,"props":721,"children":722},{},[723],{"type":45,"value":724},"Add gene counts",{"type":39,"tag":259,"props":726,"children":727},{},[728],{"type":39,"tag":263,"props":729,"children":731},{"className":730},[],[732],{"type":45,"value":733},"volcano plot with count labels in each quadrant showing how many genes are up/down/NS",{"type":39,"tag":232,"props":735,"children":736},{},[737,742],{"type":39,"tag":259,"props":738,"children":739},{},[740],{"type":45,"value":741},"GWAS style",{"type":39,"tag":259,"props":743,"children":744},{},[745],{"type":39,"tag":263,"props":746,"children":748},{"className":747},[],[749],{"type":45,"value":750},"volcano plot using p-value column, color hits above genome-wide significance (5e-8) in red",{"type":39,"tag":40,"props":752,"children":754},{"id":753},"related-tools",[755],{"type":45,"value":756},"Related Tools",{"type":39,"tag":48,"props":758,"children":759},{},[760,762,768,770,776],{"type":45,"value":761},"Use the ",{"type":39,"tag":209,"props":763,"children":765},{"href":764},"/tools/ai-heatmap",[766],{"type":45,"value":767},"AI Heatmap Generator",{"type":45,"value":769}," to visualise expression levels of your significant hits across all samples after identifying them with a volcano plot. Use the ",{"type":39,"tag":209,"props":771,"children":773},{"href":772},"/tools/exploratory-data-analysis-ai",[774],{"type":45,"value":775},"Exploratory Data Analysis tool",{"type":45,"value":777}," to get summary statistics and distributions of your fold change and p-value columns before plotting.",{"type":39,"tag":40,"props":779,"children":781},{"id":780},"frequently-asked-questions",[782],{"type":45,"value":783},"Frequently Asked Questions",{"type":39,"tag":48,"props":785,"children":786},{},[787,792],{"type":39,"tag":54,"props":788,"children":789},{},[790],{"type":45,"value":791},"Some of my p-values are exactly 0 — what happens?",{"type":45,"value":793},"\nA p-value of 0 usually means it underflowed floating point precision (the true value is smaller than ~1e-300). The AI will automatically replace zeros with a small floor value (e.g. 1e-300) before applying −log₁₀ so these points still plot at the top of the chart.",{"type":39,"tag":48,"props":795,"children":796},{},[797,802],{"type":39,"tag":54,"props":798,"children":799},{},[800],{"type":45,"value":801},"Should I use raw p-values or adjusted p-values?",{"type":45,"value":803},"\nAlways use adjusted p-values (padj, FDR, BH-corrected) when available. Raw p-values across thousands of genes will produce many false positives. If your data only has raw p-values, mention this in your prompt and the AI can apply Benjamini-Hochberg correction for you.",{"type":39,"tag":48,"props":805,"children":806},{},[807,812,814,820],{"type":39,"tag":54,"props":808,"children":809},{},[810],{"type":45,"value":811},"My gene labels are overlapping — how do I fix it?",{"type":45,"value":813},"\nAsk for \"non-overlapping labels\" or \"label only the top N genes\". The AI can use ",{"type":39,"tag":263,"props":815,"children":817},{"className":816},[],[818],{"type":45,"value":819},"adjustText",{"type":45,"value":821}," (matplotlib) or reduce the number of labeled points to avoid overlap.",{"type":39,"tag":48,"props":823,"children":824},{},[825,830,832,837],{"type":39,"tag":54,"props":826,"children":827},{},[828],{"type":45,"value":829},"Can I highlight a specific list of genes?",{"type":45,"value":831},"\nYes — paste the gene names directly into your prompt: ",{"type":39,"tag":193,"props":833,"children":834},{},[835],{"type":45,"value":836},"\"highlight these genes in purple: BRCA1, TP53, EGFR, MYC\"",{"type":45,"value":838},". The AI will color and label exactly those points regardless of their significance threshold.",{"title":7,"searchDepth":840,"depth":840,"links":841},2,[842,843,844,845,846,847,848,849],{"id":42,"depth":840,"text":46},{"id":143,"depth":840,"text":146},{"id":219,"depth":840,"text":222},{"id":408,"depth":840,"text":411},{"id":516,"depth":840,"text":519},{"id":644,"depth":840,"text":647},{"id":753,"depth":840,"text":756},{"id":780,"depth":840,"text":783},"markdown","content:tools:012.volcano-plot.md","content","tools/012.volcano-plot.md","tools/012.volcano-plot","md",{"loc":4},1775502471196]