genal-python 0.5__tar.gz → 0.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. {genal_python-0.5 → genal_python-0.7}/.gitignore +2 -1
  2. {genal_python-0.5 → genal_python-0.7}/PKG-INFO +23 -16
  3. {genal_python-0.5 → genal_python-0.7}/README.md +11 -7
  4. genal_python-0.7/docs/_build/doctrees/api.doctree +0 -0
  5. genal_python-0.7/docs/_build/doctrees/environment.pickle +0 -0
  6. genal_python-0.7/docs/_build/doctrees/genal.doctree +0 -0
  7. genal_python-0.7/docs/_build/doctrees/index.doctree +0 -0
  8. genal_python-0.7/docs/_build/doctrees/introduction.doctree +0 -0
  9. genal_python-0.7/docs/_build/doctrees/modules.doctree +0 -0
  10. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/.buildinfo +1 -1
  11. genal_python-0.7/docs/_build/html/_sources/index.rst.txt +59 -0
  12. genal_python-0.7/docs/_build/html/api.html +876 -0
  13. genal_python-0.7/docs/_build/html/genal.html +2039 -0
  14. genal_python-0.7/docs/_build/html/genindex.html +701 -0
  15. genal_python-0.7/docs/_build/html/index.html +192 -0
  16. genal_python-0.7/docs/_build/html/introduction.html +584 -0
  17. genal_python-0.7/docs/_build/html/modules.html +269 -0
  18. genal_python-0.7/docs/_build/html/objects.inv +0 -0
  19. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/py-modindex.html +21 -14
  20. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/search.html +9 -2
  21. genal_python-0.7/docs/_build/html/searchindex.js +1 -0
  22. genal_python-0.7/docs/source/api.rst +24 -0
  23. genal_python-0.7/docs/source/genal.rst +101 -0
  24. {genal_python-0.5 → genal_python-0.7}/docs/source/index.rst +1 -1
  25. genal_python-0.7/docs/source/introduction.rst +505 -0
  26. genal_python-0.7/docs/source/modules.rst +7 -0
  27. {genal_python-0.5 → genal_python-0.7}/genal/Geno.py +175 -119
  28. {genal_python-0.5 → genal_python-0.7}/genal/__init__.py +1 -1
  29. {genal_python-0.5 → genal_python-0.7}/genal/association.py +3 -0
  30. {genal_python-0.5 → genal_python-0.7}/genal/geno_tools.py +24 -13
  31. {genal_python-0.5 → genal_python-0.7}/genal/lift.py +1 -1
  32. genal_python-0.7/genal/snp_query.py +86 -0
  33. {genal_python-0.5 → genal_python-0.7}/genal/tools.py +5 -6
  34. {genal_python-0.5 → genal_python-0.7}/pyproject.toml +14 -11
  35. {genal_python-0.5 → genal_python-0.7}/requirements.txt +3 -2
  36. genal_python-0.5/docs/_build/doctrees/environment.pickle +0 -0
  37. genal_python-0.5/docs/_build/doctrees/index.doctree +0 -0
  38. genal_python-0.5/docs/_build/html/_sources/index.rst.txt +0 -20
  39. genal_python-0.5/docs/_build/html/genindex.html +0 -562
  40. genal_python-0.5/docs/_build/html/index.html +0 -113
  41. genal_python-0.5/docs/_build/html/objects.inv +0 -0
  42. genal_python-0.5/docs/_build/html/searchindex.js +0 -1
  43. {genal_python-0.5 → genal_python-0.7}/LICENSE +0 -0
  44. {genal_python-0.5 → genal_python-0.7}/docs/Images/MR_plot_SBP_AS.png +0 -0
  45. {genal_python-0.5 → genal_python-0.7}/docs/Makefile +0 -0
  46. {genal_python-0.5 → genal_python-0.7}/docs/_build/doctrees/source/genal.doctree +0 -0
  47. {genal_python-0.5 → genal_python-0.7}/docs/_build/doctrees/source/modules.doctree +0 -0
  48. /genal_python-0.5/docs/source/api.rst → /genal_python-0.7/docs/_build/html/_sources/api.rst.txt +0 -0
  49. /genal_python-0.5/docs/source/genal.rst → /genal_python-0.7/docs/_build/html/_sources/genal.rst.txt +0 -0
  50. /genal_python-0.5/docs/source/introduction.rst → /genal_python-0.7/docs/_build/html/_sources/introduction.rst.txt +0 -0
  51. {genal_python-0.5/docs/_build/html/_sources/source → genal_python-0.7/docs/_build/html/_sources}/modules.rst.txt +0 -0
  52. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_sources/source/genal.rst.txt +0 -0
  53. /genal_python-0.5/docs/source/modules.rst → /genal_python-0.7/docs/_build/html/_sources/source/modules.rst.txt +0 -0
  54. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  55. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/basic.css +0 -0
  56. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/badge_only.css +0 -0
  57. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  58. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  59. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  60. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  61. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  62. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
  63. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  64. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  65. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  66. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  67. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  68. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/lato-bold.woff +0 -0
  69. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  70. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  71. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  72. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/lato-normal.woff +0 -0
  73. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  74. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/css/theme.css +0 -0
  75. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/doctools.js +0 -0
  76. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/documentation_options.js +0 -0
  77. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/file.png +0 -0
  78. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/jquery.js +0 -0
  79. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/js/badge_only.js +0 -0
  80. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/js/html5shiv-printshiv.min.js +0 -0
  81. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/js/html5shiv.min.js +0 -0
  82. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/js/theme.js +0 -0
  83. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/language_data.js +0 -0
  84. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/minus.png +0 -0
  85. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/plus.png +0 -0
  86. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/pygments.css +0 -0
  87. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/searchtools.js +0 -0
  88. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/_static/sphinx_highlight.js +0 -0
  89. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/source/genal.html +0 -0
  90. {genal_python-0.5 → genal_python-0.7}/docs/_build/html/source/modules.html +0 -0
  91. {genal_python-0.5 → genal_python-0.7}/docs/make.bat +0 -0
  92. {genal_python-0.5 → genal_python-0.7}/docs/requirements.txt +0 -0
  93. {genal_python-0.5 → genal_python-0.7}/docs/source/conf.py +0 -0
  94. {genal_python-0.5 → genal_python-0.7}/genal/MR.py +0 -0
  95. {genal_python-0.5 → genal_python-0.7}/genal/MR_tools.py +0 -0
  96. {genal_python-0.5 → genal_python-0.7}/genal/MRpresso.py +0 -0
  97. {genal_python-0.5 → genal_python-0.7}/genal/clump.py +0 -0
  98. {genal_python-0.5 → genal_python-0.7}/genal/constants.py +0 -0
  99. {genal_python-0.5 → genal_python-0.7}/genal/extract_prs.py +0 -0
  100. {genal_python-0.5 → genal_python-0.7}/genal/proxy.py +0 -0
  101. {genal_python-0.5 → genal_python-0.7}/gitignore +0 -0
  102. {genal_python-0.5 → genal_python-0.7}/readthedocs.yaml +0 -0
