Genome-wide meta-analysis of quantitatively measured generalized anxiety symptoms in individuals of European ancestry.
The 6 matches
- [1] § Methods › PRSs ↔ sbayes_prs_quantanx.Rmd, lines 133–165 · score 0.76 · linear regression, variance explained, liability scale, Nagelkerke, components, PRS
- [2] § Methods › Participants and measures ↔ extract_anx_factor_score_quantanx.Rmd, lines 27–42 · score 0.68 · factor score, latent factor, maximum likelihood, predict, lavaan, ANX
- [3] § Results › Polygenic risk scores ↔ sbayes_prs_quantanx.Rmd, lines 133–165 · score 0.63 · risk score, variance explained, liability scale, PRS, R2, anxiety
- [4] § Methods › Meta-analysis ↔ meta-analysis_secondaryanalyses_quantanx.Rmd, lines 7–55 · score 0.63 · AGDS, ALSPAC, TRAILS, Lifelines, MEGA, METAL
- [5] § Results › SNP-based heritability and genetic correlations with external traits ↔ meta-analysis_secondaryanalyses_quantanx.Rmd, lines 207–242 · score 0.63 · post traumatic stress, internalizing traits, irritable, neuroticism, depressive, disorder
- [6] § Results › SNP-based heritability and genetic correlations with external traits ↔ meta-analysis_secondaryanalyses_quantanx.Rmd, lines 207–242 · score 0.54 · post traumatic stress, major depressive disorder, MDD, traits, SNP
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
R Markdown · 588 lines · 17 KB · MIT · 3 matches
- ---
- title: "Quantitative anxiety symptom genome-wide meta-analysis"
- author: "Megan Skelton"
- output: html_document
- ---
- Analysis was run on the KCL CREATE HPC: King's College London. (2022). King's Computational Research, Engineering and Technology Environment (CREATE). Retrieved March 2, 2022, from https://doi.org/10.18742/rnvf-m076
- # Meta-analysis
- ```{bash METAL script}
- echo '
- COLUMNCOUNTING STRICT
- SCHEME STDERR
- AVERAGEFREQ ON
- MINMAXFREQ ON
- CUSTOMVARIABLE N
- GENOMICCONTROL OFF
- OVERLAP OFF
- ADDFILTER EAF > 0.01
- ADDFILTER INFO > 0.6
- MARKERLABEL MARKER
- ALLELELABELS EA NEA
- EFFECTLABEL BETA
- PVALUELABEL P
- STDERR SE
- FREQLABEL EAF
- WEIGHTLABEL N
- PROCESSFILE /qcd_cohort_sumstats/AGDS_all.QCed
- PROCESSFILE /qcd_cohort_sumstats/ALSPAC_GAD7_1209_Final.QCed
- PROCESSFILE /qcd_cohort_sumstats/EstBB_ESTQ2_1209_Final.QCed
- PROCESSFILE /qcd_cohort_sumstats/GenScot_GHQ_ANX_1209_Final.QCed
- PROCESSFILE /qcd_cohort_sumstats/GLAD_UKB_NBR_1209_Final.QCed
- PROCESSFILE /qcd_cohort_sumstats/TEDS_GAD10_1209_Final.QCed
- PROCESSFILE /qcd_cohort_sumstats/PsyCoLaus_STAI_STATE_Final.QCed
- PROCESSFILE /qcd_cohort_sumstats/MOBA_GAD7_1209_Final.QCed
- PROCESSFILE /qcd_cohort_sumstats/MEGA_STAI_TRAIT_1209_Final.QCed
- PROCESSFILE /qcd_cohort_sumstats/MVP_GAD2_1209_Final.QCed
- PROCESSFILE /qcd_cohort_sumstats/PROTECTAD_140624_GAD7_noX.QCed
- PROCESSFILE /qcd_cohort_sumstats/lifelines_GSA_GAD_1209_Final.QCed
- PROCESSFILE /qcd_cohort_sumstats/lifelines_CYTO_GAD_1209_Final.QCed
- PROCESSFILE /qcd_cohort_sumstats/lifelines_AFFY_GAD_1209_Final.QCed
- PROCESSFILE /qcd_cohort_sumstats/TRAILS_allchr.QCed
- OUTFILE quantanx_metaanalysis .tbl
- ANALYZE HETEROGENEITY
- VERBOSE ON
- QUIT
- ' > gadsympt_METAL.txt
- module load metal/2020-05-05-gcc-13.2.0
- metal gadsympt_METAL.txt
- ```
- ## Post-MA QC
- Add SNP (rsID) to output by merging with reference panel e.g. HRC, joining on Marker (CHR:POS), and add CHR BP or split Marker for separate columns.
- Restrict to SNPs >50% cohorts contributed to and with EAF 0.01 < Freq1 < 0.99.
- Select required columns and rename. Order by CHR:POS.
- ```{bash}
- # check where CHR, BP, SNP are in your REF file, and where MARKERID is that you're merging on - here it was $1
- awk -F'\t' -v OFS='\t' 'NR==FNR {
- CHR[$1] = $18
- BP[$1] = $19
- SNP[$1] = $17
- next
- }
- FNR==1 {
- print $0, "CHR", "BP", "SNP"
- next
- }
- {
- print $0, CHR[$1], BP[$1], SNP[$1]
- }' \
- <(gunzip -c ref_file_with_CHR_BP_SNP) \
- <(gunzip -c quantanx_metaanalysis.gz) | gzip \
- > quantanx_metaanalysis_rsid.gz
- gunzip -c quantanx_metaanalysis_rsid.gz \
- | awk '
- NR==1 { print; next }
- {
- chr = $17 #assuming chr is column 17
- n_contrib = $14+1 # assuming HetDf (N cohorts - 1) is column 14, add 1 for N contributing cohorts
- if ((chr == 23 && n_contrib >= 4) || (chr != 23 && n_contrib >= 8)) { #different thresholds as subset provided x-chr data
- }
- }
- ' | gzip > quantanx_metaanalysis_filtered.gz
- # Select the required cols
- zcat quantanx_metaanalysis_filtered.gz | awk 'NR==1 {print "SNP", "MARKERID", "CHR", "BP", "A1", "A2", "FREQ", "BETA", "SE", "P", "N"; next}
- {print $19, $1, $17, $18, $2, $3, $4, $8, $9, $10, $16}
- ' | sort -k3,3n -k4,4n | gzip > pgc-anx2-gadsymptsquant-2026_eur.txt.gz
- ```
- # LDSC SNP h2
- ```{bash}
- /ldsc/munge_sumstats.py \
- --chunksize 50000 \
- --snp SNP \
- --sumstats /metaanalysis_sumstats/quantanx_metaanalysis_filtered.gz \
- --out /munged/quantanx_metaanalysis \
- --merge-alleles /ldsc/w_hm3.snplist
- /ldsc/ldsc.py \
- --h2 /munged/quantanx_metaanalysis.sumstats.gz \
- --ref-ld-chr /ldsc/eur_w_ld_chr/ \
- --w-ld-chr /ldsc/eur_w_ld_chr/ \
- --out /snph2/quantanx_metaanalysis_ldsc_h2
- ```
- # Manhattan plot and QQ plot
- ```{r}
- library(data.table)
- library(tidyverse)
- library(qqman)
- palette = c("#3d7667", "#abd4c9")
- results <- fread("pgc-anx2-gadsymptsquant-2026_eur.txt.gz", header=T)
- bitmap("quantanx_manhattan.png",
- type = "png16m", height = 10, width = 30, res = 600)
- par(cex.axis = 0.9, cex.lab = 1.3)
- manhattan(results,
- chr="CHR",
- bp="BP",
- p="P",
- snp="SNP",
- ylim = c(0, 16),
- col = palette,
- cex = 0.5,
- suggestiveline = F,
- genomewideline = -log10(5e-08))
- dev.off()
- bitmap("quantanx_qqplot.png", type = "png16m",
- height = 10, width = 10, res = 600)
- par(mar=c(5,5,1,1))
- qq(results$P,
- cex.axis = 1.1,
- cex.lab = 1.3,
- xlim = c(0, 9),
- ylim = c(0, 15))
- dev.off()
- ```
- # Significant loci
- Using the FUMA output (as performed 2 rounds of clumping) from the following parameters:
- r2 threshold 0.1
- second r2 threshold 0.05
- LD blocks on locus 500kb
- 1000G Phase3 EUR
- ```{r}
- fuma_snps <- fread("../FUMA_job686083/IndSigSNPs.txt")
- loci_table <- fuma_snps %>%
- select(Locus = GenomicLocus,
- SNP = rsID,
- CHR = chr,
- BP = pos,
- p,
- NSigSNPs = nGWASSNPs)
- sumstats <- fread("pgc-anx2-gadsymptsquant-2026_eur.txt.gz")
- sumstats <- sumstats %>%
- select(SNP, A1, A2, A1Freq = FREQ, Beta = BETA, SE, N)
- loci_table <- loci_table %>%
- left_join(., sumstats, by = "SNP") %>%
- select(Locus, SNP, CHR, BP, A1, A2, A1Freq, Beta, SE, p, N, NSigSNPs)
- all_snps <- fread("../FUMA_job686083/snps.txt")
- all_snps_info <- all_snps %>%
- select(SNP = rsID, CHR = chr, nearestGene, dist) %>%
- left_join(loci_table, ., by = c("SNP", "CHR"))
- ```
- # Novelty and replication
- ## LDTrait
- LDlink results using an r2 of 0.1 and a 500kb basepair window ref panel, saved in a txt file
- ```{r load ldtrait results}
- ldtrait_quantanx <- fread("../ma_results/correction_aug25/ldlink_quantanx_r201_500kb_020925.txt")
- ```
- ### Internalising
- Identify SNPs identified in previous GWAS of internalising traits
- ```{r identify replicated snps}
- snps_internalising <- ldtrait_quantanx %>% filter(
- grepl("anx", `GWAS Trait`, ignore.case = T) |
- grepl("depr", `GWAS Trait`, ignore.case = T) &
- !grepl("Bipolar disorder vs major depressive disorder \\(ordinary least squares \\(OLS\\)\\)",
- `GWAS Trait`, ignore.case = TRUE) | #ignore this label captured by depr but is a comparison of bipolar + depr
- grepl("neuroti", `GWAS Trait`, ignore.case = T) |
- grepl("mdd", `GWAS Trait`, ignore.case = T) |
- grepl("worry", `GWAS Trait`, ignore.case = T) |
- grepl("well-being", `GWAS Trait`, ignore.case = T) |
- grepl("satisfaction", `GWAS Trait`, ignore.case = T) |
- grepl("feeling", `GWAS Trait`, ignore.case = T) | #captures Feeling miserable, Feeling tense, Feeling nervous, Feeling worry, Feeling fed-up, Feeling guilty - confirmed the few that appear for this latter also have other internalising associations
- grepl("Post-traumatic stress", `GWAS Trait`, ignore.case = T) |
- `GWAS Trait` == "Positive affect" |
- `GWAS Trait` == "Suffering from nerves" |
- `GWAS Trait` == "Major mood disorders" | # only one for this and also appeared for other internalising traits e.g. worry, neuroticism, depression (if had only been mood would want to check this wasn't driven by bip/mania)
- `GWAS Trait` == "Irritable mood" | # confirmed that all rsIDs for this also appeared for other internalising traits
- `GWAS Trait` == "Neurociticism") # capture this trait label which has a typo
- nrow(snps_internalising)
- # list the snps from our sumstats (query) that had internalising hits
- snps_internalising_list <- snps_internalising %>%
- distinct(Query) %>%
- pull()
- # create a binary variable to flag if locus had an internalising hit
- loci_table <- loci_table %>%
- mutate(
- internalising_hit = if_else(SNP %in% snps_internalising_list, 1, 0)
- )
- ```
- ### Anxiety
- ```{r}
- snps_anx_list <- snps_internalising %>%
- filter(
- grepl("anx", `GWAS Trait`, ignore.case = T)) %>%
- distinct(Query) %>%
- pull()
- loci_table <- loci_table %>%
- mutate(
- anx_hit = if_else(SNP %in% snps_anx_list, 1, 0)
- )
- loci_table_replications <- loci_table %>%
- select(Locus, SNP, CHR, BP, internalising_hit, anx_hit)
- novel_snps <- setdiff(fuma_snps$rsID, snps_internalising$Query) # Novel = novel for internalising
- length(novel_snps)
- ```
- ## Bedtools
- Use FUMA to clump (same parameters as our sumstats) and bedtools to identify overlap with relevant sumstats not in GWAS Catalog
- Li et al. anxiety
- Friligkou et al. anxiety
- Strom et al. anxiety
- Adams et al. MDD
- ```{bash create BED files for bedtools}
- for i in quantanx_GenomicRiskLoci.txt Stromanxiety_GenomicRiskLoci.txt Lianxiety_GenomicRiskLoci.txt Friligkouanxiety_GenomicRiskLoci.txt AdamsMDD23andme_GenomicRiskLoci.txt
- do
- awk 'NR>1 {print "chr"$4, $7-1, $8, $1}' OFS='\t' "$i" > "${i}.BED"
- done
- module load bedtools2/2.31.0-gcc-12.3.0-python-3.11.6
- for i in Stromanxiety_GenomicRiskLoci.txt.BED Lianxiety_GenomicRiskLoci.txt.BED Friligkouanxiety_GenomicRiskLoci.txt.BED AdamsMDD23andme_GenomicRiskLoci.txt.BED
- do
- bedtools intersect -a quantanx_GenomicRiskLoci.txt.BED -b "$i" > "intersect_quantanx_${i}.BED"
- done
- ```
- Merge individual results in R file
- ```{r}
- library(data.table)
- library(tidyverse)
- quantanx_loci <- fread("quantanx_GenomicRiskLoci.txt", data.table = F)
- strom <- fread("intersect_quantanx_Stromanxiety_GenomicRiskLoci.txt.BED.BED", data.table = F)
- li <- fread("intersect_quantanx_Lianxiety_GenomicRiskLoci.txt.BED.BED", data.table = F)
- adams <- fread("intersect_quantanx_AdamsMDD23andme_GenomicRiskLoci.txt.BED.BED", data.table = F)
- friligkou <- fread("intersect_quantanx_Friligkouanxiety_GenomicRiskLoci.txt.BED.BED", data.table = F)
- quantanx_loci <- quantanx_loci %>%
- select(GenomicLocus, chr, pos, start, end, rsID, IndSigSNPs, LeadSNPs) %>%
- rename(locus = GenomicLocus)
- sumstat_names <- c("strom", "li", "friligkou", "adams")
- for (name in sumstat_names) {
- df <- get(name)
- df <- df %>%
- rename(chr = V1, start = V2, end = V3, locus = V4) %>%
- select(locus) %>%
- mutate(!!paste0(name, "_locus") := locus)
- quantanx_loci <- left_join(quantanx_loci, df, by = "locus")
- }
- strom_loci <- fread("Stromanxiety_GenomicRiskLoci.txt", data.table = F)
- li_loci <- fread("Lianxiety_GenomicRiskLoci.txt", data.table = F)
- friligkou_loci <- fread("Friligkouanxiety_GenomicRiskLoci.txt", data.table = F)
- adams_loci <- fread("AdamsMDD23andme_GenomicRiskLoci.txt", data.table = F)
- sumstats_list <- list(
- strom_rsid = strom_loci,
- li_rsid = li_loci,
- friligkou_rsid = friligkou_loci,
- adams_rsid = adams_loci
- )
- quantanx_loci <- reduce(names(sumstats_list), function(quantanx_loci, sumstats_name) {
- sumstats_df <- sumstats_list[[sumstats_name]]
- quantanx_loci %>%
- mutate(!!sumstats_name := pmap_chr(list(chr, start, end), ~ {
- match_row <- sumstats_df %>%
- filter(
- chr == ..1 & (
- (pos >= ..2 & pos <= ..3) | # SNP within locus
- (start <= ..3 & end >= ..2) # reverse-matching where sumstats locus contains the quantanx region including any overlap, not just full containment
- )
- )
- if (nrow(match_row) > 0) match_row$rsID[1] else NA_character_ # takes first match, check for multi matches though for replication flag not critical, or replace match_row$rsID[1] with paste(match_row$rsID, collapse = ";")
- }))
- },
- .init = quantanx_loci)
- # Split into 4 pairwise files of our trait rsID and comparison rsID to check R2 in PLINK
- rep_cols <- c("strom_rsid", "li_rsid", "friligkou_rsid", "adams_rsid")
- snp_pairs_by_study <- quantanx_loci %>%
- select(locus, rsID, all_of(rep_cols)) %>%
- pivot_longer(cols = all_of(rep_cols), names_to = "study", values_to = "replication_rsid") %>%
- separate_rows(replication_rsid, sep = ";", convert = TRUE) %>%
- transmute(
- study = str_remove(study, "_rsid"),
- SNP_A = rsID,
- SNP_B = replication_rsid
- )
- snp_pairs_by_study %>%
- group_by(study) %>%
- group_split() %>%
- walk(~ write_tsv(.x %>% select(SNP_A, SNP_B),
- file = paste0("compare_snp_pairs_", unique(.x$study), ".txt"),
- col_names = FALSE,
- na = ""))
- ```
- ```{bash}
- for f in compare_snp_pairs_*.txt; do
- study=$(basename "$f" .txt | cut -d'_' -f4)
- echo "Running LD for $study..."
- while read -r a b; do
- # skip lines where b is empty (no SNP for comparison study in same locus)
- [ -z "$b" ] && continue
- plink \
- --bfile /users/k1756554/1kg_refpanels/g1000_eur \
- --ld $a $b \
- --out results_ld/${study}_${a}_${b}
- done < "$f"
- done
- ```
- ```{r novelty flag}
- ld_files <- list.files(path = "results_ld", pattern = "\\.log$", full.names = TRUE)
- # define function to extract required information from log file
- read_ld_log <- function(file){
- snps <- str_extract_all(basename(file), "rs[0-9]+")[[1]]
- lines <- readLines(file)
- r2_line <- lines[grepl("R-sq =", lines)]
- if(length(r2_line) == 0) return(NULL)
- r2 <- as.numeric(str_match(r2_line, "R-sq = ([0-9\\.eE+-]+)")[,2])
- tibble(
- SNP_A = snps[1],
- SNP_B = snps[2],
- R2 = r2
- )
- }
- ld_table <- map_dfr(ld_files, read_ld_log)
- ld_table <- ld_table %>%
- distinct(SNP_A, SNP_B, .keep_all = TRUE)
- replication <- snp_pairs_by_study %>%
- left_join(ld_table, by = c("SNP_A", "SNP_B")) %>%
- mutate(replication_type = case_when(
- SNP_A == SNP_B ~ "Exact replication",
- !is.na(R2) & R2 >= 0.1 ~ "LD replication",
- TRUE ~ "Novel" #i.e. R2 <0.1 is considered novel
- ))
- ```
- # MAGMA
- ## Gene-based association test
- ```{r}
- magma_genes <- fread("/FUMA_job686083/magma.genes.out.txt")
- magma_genes_sig <- magma_genes %>%
- filter(P < 2.506e-6)
- nrow(magma_genes_sig)
- magma_genes_sig <- magma_genes_sig %>%
- mutate(CHR = as.integer(CHR)) %>%
- arrange(CHR, START)
- write.table(magma_genes_sig, "magma_genes_sig.txt",
- sep = "\t",
- row.names = FALSE,
- col.names = TRUE,
- quote = FALSE)
- ```
- Clump all GWAS variants to p = 1 (i.e. every variant gets put in a clump) with clump-range flag and a gene regions file in the format specified here - https://www.cog-genomics.org/plink/1.9/resources#genelist
- Contains one gene per row, with the following four columns:
- Chromosome code (example file shows 1, 2 etc. not chr1, chr2)
- Start of gene (base-pair units, 1-based)
- End of gene (this position is included in the interval)
- Gene ID
- ```{bash}
- awk 'NR>1 {print $2, $3, $4, $10}' OFS='\t' magma_genes_sig.txt > magma_genes_sig_plinkformat.txt
- plink --bfile /1kg_bed/1KG_Phase3.WG.CLEANED.EUR_MAF001 \
- --clump quantanx_metaanalysis_filtered.gz \
- --clump-p1 1 \
- --clump-p2 1 \
- --clump-r2 0.1 \
- --clump-kb 500 \
- --clump-range magma_genes_sig_plinkformat.txt \
- --out quantanx_p1_rangemagma
- ```
- ```{r}
- gene_loci <- fread("quantanx_p1_rangemagma.clumped.ranges.txt", data.table = FALSE)
- # Genes appear in multiple clumps and need to identify where they multiple clumps share any member and merge together into one cluster. Can also look at POS to calculate this.
- library(igraph)
- gene_loci_sig <- gene_loci %>%
- mutate(RANGES = if_else(RANGES == "[]", NA_character_, RANGES)) %>% #PLINK represents no overlapping range as "[]" rather than NA - convert to NA
- filter(!is.na(RANGES)) %>%
- mutate(RANGES = str_remove_all(RANGES, "[\\[\\]]") %>% str_trim()) %>%
- filter(RANGES != "") %>%
- separate_rows(RANGES, sep = ",") %>%
- mutate(RANGES = str_trim(RANGES)) %>%
- filter(RANGES %in% magma_genes_sig$SYMBOL)
- gene_edges <- gene_loci_sig %>%
- group_by(SNP) %>%
- filter(n() > 1) %>% # only clumps with multiple sig genes
- summarise(genes = list(RANGES)) %>%
- mutate(edges = map(genes, ~ as.data.frame(t(combn(.x, 2))))) %>%
- unnest(edges) %>%
- rename(from = V1, to = V2)
- gene_edges <- gene_edges %>% distinct(from, to)
- g <- graph_from_data_frame(gene_edges, directed = FALSE)
- # Add isolated nodes (sig genes that never co-occur with another sig gene)
- isolated <- setdiff(magma_genes_sig$SYMBOL, V(g)$name)
- g <- add_vertices(g, length(isolated), name = isolated)
- components <- components(g)
- sig_genes_clustered <- tibble(GENE = names(components$membership),
- cluster = components$membership) %>%
- group_by(cluster) %>%
- summarise(genes = list(sort(GENE)), n_genes = n())
- sig_genes_clustered <- sig_genes_clustered %>%
- mutate(genes_str = map_chr(genes, ~ paste(.x, collapse = ", ")))
- sig_genes_clustered
- ```
- ## Gene sets and gene tissue
- ```{r}
- gene_sets <- fread("FUMA_job686083/magma.gsa.out.txt")
- gene_sets <- gene_sets %>%
- filter(P < 0.0001) %>%
- arrange(P) %>%
- mutate(bonf_sig = if_else(P < 2.94e-06, "Yes", "No"))
- gene_tissue_dev <- fread("FUMA_job686083/magma_exp_bs_dev_avg_log2RPKM.gsa.out.txt", skip = 4)
- gene_tissue_dev <- gene_tissue_dev %>%
- filter(P < 0.05/nrow(gene_tissue_dev)) %>%
- arrange(P)
- gene_tissue_body <- fread("/FUMA_job686083/magma_exp_gtex_v8_ts_general_avg_log2TPM.gsa.out.txt", skip = 4)
- gene_tissue_body <- gene_tissue_body %>%
- filter(P < 0.05/nrow(gene_tissue_body)) %>%
- arrange(P)
- gene_tissue_body
- ```
- # LDSC rgs
- Genetic correlations with external traits
- ```{bash}
- output_dir="/rg_ldsc"
- # My focal GWAS
- focal="/munged/quantanx_metaanalysis.sumstats.gz"
- # Sumstats location
- dir1="/externalrg/external_sumstats/munged"
- dir1_files=( #list trait names, example subset shown here
- ADHD06
- SCHI07
- SUBD01
- PPDP01
- SMOK07
- EXTE01
- AGAB02
- EXTR02
- CONS02
- OPEN02
- IBOS01
- ASTH02
- BODY16
- BIPO03
- AUTI09
- ANOR02
- EDUC03
- INCO01
- COAD03
- DIAB05
- )
- # Create a single comma-separated list of all external sumstats starting with focal phenotype
- all_sumstats="$focal"
- for f in "${dir1_files[@]}"; do
- all_sumstats="${all_sumstats},${dir1}/${f}.sumstats.gz"
- done
- # check with echo "$all_sumstats"
- # If sumstats are in more than one location, list as above and add to all_sumstats
- # for f in "${dir2_files[@]}"; do
- # all_sumstats="${all_sumstats},${dir2}/${f}.sumstats.gz"
- # done
- python /ldsc/ldsc.py \
- --rg "$all_sumstats" \
- --ref-ld-chr /ldsc/eur_w_ld_chr/ \
- --w-ld-chr /ldsc/eur_w_ld_chr/ \
- --out "${output_dir}/quant_anx_rg"
- ```
- Extract results from log file
- ```{bash}
- awk '/^p1/{found=1} found' quant_anx_rg.log | awk '{print $2, $3, $4, $6}' > rg_extracted.txt
- ```
meta-analysis_secondaryanalyses_quantanx.Rmd at commit dc47e29, under MIT · at the source
Overview
and 38 other authors
Nora I. Strom20,21,22,23, Peter J. van der Most24, Anxiety Disorders Working Group of the Psychiatric Genomics Consortium, GLAD+ authors, Lifelines Cohort Study, NIHR BioResource, PROTECT-AD Consortium, Ole A. Andreassen25,26, Angelika Erhardt-Lehmann17,27, Alexandra Havdahl12,13,14,28, Nathan Skene6,7, Brad Verhulst29, Heike Weber27, Chérie Armour30, Helga Ask12, William E. Copeland31, Udo Dannlowski32,33,34,35, Jürgen Deckert27,36, Katharina Domschke37,38, Ian B. Hickie39, Kelli Lehto16, Tina B. Lonsdorf40,41, Ulrike Lueken20,27,38, Michelle K. Lupton2,3,4, Sarah E. Medland2,42,43, Andrew M. McIntosh10, Albertine J. Oldehinkel44, Martin Preisig19, Andreas Reif45,46, Harold Snieder24, James T. R. Walters47, Naomi R. Wray48,49, Catharina A. Hartman44, Nicholas G. Martin2,3, John M. Hettema29, Gerome Breen1,9, Jonathan R. I. Coleman1,9, Thalia C. Eley1,949 affiliations
- Social, Genetic and Developmental Psychiatry Centre, Institute of Psychiatry, Psychology and Neuroscience, King’s College London,London, UK
- Brain and Mental Health Program, QIMR Berghofer Medical Research Institute,Brisbane, Queensland Australia
- School of Biomedical Sciences, Faculty of Medicine, The University of Queensland,Brisbane, Queensland Australia
- School of Biomedical Sciences, Queensland University of Technology,Brisbane, Queensland Australia
- Research Centre of the Montreal University Institute of Mental Health, University of Montreal,Montreal, Quebec Canada
- UK Dementia Research Institute at Imperial College London,London, UK
- Department of Brain Sciences, Imperial College London,London, UK
- Department of Clinical, Educational, and Health Psychology, University College London,London, UK
- National Institute for Health and Care Research Maudsley Biomedical Research Centre, South London and Maudsley NHS Trust,London, UK
- Division of Psychiatry, Centre for Clinical Brain Sciences, University of Edinburgh,Edinburgh, UK
- The University of Queensland, Child Health Research Centre,Brisbane, Queensland Australia
- PsychGen Centre for Genetic Epidemiology and Mental Health, Norwegian Institute of Public Health,Oslo, Norway
- Psychiatric Genetic Epidemiology Group, Research Department, Lovisenberg Diaconal Hospital,Oslo, Norway
- Population Health Sciences, Bristol Medical School, University of Bristol,Bristol, UK
- MRC Integrative Epidemiology Unit, Bristol Medical School, University of Bristol,Bristol, UK
- Estonian Genome Centre, Institute of Genomics, University of Tartu,Tartu, Estonia
- Department Clinical Translation, Max Planck Institute of Psychiatry,Munich, Germany
- Instituto de Salud Carlos III, Centro de Investigación Biomédica en Red de Salud Mental (CIBERSAM),Madrid, Spain
- Department of Psychiatry, Lausanne University Hospital (CHUV) and University of Lausanne,Prilly, Switzerland
- Department of Psychology, Humboldt-Universität zu Berlin,Berlin, Germany
- Institute of Psychiatric Phenomics and Genomics, LMU Munich, University Hospital,Munich, Germany
- Centre for Psychiatry Research, Department of Clinical Neuroscience, Karolinska Institutet and Stockholm Health Care Services,Solna, Sweden
- Department of Biomedicine, Aarhus University,Aarhus, Denmark
- Department of Epidemiology, University Medical Center Groningen, University of Groningen,Groningen, the Netherlands
- Centre for Precision Psychiatry, Institute of Clinical Medicine, University of Oslo,Oslo, Norway
- Division of Mental Health and Addiction, Oslo University Hospital,Oslo, Norway
- Department of Psychiatry, Psychosomatics and Psychotherapy, University Hospital of Würzburg,Würzburg, Germany
- PROMENTA Research Centre, Department of Psychology, University of Oslo,Oslo, Norway
- Department of Psychiatry and Behavioral Sciences, Texas A&M University,Bryan, TX USA
- Stress, Trauma and Related Conditions Research Centre (STARC), School of Psychology, Queen’s University Belfast,Belfast, UK
- Department of Psychiatry, University of Vermont,Burlington, VT USA
- Institute for Translational Psychiatry, University of Münster,Münster, Germany
- Department of Psychiatry, Medical School and University Medical Center OWL, Protestant Hospital of the Bethel Foundation, Bielefeld University,Bielefeld, Germany
- German Center for Mental Health (DZPG), Site Jena Magdeburg Halle,Jena, Germany
- Center for Intervention and Research on Adaptive and Maladaptive Brain Circuits Underlying Mental Health (C-I-R-C), Site Jena Magdeburg Halle, Jena, Germany
- Institute of Clinical Epidemiology and Biometrics, University of Würzburg,Würzburg, Germany
- Department of Psychiatry and Psychotherapy, Faculty of Medicine, Medical Center – University of Freiburg, University of Freiburg,Freiburg, Germany
- German Center for Mental Health (DZPG), Partner Site Berlin-Potsdam,Berlin, Germany
- Brain and Mind Centre, The University of Sydney,Sydney, New South Wales Australia
- Experimental Medicine, Systems Neuroscience, University Medical Center Hamburg Eppendorf,Hamburg, Germany
- Psychology, Biological Psychology and Cognitive Neuroscience, University of Bielefeld,Bielefeld, Germany
- School of Psychology, The University of Queensland,Brisbane, Queensland Australia
- School of Psychology and Counselling, Queensland University of Technology,Brisbane, Queensland Australia
- Department of Psychiatry, Interdisciplinary Center Psychopathology and Emotion Regulation, University Medical Center Groningen, University of Groningen,Groningen, the Netherlands
- Department of Psychiatry, Psychosomatic Medicine and Psychotherapy, University Medical Centre Frankfurt,Frankfurt am Main, Germany
- Fraunhofer Institute for Translational Medicine and Pharmacology ITMP,Frankfurt am Main, Germany
- National Centre for Mental Health and Centre for Neuropsychiatric Genetics and Genomics, Cardiff University,Cardiff, UK
- Institute for Molecular Bioscience, University of Queensland,Brisbane, Queensland Australia
- Department of Psychiatry, University of Oxford,Oxford, UK
Abstract
Anxiety is heritable and exists on a continuum, with symptoms ranging from adaptive threat response to clinical disorder. Here we performed a genome-wide association meta-analysis of generalized anxiety symptom severity in 693,869 individuals of European ancestry from 14 cohorts. We identified 80 independent genome-wide significant variants within 74 loci, 39 of which were newly associated with anxiety. SNP-based heritability was 5.9% (posterior s.d. = 0.15%). Polygenic scores were significantly associated with anxiety symptom severity and disorder in European, African and South Asian ancestry samples (R2 = 1.2–2.9%). Significant genetic correlations (rg) were estimated with mental and physical health traits, including case–control anxiety, neuroticism and depression (rg = 0.71–0.85), irritable bowel syndrome (rg = 0.57), coronary artery disease, endometriosis and migraine (rg = 0.20–0.27). Gene-based and pathway analyses implicated synaptic and axonal processes, with enriched expression in the brain. These findings highlight the discovery power gained from analysing a quantitative trait rather than a case–control phenotype in anxiety genetics.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above, with 6 matches between paragraphs and lines of code.
megskelton/gad-sympt-metagwas
dc47e296441f46bb1ce1882d5d48a9913d3c5d54, 2 September 2026Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
7 files
- extract_anx_factor_score
_quantanx.Rmd , R, 85 lines, 1 match - gwas_regenie_quantanx.Rm
d , R, 192 lines - meta-analysis_secondarya
nalyses_quantanx.Rmd , R, 588 lines, 3 matches - mtcojo_quantanx.Rmd, R, 134 lines
- sbayes_prs_quantanx.Rmd, R, 199 lines, 2 matches
- LICENSE, License, 21 lines
- README.md, Text, 10 lines
Code availability
Analytical code is available via GitHub at: https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 5 scripts, each with its path and the digest of its content;
- 6 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
No dataset and no data link were found in the paper.
Data availability
Summary statistics are available on the PGC download page (https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 2, 28 September 2026
- Publisher: n/a → Nature Portfolio
Version 1, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 58 authors, 2 keywords, 10 MeSH terms, 1 funder, 95 references.
Cite
This paper
Skelton, M., Mitchell, B. L., Assary, E., Li, D., Morneau-Vaillancourt, G., Murphy, A. E., ter Kuile, A. R., Wang, R., Adams, M. J., Byrne, E. M., Corfield, E. C., Grimes, P. Z., Hannigan, L. J., Hu, J., Kõiv, K., Kwong, A. S. F., Papiol, S., Pettersen, J. H., Pistis, G., . . . Eley, T. C. (2026). Genome-wide meta-analysis of quantitatively measured generalized anxiety symptoms in individuals of European ancestry. Nature human behaviour, 10(8), 1594-1608. https://
BibTeX
@article{skelton2026geno
author = {Skelton, Megan and Mitchell, Brittany L. and Assary, Elham and Li, Danyang and Morneau-Vaillancourt, Genevieve and Murphy, Alan E. and ter Kuile, Abigail R. and Wang, Rujia and Adams, Mark J. and Byrne, Enda M. and Corfield, Elizabeth C. and Grimes, Poppy Z. and Hannigan, Laurie J. and Hu, Jihua and Kõiv, Kadri and Kwong, Alex S. F. and Papiol, Sergi and Pettersen, Johanne H. and Pistis, Giorgio and Castelao, Enrique and Strom, Nora I. and van der Most, Peter J. and {Anxiety Disorders Working Group of the Psychiatric Genomics Consortium} and {GLAD+ authors} and {Lifelines Cohort Study} and {NIHR BioResource} and {PROTECT-AD Consortium} and Andreassen, Ole A. and Erhardt-Lehmann, Angelika and Havdahl, Alexandra and Skene, Nathan and Verhulst, Brad and Weber, Heike and Armour, Chérie and Ask, Helga and Copeland, William E. and Dannlowski, Udo and Deckert, Jürgen and Domschke, Katharina and Hickie, Ian B. and Lehto, Kelli and Lonsdorf, Tina B. and Lueken, Ulrike and Lupton, Michelle K. and Medland, Sarah E. and McIntosh, Andrew M. and Oldehinkel, Albertine J. and Preisig, Martin and Reif, Andreas and Snieder, Harold and Walters, James T. R. and Wray, Naomi R. and Hartman, Catharina A. and Martin, Nicholas G. and Hettema, John M. and Breen, Gerome and Coleman, Jonathan R. I. and Eley, Thalia C.},
title = {{Genome-wide meta-analysis of quantitatively measured generalized anxiety symptoms in individuals of European ancestry}},
journal = {Nature human behaviour},
year = {2026},
month = jun,
volume = {10},
number = {8},
pages = {1594--1608},
publisher = {Nature Portfolio},
issn = {2397-3374},
doi = {10.1038/
url = {https://
pmid = {42265330},
pmcid = {PMC13485698}
}
RIS
TY - JOUR
AU - Skelton, Megan
AU - Mitchell, Brittany L.
AU - Assary, Elham
AU - Li, Danyang
AU - Morneau-Vaillancourt, Genevieve
AU - Murphy, Alan E.
AU - ter Kuile, Abigail R.
AU - Wang, Rujia
AU - Adams, Mark J.
AU - Byrne, Enda M.
AU - Corfield, Elizabeth C.
AU - Grimes, Poppy Z.
AU - Hannigan, Laurie J.
AU - Hu, Jihua
AU - Kõiv, Kadri
AU - Kwong, Alex S. F.
AU - Papiol, Sergi
AU - Pettersen, Johanne H.
AU - Pistis, Giorgio
AU - Castelao, Enrique
AU - Strom, Nora I.
AU - van der Most, Peter J.
AU - Anxiety Disorders Working Group of the Psychiatric Genomics Consortium
AU - GLAD+ authors
AU - Lifelines Cohort Study
AU - NIHR BioResource
AU - PROTECT-AD Consortium
AU - Andreassen, Ole A.
AU - Erhardt-Lehmann, Angelika
AU - Havdahl, Alexandra
AU - Skene, Nathan
AU - Verhulst, Brad
AU - Weber, Heike
AU - Armour, Chérie
AU - Ask, Helga
AU - Copeland, William E.
AU - Dannlowski, Udo
AU - Deckert, Jürgen
AU - Domschke, Katharina
AU - Hickie, Ian B.
AU - Lehto, Kelli
AU - Lonsdorf, Tina B.
AU - Lueken, Ulrike
AU - Lupton, Michelle K.
AU - Medland, Sarah E.
AU - McIntosh, Andrew M.
AU - Oldehinkel, Albertine J.
AU - Preisig, Martin
AU - Reif, Andreas
AU - Snieder, Harold
AU - Walters, James T. R.
AU - Wray, Naomi R.
AU - Hartman, Catharina A.
AU - Martin, Nicholas G.
AU - Hettema, John M.
AU - Breen, Gerome
AU - Coleman, Jonathan R. I.
AU - Eley, Thalia C.
TI - Genome-wide meta-analysis of quantitatively measured generalized anxiety symptoms in individuals of European ancestry
T2 - Nature human behaviour
J2 - Nat Hum Behav
PY - 2026
DA - 2026/
VL - 10
IS - 8
SP - 1594
EP - 1608
SN - 2397-3374
PB - Nature Portfolio
DO - 10.1038/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1038/
"type": "article-journal",
"title": "Genome-wide meta-analysis of quantitatively measured generalized anxiety symptoms in individuals of European ancestry",
"container-title": "Nature human behaviour",
"author": [
{
"family": "Skelton",
"given": "Megan"
},
{
"family": "Mitchell",
"given": "Brittany L."
},
{
"family": "Assary",
"given": "Elham"
},
{
"family": "Li",
"given": "Danyang"
},
{
"family": "Morneau-Vaillancourt",
"given": "Genevieve"
},
{
"family": "Murphy",
"given": "Alan E."
},
{
"family": "ter Kuile",
"given": "Abigail R."
},
{
"family": "Wang",
"given": "Rujia"
},
{
"family": "Adams",
"given": "Mark J."
},
{
"family": "Byrne",
"given": "Enda M."
},
{
"family": "Corfield",
"given": "Elizabeth C."
},
{
"family": "Grimes",
"given": "Poppy Z."
},
{
"family": "Hannigan",
"given": "Laurie J."
},
{
"family": "Hu",
"given": "Jihua"
},
{
"family": "Kõiv",
"given": "Kadri"
},
{
"family": "Kwong",
"given": "Alex S. F."
},
{
"family": "Papiol",
"given": "Sergi"
},
{
"family": "Pettersen",
"given": "Johanne H."
},
{
"family": "Pistis",
"given": "Giorgio"
},
{
"family": "Castelao",
"given": "Enrique"
},
{
"family": "Strom",
"given": "Nora I."
},
{
"family": "van der Most",
"given": "Peter J."
},
{
"literal": "Anxiety Disorders Working Group of the Psychiatric Genomics Consortium"
},
{
"literal": "GLAD+ authors"
},
{
"literal": "Lifelines Cohort Study"
},
{
"literal": "NIHR BioResource"
},
{
"literal": "PROTECT-AD Consortium"
},
{
"family": "Andreassen",
"given": "Ole A."
},
{
"family": "Erhardt-Lehmann",
"given": "Angelika"
},
{
"family": "Havdahl",
"given": "Alexandra"
},
{
"family": "Skene",
"given": "Nathan"
},
{
"family": "Verhulst",
"given": "Brad"
},
{
"family": "Weber",
"given": "Heike"
},
{
"family": "Armour",
"given": "Chérie"
},
{
"family": "Ask",
"given": "Helga"
},
{
"family": "Copeland",
"given": "William E."
},
{
"family": "Dannlowski",
"given": "Udo"
},
{
"family": "Deckert",
"given": "Jürgen"
},
{
"family": "Domschke",
"given": "Katharina"
},
{
"family": "Hickie",
"given": "Ian B."
},
{
"family": "Lehto",
"given": "Kelli"
},
{
"family": "Lonsdorf",
"given": "Tina B."
},
{
"family": "Lueken",
"given": "Ulrike"
},
{
"family": "Lupton",
"given": "Michelle K."
},
{
"family": "Medland",
"given": "Sarah E."
},
{
"family": "McIntosh",
"given": "Andrew M."
},
{
"family": "Oldehinkel",
"given": "Albertine J."
},
{
"family": "Preisig",
"given": "Martin"
},
{
"family": "Reif",
"given": "Andreas"
},
{
"family": "Snieder",
"given": "Harold"
},
{
"family": "Walters",
"given": "James T. R."
},
{
"family": "Wray",
"given": "Naomi R."
},
{
"family": "Hartman",
"given": "Catharina A."
},
{
"family": "Martin",
"given": "Nicholas G."
},
{
"family": "Hettema",
"given": "John M."
},
{
"family": "Breen",
"given": "Gerome"
},
{
"family": "Coleman",
"given": "Jonathan R. I."
},
{
"family": "Eley",
"given": "Thalia C."
}
],
"container-title-short":
"volume": "10",
"issue": "8",
"page": "1594-1608",
"DOI": "10.1038/
"PMID": "42265330",
"PMCID": "PMC13485698",
"ISSN": "2397-3374",
"publisher": "Nature Portfolio",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
6,
9
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1038/s41562-026-02486-5 [code]
- Genome-wide association studies of infant and toddler temperament in European and multi-ancestry populations.Journal: Nature human behaviourIn common: psych, data.table, tidyverse, genetics / omics, 14 references, 5 authors
- [2] doi:10.1038/s41598-026-51734-1 [code]
- Genome-wide association study of positive and negative affect reveals shared genetic architecture and a potential causal relationship with cognition.Journal: Scientific reportsIn common: tidyverse, genetics / omics, 9 references, author Peter J. van der Most
- [3] doi:10.1038/s41398-026-04137-9 [code]
- An integrative mendelian randomisation and drug mechanism framework for target prioritisation and therapeutic repurposing in major depression.Journal: Translational psychiatryIn common: BCFtools, psych, data.table, clinical / translational, genetics / omics, 5 references, author Abigail R. ter Kuile
- [4] doi:10.1038/s41588-026-02646-3 [code]
- Co-expression-based models improve eQTL predictions for transcriptome-wide association studies and highlight new schizophrenia-associated
genes. Journal: Nature geneticsIn common: data.table, tidyverse, genetics / omics, 4 references, 2 authors - [5] doi:10.1038/s41398-026-04189-x [code]
- Decomposing neuroanatomical heterogeneity in depression: insights from an ENIGMA major depressive disorder working group study in 5146 individuals.Journal: Translational psychiatryIn common: tidyverse, clinical / translational, 3 authors
- [6] doi:10.1038/s41467-026-73428-y [code]
- Regional heterogeneity in phenotypic and genetic associations between bone and brain in humans.Journal: Nature communicationsIn common: lavaan, BEDTools, psych, 2 other tools, genetics / omics, 6 references
- [7] doi:10.1038/s41467-026-72164-7 [code]
- Multivariate genetic analysis reveals three distinct pathological dimensions in musculoskeletal disorders.Journal: Nature communicationsIn common: lavaan, BEDTools, psych, 2 other tools, genetics / omics, 5 references
- [8] doi:10.1038/s43856-026-01510-z [code]
- Mapping genetic convergence across brain structure, mental health, and cardiometabolic disease.Journal: Communications medicineIn common: lavaan, BEDTools, psych, 2 other tools, genetics / omics, other condition, 3 references
- [9] doi:10.1038/s41398-026-04131-1 [code]
- Multimodal phenotypic classification of generalized anxiety and panic using structural MRI data and psychosocial factors: machine learning results from the German National Cohort (NAKO) study.Journal: Translational psychiatryIn common: psych, data.table, tidyverse, clinical / translational, other condition, 1 reference, author Jürgen Deckert
- [10] doi:10.1186/s13195-026-02036-1 [code]
- Genetic drivers of progression in Alzheimer's disease are distinct from disease risk.Journal: Alzheimer's research & therapyIn common: data.table, tidyverse, clinical / translational, genetics / omics, 6 references
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 1 repository of the authors' code, each at its verified commit and with its license, 5 scripts, and 6 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:5c895d0c3ea44c00…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
