Skip to content

Commit

Permalink
build based on 81be700
Browse files Browse the repository at this point in the history
Documenter.jl committed Dec 4, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 08386ce commit dc083d2
Showing 13 changed files with 13 additions and 13 deletions.
2 changes: 1 addition & 1 deletion dev/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.9.4","generation_timestamp":"2024-12-03T03:13:26","documenter_version":"1.8.0"}}
{"documenter":{"julia_version":"1.9.4","generation_timestamp":"2024-12-04T03:11:27","documenter_version":"1.8.0"}}
2 changes: 1 addition & 1 deletion dev/index.html
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Home · GhostKnockoffGWAS</title><meta name="title" content="Home · GhostKnockoffGWAS"/><meta property="og:title" content="Home · GhostKnockoffGWAS"/><meta property="twitter:title" content="Home · GhostKnockoffGWAS"/><meta name="description" content="Documentation for GhostKnockoffGWAS."/><meta property="og:description" content="Documentation for GhostKnockoffGWAS."/><meta property="twitter:description" content="Documentation for GhostKnockoffGWAS."/><script data-outdated-warner src="assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="assets/documenter.js"></script><script src="search_index.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href>GhostKnockoffGWAS</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li class="is-active"><a class="tocitem" href>Home</a></li><li><a class="tocitem" href="man/intro/">Introduction</a></li><li><a class="tocitem" href="man/documentation/">Documentation</a></li><li><a class="tocitem" href="man/download/">Downloads</a></li><li><a class="tocitem" href="man/examples/">Tutorial</a></li><li><a class="tocitem" href="man/solveblocks/">Customizing LD files</a></li><li><a class="tocitem" href="man/FAQ/">FAQ</a></li><li><a class="tocitem" href="man/julia/">Usage within Julia</a></li><li><a class="tocitem" href="man/developer/">Developer documentation</a></li><li><a class="tocitem" href="man/gallery/">Gallery</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Home</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Home</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/biona001/GhostKnockoffGWAS" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/biona001/GhostKnockoffGWAS/blob/main/docs/src/index.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="GWAS-summary-statistics-analysis-via-Knockoff-filter"><a class="docs-heading-anchor" href="#GWAS-summary-statistics-analysis-via-Knockoff-filter">GWAS summary statistics analysis via Knockoff-filter</a><a id="GWAS-summary-statistics-analysis-via-Knockoff-filter-1"></a><a class="docs-heading-anchor-permalink" href="#GWAS-summary-statistics-analysis-via-Knockoff-filter" title="Permalink"></a></h1><p>This is package for performing knockoff-based analysis of GWAS summary statistics. The knockoff-filter finds conditionally independent discoveries while controlling the FDR (false discovery rate) to any specified level. </p><p><img src="assets/GK_cover_modified.png" alt="cover"/></p><div class="admonition is-warning"><header class="admonition-header">Warning</header><div class="admonition-body"><p>This package currently only works on Linux platforms with <code>aarch64</code> or <code>x86_64</code> CPUs. We plan to support mac (<code>x86_64</code> and <code>aarch64</code>) in the near future, but not for windows. </p></div></div></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="man/intro/">Introduction »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 3 December 2024 03:13">Tuesday 3 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Home · GhostKnockoffGWAS</title><meta name="title" content="Home · GhostKnockoffGWAS"/><meta property="og:title" content="Home · GhostKnockoffGWAS"/><meta property="twitter:title" content="Home · GhostKnockoffGWAS"/><meta name="description" content="Documentation for GhostKnockoffGWAS."/><meta property="og:description" content="Documentation for GhostKnockoffGWAS."/><meta property="twitter:description" content="Documentation for GhostKnockoffGWAS."/><script data-outdated-warner src="assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="assets/documenter.js"></script><script src="search_index.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href>GhostKnockoffGWAS</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li class="is-active"><a class="tocitem" href>Home</a></li><li><a class="tocitem" href="man/intro/">Introduction</a></li><li><a class="tocitem" href="man/documentation/">Documentation</a></li><li><a class="tocitem" href="man/download/">Downloads</a></li><li><a class="tocitem" href="man/examples/">Tutorial</a></li><li><a class="tocitem" href="man/solveblocks/">Customizing LD files</a></li><li><a class="tocitem" href="man/FAQ/">FAQ</a></li><li><a class="tocitem" href="man/julia/">Usage within Julia</a></li><li><a class="tocitem" href="man/developer/">Developer documentation</a></li><li><a class="tocitem" href="man/gallery/">Gallery</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Home</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Home</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/biona001/GhostKnockoffGWAS" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/biona001/GhostKnockoffGWAS/blob/main/docs/src/index.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="GWAS-summary-statistics-analysis-via-Knockoff-filter"><a class="docs-heading-anchor" href="#GWAS-summary-statistics-analysis-via-Knockoff-filter">GWAS summary statistics analysis via Knockoff-filter</a><a id="GWAS-summary-statistics-analysis-via-Knockoff-filter-1"></a><a class="docs-heading-anchor-permalink" href="#GWAS-summary-statistics-analysis-via-Knockoff-filter" title="Permalink"></a></h1><p>This is package for performing knockoff-based analysis of GWAS summary statistics. The knockoff-filter finds conditionally independent discoveries while controlling the FDR (false discovery rate) to any specified level. </p><p><img src="assets/GK_cover_modified.png" alt="cover"/></p><div class="admonition is-warning"><header class="admonition-header">Warning</header><div class="admonition-body"><p>This package currently only works on Linux platforms with <code>aarch64</code> or <code>x86_64</code> CPUs. We plan to support mac (<code>x86_64</code> and <code>aarch64</code>) in the near future, but not for windows. </p></div></div></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="man/intro/">Introduction »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Wednesday 4 December 2024 03:11">Wednesday 4 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/man/FAQ/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/man/developer/index.html
Original file line number Diff line number Diff line change
@@ -54,4 +54,4 @@
force=true,
precompile_execution_file=precompile_script,
executables=[&quot;GhostKnockoffGWAS&quot;=&gt;&quot;julia_main&quot;, &quot;solveblock&quot;=&gt;&quot;julia_solveblock&quot;]
)</code></pre><p>The last step takes &gt;15 minutes. </p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../julia/">« Usage within Julia</a><a class="docs-footer-nextpage" href="../gallery/">Gallery »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 3 December 2024 03:13">Tuesday 3 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
)</code></pre><p>The last step takes &gt;15 minutes. </p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../julia/">« Usage within Julia</a><a class="docs-footer-nextpage" href="../gallery/">Gallery »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Wednesday 4 December 2024 03:11">Wednesday 4 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/man/documentation/index.html
Original file line number Diff line number Diff line change
@@ -8,4 +8,4 @@
17 152104 G A -0.28387322965385
17 152248 G A 0.901618600934489
17 152427 G A 1.10987516000804
17 152771 A G 0.708492545266136</code></pre><p>A toy example is <a href="https://github.com/biona001/GhostKnockoffGWAS/blob/main/data/example_zfile.txt">example_zfile.txt</a> (17MB).</p><div class="admonition is-success"><header class="admonition-header">Tip</header><div class="admonition-body"><p>Missing Z scores can be specified as <code>NaN</code> or as an empty cell. If you do not want a SNP to be considered in the analysis, you can change the its Z-score to NaN. CHR/POS/REF/ALT fields cannot have missing values.</p></div></div><h2 id="Requirements-on-the-input-Z-scores"><a class="docs-heading-anchor" href="#Requirements-on-the-input-Z-scores">Requirements on the input Z-scores</a><a id="Requirements-on-the-input-Z-scores-1"></a><a class="docs-heading-anchor-permalink" href="#Requirements-on-the-input-Z-scores" title="Permalink"></a></h2><p>In our papers, Z-scores are defined by <span>$z = \frac{1}{\sqrt{N}}X^ty$</span> where <span>$X$</span> is the <span>$N \times P$</span> standardized genotype matrix with <span>$N$</span> samples and <span>$P$</span> SNPs, <span>$y$</span> is the normalized <span>$n \times 1$</span> phenotype vector, and these Z-scores have <span>$N(0, 1)$</span> distribution under the null. </p><p>In practice, <a href="https://arxiv.org/abs/2310.04030">this paper</a> shows that other association test statistics that are <span>$N(0, 1)$</span> under the null also result in FDR control. This includes commonly used tests in genetic association studies such as:</p><ul><li>generalized linear mixed effect model to account for sample relatedness</li><li>saddle point approximation for extreme case-control imbalance</li><li>meta-analysis that aggregates multiple studies.</li></ul><p>If you have p-values, effect sizes, odds ratios,...etc, converting them into Z score might be possible, for example by following the <em>Notes on computing Z-scores</em> of <a href="https://huwenboshi.github.io/data%20management/2017/11/23/tips-for-formatting-gwas-summary-stats.html">this blog post</a>. </p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../intro/">« Introduction</a><a class="docs-footer-nextpage" href="../download/">Downloads »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 3 December 2024 03:13">Tuesday 3 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
17 152771 A G 0.708492545266136</code></pre><p>A toy example is <a href="https://github.com/biona001/GhostKnockoffGWAS/blob/main/data/example_zfile.txt">example_zfile.txt</a> (17MB).</p><div class="admonition is-success"><header class="admonition-header">Tip</header><div class="admonition-body"><p>Missing Z scores can be specified as <code>NaN</code> or as an empty cell. If you do not want a SNP to be considered in the analysis, you can change the its Z-score to NaN. CHR/POS/REF/ALT fields cannot have missing values.</p></div></div><h2 id="Requirements-on-the-input-Z-scores"><a class="docs-heading-anchor" href="#Requirements-on-the-input-Z-scores">Requirements on the input Z-scores</a><a id="Requirements-on-the-input-Z-scores-1"></a><a class="docs-heading-anchor-permalink" href="#Requirements-on-the-input-Z-scores" title="Permalink"></a></h2><p>In our papers, Z-scores are defined by <span>$z = \frac{1}{\sqrt{N}}X^ty$</span> where <span>$X$</span> is the <span>$N \times P$</span> standardized genotype matrix with <span>$N$</span> samples and <span>$P$</span> SNPs, <span>$y$</span> is the normalized <span>$n \times 1$</span> phenotype vector, and these Z-scores have <span>$N(0, 1)$</span> distribution under the null. </p><p>In practice, <a href="https://arxiv.org/abs/2310.04030">this paper</a> shows that other association test statistics that are <span>$N(0, 1)$</span> under the null also result in FDR control. This includes commonly used tests in genetic association studies such as:</p><ul><li>generalized linear mixed effect model to account for sample relatedness</li><li>saddle point approximation for extreme case-control imbalance</li><li>meta-analysis that aggregates multiple studies.</li></ul><p>If you have p-values, effect sizes, odds ratios,...etc, converting them into Z score might be possible, for example by following the <em>Notes on computing Z-scores</em> of <a href="https://huwenboshi.github.io/data%20management/2017/11/23/tips-for-formatting-gwas-summary-stats.html">this blog post</a>. </p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../intro/">« Introduction</a><a class="docs-footer-nextpage" href="../download/">Downloads »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Wednesday 4 December 2024 03:11">Wednesday 4 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/man/download/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/man/examples/index.html
Original file line number Diff line number Diff line change
@@ -64,4 +64,4 @@
rs4535687,0.15927,7,G,C,41892,chr7_start16161_end972751_group1_0,-1.17940334810126,0.0,0,0.0,0.0,1.0,0.23823760256835697,0,0,0,0
rs62429406,0.031058,7,T,G,43748,chr7_start16161_end972751_group2_0,0.636126444862832,0.0,0,0.0,0.0,1.0,0.5246940103826294,0,0,0,0
rs117163387,0.034958,7,C,T,43961,chr7_start16161_end972751_group3_0,-0.548757491205702,0.0,0,0.0,0.0,1.0,0.5831718861307663,0,0,0,0
rs4247525,0.040199,7,T,C,44167,chr7_start16161_end972751_group4_0,0.463442453535633,0.0,0,0.0,0.0,1.0,0.6430472544316368,0,0,0,0</code></pre><p>The first row is a header row. Each proceeding row corresponds to a SNP that was used in the analysis. </p><ul><li><code>rsid,AF,chr,ref,alt,pos_hg38</code> is the SNP ID, alternate allele frequency, reference allele, alternate allele, basepair position in HG38 coordinates.</li><li><code>group</code> column: defines group membership. </li><li><code>zscores</code>: This is the user-provided Z-scores.</li><li><code>lasso_beta</code>: This is the Lasso&#39;s estimated effect size for each SNP conditional on the knockoffs. </li><li><code>kappa,tau,W</code>: these are knockoff statistics computed from the analysis, please refer to our paper for more detail. </li><li><code>qvals</code>: This is the knockoff q-values, which is the minimum target FDR for a given variable to be selected, i.e. for a target FDR level <span>$\alpha$</span>, all variants with <code>qvals</code> <span>$\le \alpha$</span> is selected. </li><li><code>pvals</code>: This is the p-value obtained by back-transforming the input Z-scores</li><li><code>selected_fdrα</code> columns: these inform whether the variable is selected when target FDR is <span>$\alpha$</span>. </li></ul><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>Sometimes it is useful to determine the number of <em>conditionally independent</em> discoveries according to the knockoff procedure. In this case, one should count the number of unique <em>groups</em> that contains the discovered SNPs. In this example, when target FDR is <span>$10\%$</span>, there are 15 SNPs with knockoff q-values less than 0.1, and they reside in 11 unique groups. Thus, the knockoff procedure claims there are at least 11 unique (conditionally-independent) causal variables. </p></div></div><h2 id="Step-5:-Generating-Manhattan-plots"><a class="docs-heading-anchor" href="#Step-5:-Generating-Manhattan-plots">Step 5: Generating Manhattan plots</a><a id="Step-5:-Generating-Manhattan-plots-1"></a><a class="docs-heading-anchor-permalink" href="#Step-5:-Generating-Manhattan-plots" title="Permalink"></a></h2><p>We can generate Manhattan plots by running <a href="https://github.com/biona001/GhostKnockoffGWAS/blob/main/src/manhattan.R">this R script</a> in the terminal (this requires the <code>R</code> packages <code>data.table</code>, <code>plyr</code>, <code>dplyr</code>, <code>CMplot</code>). Usage:</p><pre><code class="language-R hljs">$ Rscript --vanilla manhattan.R arg1 arg2 arg3 arg4</code></pre><ul><li><code>arg1</code>: Main output file from GhostKnockoffGWAS</li><li><code>arg2</code>: Where output Manhattan plots should be stored (a <code>.</code> indicates store in current directory)</li><li><code>arg3</code>: Output filename (without extensions) to be used for both plots, e.g. phenotype name</li><li><code>arg4</code>: Target FDR in percentage</li></ul><p>For example, </p><pre><code class="language-R hljs">$ Rscript --vanilla manhattan.R example_output.txt . example_plot 0.1</code></pre><p>This produced the following plots</p><p><img src="../../assets/Rect_Manhtn.GhostKnockoffGWAS_chr7.jpg" alt="knockoff_manhattan"/> <img src="../../assets/Rect_Manhtn.MarginalAssociationTest_chr7.jpg" alt="marginal_manhattan"/></p><h3 id="Explanation:"><a class="docs-heading-anchor" href="#Explanation:">Explanation:</a><a id="Explanation:-1"></a><a class="docs-heading-anchor-permalink" href="#Explanation:" title="Permalink"></a></h3><ul><li>The knockoff plot displays the knockoff W values on the y-axis, one dot for each SNP. The most significant SNP within a 1Mb region is labeled and colored with purple. Light blue dots are knockoff discoveries that are within 1Mb distance to another more significant SNP. Careful readers may recall that in the summary file (shown in step 4), <code>GhostKnockoffGWAS</code> discovered 15 SNPs which falls within 11 unique <em>groups</em>, but here only 9 SNPs were labelled. This is because some discoveries are too close to each other. In this example, only 9 among 15 SNPs are physically greater than 1Mb apart. This immediate begs the question of how many discoveries one should report. Our papers typically report the number of discoveries physically &gt;1Mb apart (i.e. 9 discoveries in this case), but please note that there are in fact at least 11 conditionally independent discoveries according to the knockoff methodology.</li><li>The marginal plot is a standard Manhattan plot with the y-axis plotting the negative logged p-values. Similar to the knockoff plot, all dots above the dotted line are marginally significant and colored with light blue, while the most signicant SNP within 1Mb region is colored with purple. </li><li>The color bars beneath the x-axis displays chromosome density.</li></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../download/">« Downloads</a><a class="docs-footer-nextpage" href="../solveblocks/">Customizing LD files »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 3 December 2024 03:13">Tuesday 3 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
rs4247525,0.040199,7,T,C,44167,chr7_start16161_end972751_group4_0,0.463442453535633,0.0,0,0.0,0.0,1.0,0.6430472544316368,0,0,0,0</code></pre><p>The first row is a header row. Each proceeding row corresponds to a SNP that was used in the analysis. </p><ul><li><code>rsid,AF,chr,ref,alt,pos_hg38</code> is the SNP ID, alternate allele frequency, reference allele, alternate allele, basepair position in HG38 coordinates.</li><li><code>group</code> column: defines group membership. </li><li><code>zscores</code>: This is the user-provided Z-scores.</li><li><code>lasso_beta</code>: This is the Lasso&#39;s estimated effect size for each SNP conditional on the knockoffs. </li><li><code>kappa,tau,W</code>: these are knockoff statistics computed from the analysis, please refer to our paper for more detail. </li><li><code>qvals</code>: This is the knockoff q-values, which is the minimum target FDR for a given variable to be selected, i.e. for a target FDR level <span>$\alpha$</span>, all variants with <code>qvals</code> <span>$\le \alpha$</span> is selected. </li><li><code>pvals</code>: This is the p-value obtained by back-transforming the input Z-scores</li><li><code>selected_fdrα</code> columns: these inform whether the variable is selected when target FDR is <span>$\alpha$</span>. </li></ul><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>Sometimes it is useful to determine the number of <em>conditionally independent</em> discoveries according to the knockoff procedure. In this case, one should count the number of unique <em>groups</em> that contains the discovered SNPs. In this example, when target FDR is <span>$10\%$</span>, there are 15 SNPs with knockoff q-values less than 0.1, and they reside in 11 unique groups. Thus, the knockoff procedure claims there are at least 11 unique (conditionally-independent) causal variables. </p></div></div><h2 id="Step-5:-Generating-Manhattan-plots"><a class="docs-heading-anchor" href="#Step-5:-Generating-Manhattan-plots">Step 5: Generating Manhattan plots</a><a id="Step-5:-Generating-Manhattan-plots-1"></a><a class="docs-heading-anchor-permalink" href="#Step-5:-Generating-Manhattan-plots" title="Permalink"></a></h2><p>We can generate Manhattan plots by running <a href="https://github.com/biona001/GhostKnockoffGWAS/blob/main/src/manhattan.R">this R script</a> in the terminal (this requires the <code>R</code> packages <code>data.table</code>, <code>plyr</code>, <code>dplyr</code>, <code>CMplot</code>). Usage:</p><pre><code class="language-R hljs">$ Rscript --vanilla manhattan.R arg1 arg2 arg3 arg4</code></pre><ul><li><code>arg1</code>: Main output file from GhostKnockoffGWAS</li><li><code>arg2</code>: Where output Manhattan plots should be stored (a <code>.</code> indicates store in current directory)</li><li><code>arg3</code>: Output filename (without extensions) to be used for both plots, e.g. phenotype name</li><li><code>arg4</code>: Target FDR in percentage</li></ul><p>For example, </p><pre><code class="language-R hljs">$ Rscript --vanilla manhattan.R example_output.txt . example_plot 0.1</code></pre><p>This produced the following plots</p><p><img src="../../assets/Rect_Manhtn.GhostKnockoffGWAS_chr7.jpg" alt="knockoff_manhattan"/> <img src="../../assets/Rect_Manhtn.MarginalAssociationTest_chr7.jpg" alt="marginal_manhattan"/></p><h3 id="Explanation:"><a class="docs-heading-anchor" href="#Explanation:">Explanation:</a><a id="Explanation:-1"></a><a class="docs-heading-anchor-permalink" href="#Explanation:" title="Permalink"></a></h3><ul><li>The knockoff plot displays the knockoff W values on the y-axis, one dot for each SNP. The most significant SNP within a 1Mb region is labeled and colored with purple. Light blue dots are knockoff discoveries that are within 1Mb distance to another more significant SNP. Careful readers may recall that in the summary file (shown in step 4), <code>GhostKnockoffGWAS</code> discovered 15 SNPs which falls within 11 unique <em>groups</em>, but here only 9 SNPs were labelled. This is because some discoveries are too close to each other. In this example, only 9 among 15 SNPs are physically greater than 1Mb apart. This immediate begs the question of how many discoveries one should report. Our papers typically report the number of discoveries physically &gt;1Mb apart (i.e. 9 discoveries in this case), but please note that there are in fact at least 11 conditionally independent discoveries according to the knockoff methodology.</li><li>The marginal plot is a standard Manhattan plot with the y-axis plotting the negative logged p-values. Similar to the knockoff plot, all dots above the dotted line are marginally significant and colored with light blue, while the most signicant SNP within 1Mb region is colored with purple. </li><li>The color bars beneath the x-axis displays chromosome density.</li></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../download/">« Downloads</a><a class="docs-footer-nextpage" href="../solveblocks/">Customizing LD files »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Wednesday 4 December 2024 03:11">Wednesday 4 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/man/gallery/index.html
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Gallery · GhostKnockoffGWAS</title><meta name="title" content="Gallery · GhostKnockoffGWAS"/><meta property="og:title" content="Gallery · GhostKnockoffGWAS"/><meta property="twitter:title" content="Gallery · GhostKnockoffGWAS"/><meta name="description" content="Documentation for GhostKnockoffGWAS."/><meta property="og:description" content="Documentation for GhostKnockoffGWAS."/><meta property="twitter:description" content="Documentation for GhostKnockoffGWAS."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../../">GhostKnockoffGWAS</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><a class="tocitem" href="../intro/">Introduction</a></li><li><a class="tocitem" href="../documentation/">Documentation</a></li><li><a class="tocitem" href="../download/">Downloads</a></li><li><a class="tocitem" href="../examples/">Tutorial</a></li><li><a class="tocitem" href="../solveblocks/">Customizing LD files</a></li><li><a class="tocitem" href="../FAQ/">FAQ</a></li><li><a class="tocitem" href="../julia/">Usage within Julia</a></li><li><a class="tocitem" href="../developer/">Developer documentation</a></li><li class="is-active"><a class="tocitem" href>Gallery</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Gallery</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Gallery</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/biona001/GhostKnockoffGWAS" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/biona001/GhostKnockoffGWAS/blob/main/docs/src/man/gallery.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Gallery"><a class="docs-heading-anchor" href="#Gallery">Gallery</a><a id="Gallery-1"></a><a class="docs-heading-anchor-permalink" href="#Gallery" title="Permalink"></a></h1><p>We applied <code>GhostKnockoffGWAS</code> to 400+ phenotypes currated by Mike Gloudemans, available <a href="https://github.com/mikegloudemans/gwas-download">here</a>. Below showcases some of these results, limiting the study population to EUR ancestry.</p><p>...coming soon</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../developer/">« Developer documentation</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 3 December 2024 03:13">Tuesday 3 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Gallery · GhostKnockoffGWAS</title><meta name="title" content="Gallery · GhostKnockoffGWAS"/><meta property="og:title" content="Gallery · GhostKnockoffGWAS"/><meta property="twitter:title" content="Gallery · GhostKnockoffGWAS"/><meta name="description" content="Documentation for GhostKnockoffGWAS."/><meta property="og:description" content="Documentation for GhostKnockoffGWAS."/><meta property="twitter:description" content="Documentation for GhostKnockoffGWAS."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../../">GhostKnockoffGWAS</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><a class="tocitem" href="../intro/">Introduction</a></li><li><a class="tocitem" href="../documentation/">Documentation</a></li><li><a class="tocitem" href="../download/">Downloads</a></li><li><a class="tocitem" href="../examples/">Tutorial</a></li><li><a class="tocitem" href="../solveblocks/">Customizing LD files</a></li><li><a class="tocitem" href="../FAQ/">FAQ</a></li><li><a class="tocitem" href="../julia/">Usage within Julia</a></li><li><a class="tocitem" href="../developer/">Developer documentation</a></li><li class="is-active"><a class="tocitem" href>Gallery</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Gallery</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Gallery</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/biona001/GhostKnockoffGWAS" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/biona001/GhostKnockoffGWAS/blob/main/docs/src/man/gallery.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Gallery"><a class="docs-heading-anchor" href="#Gallery">Gallery</a><a id="Gallery-1"></a><a class="docs-heading-anchor-permalink" href="#Gallery" title="Permalink"></a></h1><p>We applied <code>GhostKnockoffGWAS</code> to 400+ phenotypes currated by Mike Gloudemans, available <a href="https://github.com/mikegloudemans/gwas-download">here</a>. Below showcases some of these results, limiting the study population to EUR ancestry.</p><p>...coming soon</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../developer/">« Developer documentation</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Wednesday 4 December 2024 03:11">Wednesday 4 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/man/intro/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/man/julia/index.html
Original file line number Diff line number Diff line change
@@ -30,4 +30,4 @@
[min_hwe=0.0], [force_block_diag=true],
[method::String = &quot;maxent&quot;], [linkage::String=&quot;average&quot;],
[force_contiguous::Bool=false], [group_cor_cutoff::Float64=0.5],
[group_rep_cutoff::Float64=0.5], [verbose=true])</code></pre><p>Solves the group knockoff optimization problem on provided individual-level data and outputs the result into <code>outdir</code>. All variants that reside on chromosome <code>chr</code> with position between <code>start_bp</code> and <code>end_bp</code> (inclusive) will be included. </p><p><strong>Note on large VCF files</strong></p><p>Currently reading/parsing a VCF file is a single-threaded operation (even if it is indexed). Thus, we <em>strongly recommend</em> one convert to binary PLINK format.</p><p><strong>Inputs</strong></p><ul><li><code>file</code>: A VCF or binary PLINK file storing individual level genotypes. Must end in <code>.vcf</code>, <code>.vcf.gz</code>, or <code>.bed</code>. If a VCF file is used, the ALT field for each record must be unique, i.e. multiallelic records must be split first. Missing genotypes will be imputed by column mean. </li><li><code>covfile</code>: An optional comma- or tab-separated file containing sample covariates (e.g. sex, age, PCs). This argument can be an empty string. The supplied covariates will be used to improve LD estimation. The first column should be sample IDs (not necessary to be in the sample order as VCF or PLINK files) and all other columns will be used as additional covariates.</li><li><code>chr</code>: Target chromosome. This MUST be an integer and it must match the <code>CHROM</code> field in your VCF/PLINK file. For example, if your VCF file has CHROM field like <code>chr1</code>, <code>CHR1</code>, or <code>CHROM1</code> etc, they must be renamed into <code>1</code>. </li><li><code>start_bp</code>: starting basepair (position)</li><li><code>end_bp</code>: ending basepair (position)</li><li><code>outdir</code>: Directory that the output will be stored in (must exist)</li><li><code>hg_build</code>: human genome build for position of each SNP, must be 19 (hg19) or 38 (hg38)</li></ul><p><strong>Optional inputs (for group knockoff optimization)</strong></p><ul><li><code>snps_to_keep</code>: Vector of SNP positions to import. If specified, only SNPs whose position is listed in <code>snps_to_keep</code> will be kept (default <code>nothing</code>)</li><li><code>tol</code>: Convergence tolerlance for coordinate descent algorithm (default <code>0.0001</code>)</li><li><code>min_maf</code>: Minimum minor allele frequency for a variable to be considered ( default <code>0.01</code>)</li><li><code>min_hwe</code>: Cutoff for hardy-weinburg equilibrium p-values. Only SNPs with p-value &gt; <code>min_hwe</code> will be included (default <code>0.0</code>)</li><li><code>force_block_diag</code>: Whether to re-order the columns/rows of the correlation matrix and corresponding <code>S</code> matrix so that features in the same group are contiguous (default <code>true</code>). This has no impact on the final results, it is simply for computational performance. </li><li><code>method</code>: group knockoff optimization algorithm, choices include &quot;maxent&quot; (default), &quot;mvr&quot;, &quot;sdp&quot;, or &quot;equi&quot;. See sec 2 of https://arxiv.org/abs/2310.15069</li><li><code>linkage</code>: <em>cluster linkage</em> function to use for hierarchically clustering groups. It defines how the distances between features are aggregated into the distances between groups. Valid choices include:<ul><li><code>:average</code> (default): use the mean distance between any of the cluster members</li><li><code>:single</code>: use the minimum distance between any of the cluster members</li><li><code>:complete</code>: use the maximum distance between any of the members</li><li><code>:ward</code>: the distance is the increase of the average squared distance of a point to its cluster centroid after merging the two clusters</li><li><code>:ward_presquared</code>: same as <code>:ward</code>, but assumes that the distances in d are already squared.</li></ul></li><li><code>force_contiguous</code>: whether to force groups to be contiguous (default <code>false</code>). Note if <code>force_contiguous=true</code>, <code>linkage</code> must be <code>:single</code>)</li><li><code>group_cor_cutoff</code>: correlation cutoff value for defining groups (default <code>0.5</code>). Value should be between 0 and 1, where larger values correspond to larger groups. </li><li><code>group_rep_cutoff</code>: cutoff value for selecting group-representatives (default <code>0.5</code>). Value should be between 0 and 1, where larger values correspond to more representatives per group. </li><li><code>verbose</code>: whether to print informative intermediate results (default <code>true</code>)</li></ul><p><strong>output</strong></p><p>Calling <code>solve_blocks</code> will create 3 files in the directory <code>outdir/chr</code>:</p><ul><li><code>XXX.h5</code>: This contains data (Sigma, S, groups, ..., etc) for region XXX. It contains the following:<ul><li><code>D</code>: A <code>p × p</code> (dense) matrix corresponding to the S matrix for both the representative and non-representative variables. Knockoff sampling should use this matrix. </li><li><code>S</code>: Matrix obtained from solving the group knockoff optimization problem on the representative (group-key) variables.</li><li><code>Sigma</code>: The original <code>p × p</code> correlation matrix estimated from <code>vcffile</code></li><li><code>SigmaInv</code>: Inverse of <code>Sigma</code></li><li><code>Sigma_reps</code>: The correlation matrix for the representative variables. This is the matrix actually used to solve the group-knockoff optimization</li><li><code>Sigma_reps_inv</code>: Inverse of <code>Sigma_reps</code></li><li><code>group_reps</code>: Indices <code>groups</code> that are used as representatives (i.e. group-key variables)</li><li><code>groups</code>: The group membership vector</li></ul></li><li><code>Info_XXX.csv</code>: This includes information for each variant (chr/pos/etc) present in the corresponding <code>.h5</code> file.</li><li><code>summary_XXX.csv</code>: Summary file for the knockoff optimization problem</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/biona001/GhostKnockoffGWAS/blob/81be7003bd075ee243f01c963a73e586a8aa4633/src/make_hdf5.jl#L313-L402">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../FAQ/">« FAQ</a><a class="docs-footer-nextpage" href="../developer/">Developer documentation »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 3 December 2024 03:13">Tuesday 3 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
[group_rep_cutoff::Float64=0.5], [verbose=true])</code></pre><p>Solves the group knockoff optimization problem on provided individual-level data and outputs the result into <code>outdir</code>. All variants that reside on chromosome <code>chr</code> with position between <code>start_bp</code> and <code>end_bp</code> (inclusive) will be included. </p><p><strong>Note on large VCF files</strong></p><p>Currently reading/parsing a VCF file is a single-threaded operation (even if it is indexed). Thus, we <em>strongly recommend</em> one convert to binary PLINK format.</p><p><strong>Inputs</strong></p><ul><li><code>file</code>: A VCF or binary PLINK file storing individual level genotypes. Must end in <code>.vcf</code>, <code>.vcf.gz</code>, or <code>.bed</code>. If a VCF file is used, the ALT field for each record must be unique, i.e. multiallelic records must be split first. Missing genotypes will be imputed by column mean. </li><li><code>covfile</code>: An optional comma- or tab-separated file containing sample covariates (e.g. sex, age, PCs). This argument can be an empty string. The supplied covariates will be used to improve LD estimation. The first column should be sample IDs (not necessary to be in the sample order as VCF or PLINK files) and all other columns will be used as additional covariates.</li><li><code>chr</code>: Target chromosome. This MUST be an integer and it must match the <code>CHROM</code> field in your VCF/PLINK file. For example, if your VCF file has CHROM field like <code>chr1</code>, <code>CHR1</code>, or <code>CHROM1</code> etc, they must be renamed into <code>1</code>. </li><li><code>start_bp</code>: starting basepair (position)</li><li><code>end_bp</code>: ending basepair (position)</li><li><code>outdir</code>: Directory that the output will be stored in (must exist)</li><li><code>hg_build</code>: human genome build for position of each SNP, must be 19 (hg19) or 38 (hg38)</li></ul><p><strong>Optional inputs (for group knockoff optimization)</strong></p><ul><li><code>snps_to_keep</code>: Vector of SNP positions to import. If specified, only SNPs whose position is listed in <code>snps_to_keep</code> will be kept (default <code>nothing</code>)</li><li><code>tol</code>: Convergence tolerlance for coordinate descent algorithm (default <code>0.0001</code>)</li><li><code>min_maf</code>: Minimum minor allele frequency for a variable to be considered ( default <code>0.01</code>)</li><li><code>min_hwe</code>: Cutoff for hardy-weinburg equilibrium p-values. Only SNPs with p-value &gt; <code>min_hwe</code> will be included (default <code>0.0</code>)</li><li><code>force_block_diag</code>: Whether to re-order the columns/rows of the correlation matrix and corresponding <code>S</code> matrix so that features in the same group are contiguous (default <code>true</code>). This has no impact on the final results, it is simply for computational performance. </li><li><code>method</code>: group knockoff optimization algorithm, choices include &quot;maxent&quot; (default), &quot;mvr&quot;, &quot;sdp&quot;, or &quot;equi&quot;. See sec 2 of https://arxiv.org/abs/2310.15069</li><li><code>linkage</code>: <em>cluster linkage</em> function to use for hierarchically clustering groups. It defines how the distances between features are aggregated into the distances between groups. Valid choices include:<ul><li><code>:average</code> (default): use the mean distance between any of the cluster members</li><li><code>:single</code>: use the minimum distance between any of the cluster members</li><li><code>:complete</code>: use the maximum distance between any of the members</li><li><code>:ward</code>: the distance is the increase of the average squared distance of a point to its cluster centroid after merging the two clusters</li><li><code>:ward_presquared</code>: same as <code>:ward</code>, but assumes that the distances in d are already squared.</li></ul></li><li><code>force_contiguous</code>: whether to force groups to be contiguous (default <code>false</code>). Note if <code>force_contiguous=true</code>, <code>linkage</code> must be <code>:single</code>)</li><li><code>group_cor_cutoff</code>: correlation cutoff value for defining groups (default <code>0.5</code>). Value should be between 0 and 1, where larger values correspond to larger groups. </li><li><code>group_rep_cutoff</code>: cutoff value for selecting group-representatives (default <code>0.5</code>). Value should be between 0 and 1, where larger values correspond to more representatives per group. </li><li><code>verbose</code>: whether to print informative intermediate results (default <code>true</code>)</li></ul><p><strong>output</strong></p><p>Calling <code>solve_blocks</code> will create 3 files in the directory <code>outdir/chr</code>:</p><ul><li><code>XXX.h5</code>: This contains data (Sigma, S, groups, ..., etc) for region XXX. It contains the following:<ul><li><code>D</code>: A <code>p × p</code> (dense) matrix corresponding to the S matrix for both the representative and non-representative variables. Knockoff sampling should use this matrix. </li><li><code>S</code>: Matrix obtained from solving the group knockoff optimization problem on the representative (group-key) variables.</li><li><code>Sigma</code>: The original <code>p × p</code> correlation matrix estimated from <code>vcffile</code></li><li><code>SigmaInv</code>: Inverse of <code>Sigma</code></li><li><code>Sigma_reps</code>: The correlation matrix for the representative variables. This is the matrix actually used to solve the group-knockoff optimization</li><li><code>Sigma_reps_inv</code>: Inverse of <code>Sigma_reps</code></li><li><code>group_reps</code>: Indices <code>groups</code> that are used as representatives (i.e. group-key variables)</li><li><code>groups</code>: The group membership vector</li></ul></li><li><code>Info_XXX.csv</code>: This includes information for each variant (chr/pos/etc) present in the corresponding <code>.h5</code> file.</li><li><code>summary_XXX.csv</code>: Summary file for the knockoff optimization problem</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/biona001/GhostKnockoffGWAS/blob/81be7003bd075ee243f01c963a73e586a8aa4633/src/make_hdf5.jl#L313-L402">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../FAQ/">« FAQ</a><a class="docs-footer-nextpage" href="../developer/">Developer documentation »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Wednesday 4 December 2024 03:11">Wednesday 4 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/man/solveblocks/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/man/video/index.html
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Video Tutorials · GhostKnockoffGWAS</title><meta name="title" content="Video Tutorials · GhostKnockoffGWAS"/><meta property="og:title" content="Video Tutorials · GhostKnockoffGWAS"/><meta property="twitter:title" content="Video Tutorials · GhostKnockoffGWAS"/><meta name="description" content="Documentation for GhostKnockoffGWAS."/><meta property="og:description" content="Documentation for GhostKnockoffGWAS."/><meta property="twitter:description" content="Documentation for GhostKnockoffGWAS."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../../">GhostKnockoffGWAS</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><a class="tocitem" href="../intro/">Introduction</a></li><li><a class="tocitem" href="../documentation/">Documentation</a></li><li><a class="tocitem" href="../download/">Downloads</a></li><li><a class="tocitem" href="../examples/">Tutorial</a></li><li><a class="tocitem" href="../solveblocks/">Customizing LD files</a></li><li><a class="tocitem" href="../FAQ/">FAQ</a></li><li><a class="tocitem" href="../julia/">Usage within Julia</a></li><li><a class="tocitem" href="../developer/">Developer documentation</a></li><li><a class="tocitem" href="../gallery/">Gallery</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Video Tutorials</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Video Tutorials</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/biona001/GhostKnockoffGWAS" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/biona001/GhostKnockoffGWAS/blob/main/docs/src/man/video.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Video-Tutorials"><a class="docs-heading-anchor" href="#Video-Tutorials">Video Tutorials</a><a id="Video-Tutorials-1"></a><a class="docs-heading-anchor-permalink" href="#Video-Tutorials" title="Permalink"></a></h1><p>Coming soon</p><h2 id="Installation"><a class="docs-heading-anchor" href="#Installation">Installation</a><a id="Installation-1"></a><a class="docs-heading-anchor-permalink" href="#Installation" title="Permalink"></a></h2><pre><code class="language-julia hljs"></code></pre><h2 id="Running-the-analysis"><a class="docs-heading-anchor" href="#Running-the-analysis">Running the analysis</a><a id="Running-the-analysis-1"></a><a class="docs-heading-anchor-permalink" href="#Running-the-analysis" title="Permalink"></a></h2><pre><code class="language-julia hljs"></code></pre><h2 id="Interpreting-the-result"><a class="docs-heading-anchor" href="#Interpreting-the-result">Interpreting the result</a><a id="Interpreting-the-result-1"></a><a class="docs-heading-anchor-permalink" href="#Interpreting-the-result" title="Permalink"></a></h2><pre><code class="language-julia hljs"></code></pre></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 3 December 2024 03:13">Tuesday 3 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Video Tutorials · GhostKnockoffGWAS</title><meta name="title" content="Video Tutorials · GhostKnockoffGWAS"/><meta property="og:title" content="Video Tutorials · GhostKnockoffGWAS"/><meta property="twitter:title" content="Video Tutorials · GhostKnockoffGWAS"/><meta name="description" content="Documentation for GhostKnockoffGWAS."/><meta property="og:description" content="Documentation for GhostKnockoffGWAS."/><meta property="twitter:description" content="Documentation for GhostKnockoffGWAS."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../../">GhostKnockoffGWAS</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><a class="tocitem" href="../intro/">Introduction</a></li><li><a class="tocitem" href="../documentation/">Documentation</a></li><li><a class="tocitem" href="../download/">Downloads</a></li><li><a class="tocitem" href="../examples/">Tutorial</a></li><li><a class="tocitem" href="../solveblocks/">Customizing LD files</a></li><li><a class="tocitem" href="../FAQ/">FAQ</a></li><li><a class="tocitem" href="../julia/">Usage within Julia</a></li><li><a class="tocitem" href="../developer/">Developer documentation</a></li><li><a class="tocitem" href="../gallery/">Gallery</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Video Tutorials</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Video Tutorials</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/biona001/GhostKnockoffGWAS" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/biona001/GhostKnockoffGWAS/blob/main/docs/src/man/video.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Video-Tutorials"><a class="docs-heading-anchor" href="#Video-Tutorials">Video Tutorials</a><a id="Video-Tutorials-1"></a><a class="docs-heading-anchor-permalink" href="#Video-Tutorials" title="Permalink"></a></h1><p>Coming soon</p><h2 id="Installation"><a class="docs-heading-anchor" href="#Installation">Installation</a><a id="Installation-1"></a><a class="docs-heading-anchor-permalink" href="#Installation" title="Permalink"></a></h2><pre><code class="language-julia hljs"></code></pre><h2 id="Running-the-analysis"><a class="docs-heading-anchor" href="#Running-the-analysis">Running the analysis</a><a id="Running-the-analysis-1"></a><a class="docs-heading-anchor-permalink" href="#Running-the-analysis" title="Permalink"></a></h2><pre><code class="language-julia hljs"></code></pre><h2 id="Interpreting-the-result"><a class="docs-heading-anchor" href="#Interpreting-the-result">Interpreting the result</a><a id="Interpreting-the-result-1"></a><a class="docs-heading-anchor-permalink" href="#Interpreting-the-result" title="Permalink"></a></h2><pre><code class="language-julia hljs"></code></pre></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Wednesday 4 December 2024 03:11">Wednesday 4 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/man/zfile/index.html
Original file line number Diff line number Diff line change
@@ -8,4 +8,4 @@
17 152104 G A -0.28387322965385
17 152248 G A 0.901618600934489
17 152427 G A 1.10987516000804
17 152771 A G 0.708492545266136</code></pre><p>A toy example is <a href="https://github.com/biona001/GhostKnockoffGWAS/blob/main/data/example_zfile.txt">example_zfile.txt</a> (17MB).</p><div class="admonition is-success"><header class="admonition-header">Tip</header><div class="admonition-body"><p>Missing Z scores can be specified as <code>NaN</code> or as an empty cell. If you do not want a SNP to be considered in the analysis, you can change the its Z-score to NaN. CHR/POS/REF/ALT fields cannot have missing values.</p></div></div><h2 id="Requirements-on-the-input-Z-scores"><a class="docs-heading-anchor" href="#Requirements-on-the-input-Z-scores">Requirements on the input Z-scores</a><a id="Requirements-on-the-input-Z-scores-1"></a><a class="docs-heading-anchor-permalink" href="#Requirements-on-the-input-Z-scores" title="Permalink"></a></h2><p>In our papers, Z-scores are defined by <span>$z = \frac{1}{\sqrt{N}}X^ty$</span> where <span>$X$</span> is the <span>$N \times P$</span> standardized genotype matrix with <span>$N$</span> samples and <span>$P$</span> SNPs, <span>$y$</span> is the normalized <span>$n \times 1$</span> phenotype vector, and these Z-scores have <span>$N(0, 1)$</span> distribution under the null. </p><p>In practice, <a href="https://arxiv.org/abs/2310.04030">this paper</a> shows that other association test statistics that are <span>$N(0, 1)$</span> under the null also result in FDR control. This includes commonly used tests in genetic association studies such as:</p><ul><li>generalized linear mixed effect model to account for sample relatedness</li><li>saddle point approximation for extreme case-control imbalance</li><li>meta-analysis that aggregates multiple studies.</li></ul><p>If you have p-values, effect sizes, odds ratios,...etc, converting them into Z score might be possible, for example by following the <em>Notes on computing Z-scores</em> of <a href="https://huwenboshi.github.io/data%20management/2017/11/23/tips-for-formatting-gwas-summary-stats.html">this blog post</a>. </p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 3 December 2024 03:13">Tuesday 3 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
17 152771 A G 0.708492545266136</code></pre><p>A toy example is <a href="https://github.com/biona001/GhostKnockoffGWAS/blob/main/data/example_zfile.txt">example_zfile.txt</a> (17MB).</p><div class="admonition is-success"><header class="admonition-header">Tip</header><div class="admonition-body"><p>Missing Z scores can be specified as <code>NaN</code> or as an empty cell. If you do not want a SNP to be considered in the analysis, you can change the its Z-score to NaN. CHR/POS/REF/ALT fields cannot have missing values.</p></div></div><h2 id="Requirements-on-the-input-Z-scores"><a class="docs-heading-anchor" href="#Requirements-on-the-input-Z-scores">Requirements on the input Z-scores</a><a id="Requirements-on-the-input-Z-scores-1"></a><a class="docs-heading-anchor-permalink" href="#Requirements-on-the-input-Z-scores" title="Permalink"></a></h2><p>In our papers, Z-scores are defined by <span>$z = \frac{1}{\sqrt{N}}X^ty$</span> where <span>$X$</span> is the <span>$N \times P$</span> standardized genotype matrix with <span>$N$</span> samples and <span>$P$</span> SNPs, <span>$y$</span> is the normalized <span>$n \times 1$</span> phenotype vector, and these Z-scores have <span>$N(0, 1)$</span> distribution under the null. </p><p>In practice, <a href="https://arxiv.org/abs/2310.04030">this paper</a> shows that other association test statistics that are <span>$N(0, 1)$</span> under the null also result in FDR control. This includes commonly used tests in genetic association studies such as:</p><ul><li>generalized linear mixed effect model to account for sample relatedness</li><li>saddle point approximation for extreme case-control imbalance</li><li>meta-analysis that aggregates multiple studies.</li></ul><p>If you have p-values, effect sizes, odds ratios,...etc, converting them into Z score might be possible, for example by following the <em>Notes on computing Z-scores</em> of <a href="https://huwenboshi.github.io/data%20management/2017/11/23/tips-for-formatting-gwas-summary-stats.html">this blog post</a>. </p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Wednesday 4 December 2024 03:11">Wednesday 4 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>

0 comments on commit dc083d2

Please sign in to comment.