@@ -2,4 +2,5 @@ __pycache__/
2
2
  dist/
3
3
  .ipynb_checkpoints/
4
4
  ipynb_checkpoints/
5
- genal/.ipynb_checkpoints/
5
+ genal/.ipynb_checkpoints/
6
+ docs/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: genal-python
3
- Version: 0.5
3
+ Version: 0.7
4
4
  Summary: A python toolkit for polygenic risk scoring and mendelian randomization.
5
5
  Author-email: Cyprien Rivier <riviercyprien@gmail.com>
6
6
  Requires-Python: >=3.7
@@ -8,16 +8,19 @@ Description-Content-Type: text/markdown
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
10
10
  Classifier: Operating System :: OS Independent
11
- Requires-Dist: numpy>=1.26.2
11
+ Requires-Dist: aiohttp==3.9.5
12
+ Requires-Dist: nest_asyncio==1.5.5
13
+ Requires-Dist: numpy>=1.24.4, <2.0
12
14
  Requires-Dist: pandas>=2.0.3
13
- Requires-Dist: plotnine>=0.12.3
14
- Requires-Dist: psutil>=5.9.1
15
- Requires-Dist: pyliftover>=0.4
15
+ Requires-Dist: plotnine==0.12.3
16
+ Requires-Dist: psutil==5.9.1
17
+ Requires-Dist: pyliftover==0.4
16
18
  Requires-Dist: scikit_learn>=1.3.0
17
- Requires-Dist: scipy>=1.11.3
18
- Requires-Dist: statsmodels>=0.14.0
19
- Requires-Dist: tqdm>=4.66.1
20
- Requires-Dist: wget>=3.2
19
+ Requires-Dist: scipy>=1.11.4
20
+ Requires-Dist: sphinx_rtd_theme==1.3.0
21
+ Requires-Dist: statsmodels==0.14.0
22
+ Requires-Dist: tqdm==4.66.1
23
+ Requires-Dist: wget==3.2
21
24
  Project-URL: Home, https://github.com/CypRiv/genal
