Intro to FUMA

Module 6, Genetics & Genomics Winter School 2026

Introduction

FUMA is an online tool that can be used to interpret the results of a GWAS. The primary aim of FUMA is to use biological and functional information to identify and prioritise relevant SNPs and genes. The original paper describing its SNP2GENE and GENE2FUNC tools was published in 2017. Since then, there have been several expansions to the FUMA website, with single-cell enrichment analysis added in 2019 and a new method for gene prioritisation (FLAMES) added in 2025.


FUMA offers several modules:

Module Purpose Inputs
SNP2GENE
  • Identifies independent SNP associations within significant loci
  • Maps your GWAS SNPs to genes using position, QTLs (optional) and chromatin mapping (optional)
  • Uses MAGMA (gene-based test) for gene-set enrichment (only MSigDB curated genesets and GO terms) and tissue enrichment
  • Provides a browser to search and visualise significant loci and annotations
GWAS summstats
GENE2FUNC
  • Performs analyses using only prioritised genes
  • Performs tissue enrichment using sets of differentially-expressed genes (different method to MAGMA)
  • Performs gene-set enrichment in various databases

Direct input from SNP2GENE job (easiest)

OR

List of genes

Cell Type
  • Identifies enrichment in individual cell types

Direct input from SNP2GENE job (easiest)

OR

MAGMA gene analysis output file

FLAMES
  • Uses a machine-learning classifier to identify the most likely effector genes for each locus

Direct input from SNP2GENE job (easiest)

  • Check ‘keep input files for FLAMES’ when submitting SNP2GENE job

OR

GWAS summary statistics

  • However, requires very specific formatting



As running these modules can take several hours, we have already run these analyses and made the results available for you to explore. For this practical, you will be exploring the results from a GWAS of LDL cholesterol from the following paper:

Global Lipids Genetics Consortium. Discovery and refinement of loci associated with lipid levels. Nat Genet 45, 1274–1283 (2013). https://doi.org/10.1038/ng.2797

Abstract:
Levels of low-density lipoprotein (LDL) cholesterol, high-density lipoprotein (HDL) cholesterol, triglycerides and total cholesterol are heritable, modifiable risk factors for coronary artery disease. To identify new loci and refine known loci influencing these lipids, we examined 188,577 individuals using genome-wide and custom genotyping arrays. We identify and annotate 157 loci associated with lipid levels at P < 5 × 10−8, including 62 loci not previously associated with lipid levels in humans. Using dense genotyping in individuals of European, East Asian, South Asian and African ancestry, we narrow association signals in 12 loci. We find that loci associated with blood lipid levels are often associated with cardiovascular and metabolic traits, including coronary artery disease, type 2 diabetes, blood pressure, waist-hip ratio and body mass index. Our results demonstrate the value of using genetic data from individuals of diverse ancestry and provide insights into the biological mechanisms regulating blood lipids to guide future genetic, biological and therapeutic research.

  • link: https://csg.sph.umich.edu/willer/public/lipids2013/
  • build hg19/GRCh37

Summstats format:

Column Label Description
SNP_hg18 Marker name in build hg18.
SNP_hg19 Marker name in build hg19.
rsid Marker name in rsid format.
A1 Effect allele.
A2 Other allele.
Beta Effect size.
SE Standard Error for Beta.
N The number of individuals analyzed for this marker.
P-value P-value after doing genomic control.
Freq.A1.1000G.EUR Frequency of allele A1 from 1000G EUR sample.

Before running any jobs, you first need to format your summstats. Each module requires different inputs and format, however GENE2FUNC, single-cell enrichment and FLAMES can all use the output of SNP2GENE, so you only need to format your summstats for SNP2GENE.

After formatting, this is how our summstats looked:

head -n5 jointGwasMc_LDL.FUMA.txt
chr pos rsid    effect_allele   non_effect_allele   beta    se  N   pvalue
1   100000012   rs10875231  g   t   0.0021  0.0059  89888.00    0.973
1   100000827   rs6678176   c   t   0.0038  0.0056  89881.00    0.665
1   100005477   rs12069019  g   a   0.0018  0.0073  89888.00    0.8137
1   100006117   rs6686057   a   g   0.0034  0.0056  89888.00    0.6995
Code
#!/bin/bash