22
25
 
23
26
  <center><h1> genal: A Python Toolkit for Genetic Risk Scoring and Mendelian Randomization </h1></center>
@@ -26,12 +29,14 @@ Project-URL: Home, https://github.com/CypRiv/genal
26
29
 
27
30
  **This project was developed by Cyprien A. Rivier**
28
31
 
32
+
29
33
  # Table of contents
30
34
  1. [Introduction](#introduction)
31
- 2. [Requirements for the genal module](#paragraph1)
32
- 3. [Installation and how to use genal](#paragraph2)
35
+ 2. [Citation] (#citation)
36
+ 3. [Requirements for the genal module](#paragraph1)
37
+ 4. [Installation and how to use genal](#paragraph2)
33
38
  1. [Installation](#paragraph2.1)
34
- 4. [Tutorial and presentation of the main tools](#paragraph3)
39
+ 5. [Tutorial and presentation of the main tools](#paragraph3)
35
40
  1. [Data loading](#paragraph3.1)
36
41
  2. [Data preprocessing](#paragraph3.2)
37
42
  3. [Clumping](#paragraph3.3)
@@ -41,8 +46,6 @@ Project-URL: Home, https://github.com/CypRiv/genal
41
46
  7. [Lifting](#paragraph3.7)
42
47
 
43
48
 
44
-
45
-
46
49
  ## Introduction <a name="introduction"></a>
47
50
  Genal is a python module designed to make it easy to run genetic risk scores and mendelian randomization analyses. It integrates a collection of tools that facilitate the cleaning of single nucleotide polymorphism data (usually derived from Genome-Wide Association Studies) and enable the execution of clinical population genetic workflows. The functionalities provided by genal include clumping, lifting, association testing, polygenic risk scoring, and Mendelian randomization analyses, all within a single Python module.
48
51
 
@@ -50,6 +53,10 @@ The module prioritizes user-friendliness and intuitive operation, aiming to redu
50
53
 
51
54
  Genal draws on concepts from well-established R packages such as TwoSampleMR, MR-Presso, MendelianRandomization, and gwasvcf, adapting their proven methodologies to the Python environment. This approach ensures that users have access to tried and tested techniques with the versatility of Python's data science tools.
52
55
 
56
+ ## Citation <a name="citation"></a>
57
+ If you're using genal, please cite the following paper:
58
+ **Genal: A Python Toolkit for Genetic Risk Scoring and Mendelian Randomization.** Cyprien A. Rivier, Santiago Clocchiatti-Tuozzo, Shufan Huo, Victor Torres-Lopez, Daniela Renedo, Kevin N. Sheth, Guido J. Falcone, Julian N. Acosta. medRxiv 2024.05.23.24307776; doi: https://doi.org/10.1101/2024.05.23.24307776
59
+
53
60
  ## Requirements for the genal module <a name="paragraph1"></a>
54
61
  ***Python 3.9 or later***. https://www.python.org/ <br>
55
62
 
@@ -475,7 +482,7 @@ As expected, many MR methods indicate that SBP is strongly associated with strok
475
482
  To investigate horizontal pleiotropy in more details, a very useful method is Mendelian Randomization Pleiotropy RESidual Sum and Outlier (MR-PRESSO). MR-PRESSO is a method designed to detect and correct for horizontal pleiotropy. It will identify which instruments are likely to be pleiotropic on their effect on the outcome, and it will rerun an inverse-variance weighted MR after excluding them. It can be run using the `genal.Geno.MRpresso` method:
476
483
 
477
484
  ```python
478
- SBP_clumped.MRpresso(action = 2, n_iterations = 30000)
485
+ mod_table, GlobalTest, OutlierTest, BiasTest = SBP_clumped.MRpresso(action = 2, n_iterations = 30000)
479
486
  ```
480
487
 
481
488
  As with the `genal.Geno.MR` method, the `action` argument determines how the pleiotropic SNPs will be treated. The output is a list containing:
@@ -520,7 +527,7 @@ At this point, genal will identify if the phenotype is binary or quantitative in
520
527
  Identified 0 as the control code in 'PHENO'. Set 'alternate_control=True' to inverse this interpretation.
521
528
  The phenotype data is stored in the .phenotype attribute.
522
529
 
523
- We can then run the association tests, specifying the path to the genetic files in plink format, and any columns we may want to include as covariates in the regression tests:
530
+ We can then run the association tests, specifying the path to the genetic files in plink format, and any columns we may want to include as covariates in the regression tests (making sure that the covariates are all numerical):
524
531
 
525
532
  ```python
526
533
  SBP_adjusted.association_test(covar=["age"], path = "path/to/genetic/files")
@@ -4,12 +4,14 @@
4
4
 
5
5
  **This project was developed by Cyprien A. Rivier**
6
6
 
7
+
7
8
  # Table of contents
8
9
  1. [Introduction](#introduction)
9
- 2. [Requirements for the genal module](#paragraph1)
10
- 3. [Installation and how to use genal](#paragraph2)
10
+ 2. [Citation] (#citation)
11
+ 3. [Requirements for the genal module](#paragraph1)
12
+ 4. [Installation and how to use genal](#paragraph2)
11
13
  1. [Installation](#paragraph2.1)
12
- 4. [Tutorial and presentation of the main tools](#paragraph3)
14
+ 5. [Tutorial and presentation of the main tools](#paragraph3)
13
15
  1. [Data loading](#paragraph3.1)
14
16
  2. [Data preprocessing](#paragraph3.2)
15
17
  3. [Clumping](#paragraph3.3)
@@ -19,8 +21,6 @@
19
21
  7. [Lifting](#paragraph3.7)
20
22
 
21
23
 
22
-
23
-
24
24
  ## Introduction <a name="introduction"></a>
25
25
  Genal is a python module designed to make it easy to run genetic risk scores and mendelian randomization analyses. It integrates a collection of tools that facilitate the cleaning of single nucleotide polymorphism data (usually derived from Genome-Wide Association Studies) and enable the execution of clinical population genetic workflows. The functionalities provided by genal include clumping, lifting, association testing, polygenic risk scoring, and Mendelian randomization analyses, all within a single Python module.
26
26
 
@@ -28,6 +28,10 @@ The module prioritizes user-friendliness and intuitive operation, aiming to redu
28
28
 
29
29
  Genal draws on concepts from well-established R packages such as TwoSampleMR, MR-Presso, MendelianRandomization, and gwasvcf, adapting their proven methodologies to the Python environment. This approach ensures that users have access to tried and tested techniques with the versatility of Python's data science tools.
30
30
 
31
+ ## Citation <a name="citation"></a>
32
+ If you're using genal, please cite the following paper:
33
+ **Genal: A Python Toolkit for Genetic Risk Scoring and Mendelian Randomization.** Cyprien A. Rivier, Santiago Clocchiatti-Tuozzo, Shufan Huo, Victor Torres-Lopez, Daniela Renedo, Kevin N. Sheth, Guido J. Falcone, Julian N. Acosta. medRxiv 2024.05.23.24307776; doi: https://doi.org/10.1101/2024.05.23.24307776
34
+
31
35
  ## Requirements for the genal module <a name="paragraph1"></a>
32
36
  ***Python 3.9 or later***. https://www.python.org/ <br>
33
37
 
@@ -453,7 +457,7 @@ As expected, many MR methods indicate that SBP is strongly associated with strok
453
457
  To investigate horizontal pleiotropy in more details, a very useful method is Mendelian Randomization Pleiotropy RESidual Sum and Outlier (MR-PRESSO). MR-PRESSO is a method designed to detect and correct for horizontal pleiotropy. It will identify which instruments are likely to be pleiotropic on their effect on the outcome, and it will rerun an inverse-variance weighted MR after excluding them. It can be run using the `genal.Geno.MRpresso` method:
454
458
 
455
459
  ```python
456
- SBP_clumped.MRpresso(action = 2, n_iterations = 30000)
460
+ mod_table, GlobalTest, OutlierTest, BiasTest = SBP_clumped.MRpresso(action = 2, n_iterations = 30000)
457
461
  ```
458
462
 
459
463
  As with the `genal.Geno.MR` method, the `action` argument determines how the pleiotropic SNPs will be treated. The output is a list containing:
@@ -498,7 +502,7 @@ At this point, genal will identify if the phenotype is binary or quantitative in
498
502
  Identified 0 as the control code in 'PHENO'. Set 'alternate_control=True' to inverse this interpretation.
499
503
  The phenotype data is stored in the .phenotype attribute.
500
504
 
501
- We can then run the association tests, specifying the path to the genetic files in plink format, and any columns we may want to include as covariates in the regression tests:
505
+ We can then run the association tests, specifying the path to the genetic files in plink format, and any columns we may want to include as covariates in the regression tests (making sure that the covariates are all numerical):
502
506
 
503
507
  ```python
504
508
  SBP_adjusted.association_test(covar=["age"], path = "path/to/genetic/files")
@@ -1,4 +1,4 @@
1
1
  # Sphinx build info version 1
2
2
  # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3
- config: 00247dbbead88a90278898e19ea351de
3
+ config: f327128ef63678afda2847b68c505d0e
4
4
  tags: 645f666f9bcd5a90fca523b33c5a78b7
@@ -0,0 +1,59 @@
1
+ .. genal documentation master file, created by
2
+ sphinx-quickstart on Thu Sep 14 14:04:16 2023.
3
+ You can adapt this file completely to your liking, but it should at least
4
+ contain the root `toctree` directive.
5
+
6
+ genal: A Python Toolkit for Genetic Risk Scoring and Mendelian Randomization
7
+ ============================================================================
8
+
9
+ :Author: Cyprien Rivier
10
+ :Date: |today|
11
+ :Version: "0.5"
12
+
13
+ Genal is a python module designed to make it easy to run genetic risk scores and mendelian randomization analyses. It integrates a collection of tools that facilitate the cleaning of single nucleotide polymorphism data (usually derived from Genome-Wide Association Studies) and enable the execution of key clinical population genetic workflows. The functionalities provided by genal include clumping, lifting, association testing, polygenic risk scoring, and Mendelian randomization analyses, all within a single Python module.
14
+
15
+ The module prioritizes user-friendliness and intuitive operation, aiming to reduce the complexity of data analysis for researchers. Despite its focus on simplicity, Genal does not sacrifice the depth of customization or the precision of analysis. Researchers can expect to maintain analytical rigour while benefiting from the streamlined experience.
16
+
17
+ Genal draws on concepts from well-established R packages such as TwoSampleMR, MR-Presso, MendelianRandomization, and gwasvcf, adapting their proven methodologies to the Python environment. This approach ensures that users have access to tried and tested techniques with the versatility of Python's data science tools.
18
+
19
+ To install the latest release, type::
20
+
21
+ pip install genal
22
+
23
+ Contents
24
+ --------
25
+
26
+ .. toctree::
27
+ :maxdepth: 2
28
+
29
+ introduction.rst
30
+ api.rst
31
+
32
+
33
+
34
+ Indices and tables
35
+ ==================
36
+
37
+ * :ref:`genindex`
38
+ * :ref:`modindex`
39
+ * :ref:`search`
40
+
41
+
42
+ References
43
+ ----------
44
+
45
+ .. [Hemani.2018] *The MR-Base platform supports systematic causal inference across the human phenome.*
46
+ Hemani G, Zheng J, Elsworth B, Wade KH, Baird D, Haberland V, Laurin C, Burgess S, Bowden J, Langdon R, Tan VY, Yarmolinsky J, Shihab HA, Timpson NJ, Evans DM, Relton C, Martin RM, Davey Smith G, Gaunt TR, Haycock PC, The MR-Base Collaboration
47
+ eLife. 2018 May 30:7:e34408 `34408 <https://elifesciences.org/articles/34408>`_.
48
+ PMID: `29846171 <https://pubmed.ncbi.nlm.nih.gov/29846171>`_.
49
+
50
+ .. [Verbanck.2018] *Detection of widespread horizontal pleiotropy in causal relationships inferred from Mendelian randomization between complex traits and diseases.*
51
+ Marie Verbanck, Chia-Yen Chen, Benjamin Neale, Ron Do.
52
+ Nature Genetics 2018 May 50(5):693-698 `s41588-018-0099-7 <https://www.nature.com/articles/s41588-018-0099-7>`_.
53
+ PMID: `29686387 <https://pubmed.ncbi.nlm.nih.gov/29686387/>`_.
54
+
55
+ .. [Lyon.2020] *The variant call format provides efficient and robust storage of GWAS summary statistics.*
56
+ Matthew Lyon, Shea J Andrews, Ben Elsworth, Tom R Gaunt, Gibran Hemani, Edoardo Marcora.
57
+ bioRxiv 2020 May 30 `2020.05.29.115824v1 <https://www.biorxiv.org/content/10.1101/2020.05.29.115824v1>`_.
58
+ PMID: `33441155 <https://pubmed.ncbi.nlm.nih.gov/33441155/>`_.
59
+