# Format the GWAS summstats

# View the first few lines of file
gzcat jointGwasMc_LDL.txt.gz | head

# Current header: SNP_hg18  SNP_hg19    rsid    A1  A2  beta    se  N   P-value Freq.A1.1000G.EUR
# Format to match: chr, pos, rsid, effect_allele (A1), non_effect_allele (A2), beta, se, N, pvalue
# Need to split the SNP_hg19 to get the chr and pos
# Make it tab-delimited


# Output the heading
printf \
"chr\tpos\trsid\teffect_allele\tnon_effect_allele\tbeta\tse\tN\tpvalue\n" \
> jointGwasMc_LDL.FUMA.txt

# Format the summstats
# 1st awk: Only keeps the columns that we want
# 2nd awk: Removes head line Separates the chr and pos into separate columns
# sed: Removes the "chr" so it's just a number
# Sort numerically by position
# Then append to the file containing the header
gzcat jointGwasMc_LDL.txt.gz | \
awk -F"\t" -v OFS="\t" '{print $2,$3,$4,$5,$6,$7,$8,$9}' | \
awk -F":" -v OFS="\t" 'NR>1{print $1,$2}' | \
sed 's/chr//' | \
sort -n \
>>jointGwasMc_LDL.FUMA.txt

# View the first few lines of file
head jointGwasMc_LDL.FUMA.txt


# NOTE: Formatting was performed using bash on a macOS.
# If you are not using a mac, then you will want to use zcat instead of gzcat


If the link above doesn’t work, go to the FUMA website and select the public results titled ‘LDL-Cholesterol_GLGC_2013’ (ID:749780).


SNP2GENE

SNP2GENE has 3 different results sections, which we will go through section by section.

Let’s start with the ‘Genome-wide plots’ section.

‘Genome-wide plots’ section

This section includes manhattan plots, QQ-plots and results of MAGMA analyses. This will give us an overview of the GWAS quality, along with potential tissues and GO-terms of relevance.

TipGenome-wide plot questions

Question 1:

Examine the QQ plots first, as they can indicate issues with the study.

Do they look acceptable to you?

Do you think this study was well powered? (Hint: the sample size is in the paper’s abstract)


Question 2:

In the MAGMA gene-based Manhattan plot, what is the most significantly associated gene?


Question 3:

From the MAGMA gene-set analysis, what processes are enriched in the GWAS-associated regions?


Question 4:

Based on MAGMA gene property analysis, are the significant GWAS loci significantly enriched in any tissues?

Is that expected a priori?


‘Summary of results’ section

This section provides an overview of the GWAS loci. It contains a summary of SNPs and mapped genes, and summary plots of each genomic risk locus and positional annotations of SNPs.

Name Meaning
Genomic risk loci Defined by merging LD blocks that contain independent significant SNPs if they are less than a user-specified distance apart. We used the default setting of <250kb. A genomic risk locus can contain multiple lead SNPs and/or independent significant SNPs.
lead SNPs Defined as genome-wide significant SNPs that are independent of each other at a LD threshold (R2) of 0.1
Independent significant SNP Genome-wide significant SNPs that are independent of each other at a specified LD threshold. We used the default threshold of R2=0.6, which is much higher than that used for lead SNPs.
Candidate SNPs SNPs that are in LD with an independent significant SNP. These can include SNPs that were not in the GWAS summstats but are in the reference panels used. We used the default reference panel, which is 1KG EUR.
Candidate GWAS tagged SNPs Candidate SNPs which ARE in the GWAS summstats
Mapped Genes FUMA maps independent significant SNPs to genes using 3 different methods:
1. positional mapping. This maps SNPs to genes based on proximity or functional consequences, as annotated in ANNOVAR.
2. xQTL mapping. This maps SNPs to genes based on QTL annotations. Currently, eQTLs and sQTLs are available, along with some limited pQTLs. As QTLs are highly tissue-specific, you must specify the tissues you want xQTL mapping to be performed for. We did not make assumptions about tissue specificity for this analysis, so selected all GTEX tissues and the UKB pQTLs.
3. Chromatin interaction mapping. This maps SNPs to genes based on known chromatin interactions between loci. Specific tissues can be selected, however, we did not make assumptions about tissue specificity and so chose all the built-in datasets.
TipSummary of Results Questions

Question 5

How many genomic risk loci were identified?

How many independent significant SNPs were identified?


Question 6

How many genes were mapped to GWAS-associated SNPs?


Question 7

Look at the ‘Functional consequences of SNPs on genes’ plot. What proportion of the candidate SNPs are intronic?

Which genomic region (e.g. intronic, intergenic, 3’UTR etc) is significantly underrepresented amongst candidate GWAS SNPs?


‘Results’ section

This section contains various table browsers showing SNP and annotation-level results for genomic risk loci, independent SNPs, Mapped genes, xQTLs, etc.

TipResults table questions

Question 8

Which genomic risk locus contains the most significantly associated SNP?

How many independent significant SNPs are in that locus?

What is the lead SNP of that locus and how significant is it? (give rsID and p-value)


Question 9

Look at the ‘SNPS (annotations)’ tab.

What is the nearest gene for the above SNP?

What position is the SNP in relative to that gene?

What is the CADD score for this gene? What does this mean? (It’s not interpreted for you in FUMA so have a cheeky google)


Question 10

Use the UniqID to search the SNP in the ‘xQTLs’ table.

IF THE xQTLs TABLE DOES NOT LOAD: we’ve included a copy for the SNP of interest below.


How many xQTLs are identified for this SNP?

How many are eQTLs and how many are pQTLs?

Are they mostly trans or cis QTLs?

Do the tissues seem relevant for this trait?

NoteCaveat about trans QTLs

Trans QTLs are further away from the gene they effect, therefore they act through a network effect and have smaller, indirect effects on the gene’s expression 1,2. Due to this and the low sample size of most QTL studies, most trans QTLs have not yet been reliably replicated.


SNP2GENE has now used positional, xQTL and chromatin mapping to map our GWAS SNPs to genes. These genes can now be sent to GENE2FUNC for further follow-up.


GENE2FUNC

GENE2FUNC takes a list of genes as input and performs various gene-set enrichment analyses.

When it’s performed on the output of a SNP2GENE job, the genes it uses are those identified through positional, xQTL and chromatin mapping, depending on the parameters set by the user.

Let’s look first at the tissue-specificity results.

‘Tissue specificity’ section

SNP2GENE uses MAGMA gene-property analysis for tissue specificity.

  • First, it takes all the SNPs, maps them to genes by position, then uses that to calculate how associated each gene is with the GWAS trait
  • Then it performs a linear regression using the per-gene trait-association p-value and a per-gene tissue-specificity metric
  • This tissue-specificity metric can be described as the expression of gene A in tissue A divided by the average expression of gene A across all tissues - genes do not have to be significantly differentially expressed in a tissue to be included.


GENE2FUNC uses gene-set enrichment analysis, in which it tests for enrichment of your set of genes in per-tissue sets of differentially-expressed genes (DEGs). Differentially-expressed genes are genes that have been found to be significantly up or down-regulated in tissue 1 compared to all other tissues.


While both analyses are looking at tissue specificity, they do so using two different methods. If both of these methods provide similar results, then you can be more confident that the observed tissue enrichment is valid.

TipTissue specificity questions

Question 11

What tissue/s are significantly enriched? Are they enriched for up or down-regulated DEGs in this tissue?

Is this consistent with the SNP2GENE MAGMA tissue results?

What can the direction of differential expression tell you about this trait?


‘Gene sets’ section

Navigate to the ‘Gene sets’ tab. In this section, gene set enrichment analyses have been performed for gene sets from multiple different databases and sources.

Note that this GWAS was well-powered and had a lot of significant hits, which has led to many significant enrichments in this section. In a sense, this gives us ‘too much’ to potentially look at, so we will only be highlighting a few. Depending on your phenotype or study, it is very common to only have a few significant GWAS hits and, therefore, to have very few significant enrichments in this section.

TipGENE2FUNC Gene sets questions

Question 12

Look under the ‘GO’ term sections. What cellular components are LDL-C related genes significantly enriched in? Does this make sense?


Question 13

In the ‘WikiPathways’ section, are there any pathways related to medication that are enriched?


Question 14

Under the ‘GWAS catalog reported genes’ section, which non-cardiovascular and non-lipid GWAS data also show an enrichment of LDL-C-associated loci and which genes overlap with both traits?


Cell Type

From SNP2GENE and GENE2FUNC, we identified Liver as the tissue of most interest for LDL-cholesterol. But is the whole liver equally relevant or are there specific cell-types within the liver that are more important?

FUMA’s Cell Type module takes the output of SNP2GENE (specifically, it takes the MAGMA gene analysis output) and uses it to calculate cell-type specificity. It does this using the same method as for SNP2GENE’s tissue specificity, however this time it uses cell-type level data as the reference.

As a reference dataset, we selected ‘569_Xu_Human_2023_Liver_Liver_level1’ to look only at cell-types within the liver.

Unfortunately, results from the Cell Type module cannot be made publicly available on the FUMA website, so we are including the displayed plots here.

Cell Type output

Cell Type has 3 different results steps.


  1. It identifies significant cell-types within each reference dataset, then does multiple-testing correction across all reference datasets.


  1. Cell types within a tissue can have high correlations with each other. Step 2 performs a within-dataset conditional analysis for each reference dataset, to identify whether the significant cell-types are independently significant or are just transcriptionally correlated with a significant cell-type.


  1. If there are multiple reference datasets, several of which have significant cell-types, then an across-dataset conditional analysis is performed. This is not a test of cell-type similarity, but rather identifies cell-types with different genetic signals driving the association (i.e. if two cell-types from two different datasets were to lose significance when conditioned on each other, it would suggest that the association of those cell types with the trait were driven by similar genetic signals - this does not measure the similarity of the two cell types)


Only step 1 and step 2 were performed for our analysis, as we only used one reference dataset thus could not do step 3.

TipCell Type enrichment questions

Question 15

What cell types are significant?


Question 16

Are they independently significant? How do you know this?

If they are not independently significant, which cell type has the strongest signal?


Question 17

If there was a significant cell type in step 2, why are there no results for step 3?



FLAMES

FUMA’s FLAMES module is based on a simple assumption:

For each true GWAS association between SNP and phenotype that is not due to population stratification or another form of confounding, there is a single gene that most strongly mediates the effect of the SNP on the phenotype.


We call the gene that mediates the effect of the SNP on the phenotype the effector gene of said SNP.


Therefore, each credible set in a locus should have an effector gene. The FLAMES score of a gene denotes the combined evidence of functional convergence with other GWAS-implicated genes and the evidence from biological studies that link genes to fine-mapped SNPs in the locus of interest.


The input of FLAMES is a SNP2GENE job. Alternatively, you can modify your summstats to be appropriate as input, however the requirements are strict.

The output of FLAMES is a single table with a single gene for each locus where an effector gene could be identified. For some loci, no effector gene may be identified.

As with the Cell Type module, this output could not be made available to you on the FUMA website, so we have instead embedded it here for you to browse.


Per the Github of the first Author:


“FLAMES outputs are calibrated on an ExWAS-implicated benchmarking set as highlighted in the FLAMES paper. Cumulative precision thresholds represent the average precision with which we prioritize genes in our calibration set at that threshold. The outputted scores in the .preds files are ranked.

An estimated cumulative precision of 0.8 would indicate that prioritizing genes at or above the threshold of that locus, the set on average would be 80% precise.”


TipFLAMES questions

Question 18

How many loci had a gene identified for them? How many did not?


Question 19

Going back to the top locus identified in SNP2GENE (question 8) - what gene was identified for that locus?

So our top locus from the GWAS did not have any genes identified.

However, remember the top SNP? Which had a lot of trans pQTLs? I.e. QTLs for which the gene is not close to the SNP?

TipLast Question

Question 20

Is the top GWAS SNP an xQTL for any of the effector genes identified by FLAMES?

Which genes?

Do they have a known link to LDL-cholesterol?


Congrats! You’ve reached the end of the practical. If you have your own GWAS summary statistics available, have a go at running FUMA yourself.