gsMap 1.71.2__tar.gz → 1.73.0__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 (100) hide show
  1. gsmap-1.73.0/.coveragerc +41 -0
  2. gsmap-1.73.0/.github/workflows/docs.yml +55 -0
  3. gsmap-1.73.0/.github/workflows/publish-to-pypi.yml +97 -0
  4. gsmap-1.73.0/.github/workflows/test_linux.yml +88 -0
  5. {gsmap-1.71.2 → gsmap-1.73.0}/.gitignore +0 -10
  6. gsmap-1.73.0/.markdownlint.yaml +20 -0
  7. gsmap-1.73.0/.pre-commit-config.yaml +66 -0
  8. {gsmap-1.71.2 → gsmap-1.73.0}/LICENSE +6 -6
  9. gsmap-1.73.0/PKG-INFO +169 -0
  10. gsmap-1.73.0/README.md +104 -0
  11. gsmap-1.73.0/codecov.yml +29 -0
  12. gsmap-1.73.0/docs/source/advanced_usage.md +117 -0
  13. gsmap-1.73.0/docs/source/api/create_slice_mean.rst +8 -0
  14. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/api/quick_mode.rst +1 -1
  15. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/api.rst +6 -2
  16. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/conf.py +21 -23
  17. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/data.rst +4 -4
  18. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/data_format.md +25 -19
  19. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/index.rst +3 -4
  20. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/install.rst +3 -2
  21. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/quick_mode.md +8 -4
  22. gsmap-1.71.2/docs/source/mouse_example.md → gsmap-1.73.0/docs/source/step_by_step.md +15 -45
  23. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/tutorials.rst +2 -1
  24. gsmap-1.73.0/pyproject.toml +187 -0
  25. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/GNN/adjacency_matrix.py +25 -27
  26. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/GNN/model.py +9 -7
  27. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/GNN/train.py +8 -11
  28. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/__init__.py +3 -3
  29. gsmap-1.73.0/src/gsMap/__main__.py +4 -0
  30. gsmap-1.73.0/src/gsMap/cauchy_combination_test.py +144 -0
  31. gsmap-1.73.0/src/gsMap/config.py +1432 -0
  32. gsmap-1.73.0/src/gsMap/create_slice_mean.py +168 -0
  33. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/diagnosis.py +179 -101
  34. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/find_latent_representation.py +29 -27
  35. gsmap-1.73.0/src/gsMap/format_sumstats.py +445 -0
  36. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/generate_ldscore.py +334 -222
  37. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/latent_to_gene.py +128 -68
  38. gsmap-1.73.0/src/gsMap/main.py +40 -0
  39. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/report.py +39 -25
  40. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/run_all_mode.py +87 -46
  41. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/setup.py +1 -1
  42. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/spatial_ldsc_multiple_sumstats.py +154 -80
  43. gsmap-1.73.0/src/gsMap/utils/generate_r2_matrix.py +489 -0
  44. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/utils/jackknife.py +84 -80
  45. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/utils/manhattan_plot.py +180 -207
  46. gsmap-1.73.0/src/gsMap/utils/regression_read.py +201 -0
  47. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/visualize.py +82 -64
  48. gsmap-1.73.0/tests/conftest.py +245 -0
  49. gsmap-1.73.0/tests/test_advanced_usage.py +228 -0
  50. gsmap-1.73.0/tests/test_cli.py +231 -0
  51. gsmap-1.73.0/tests/test_docs_cli_parsing.py +125 -0
  52. {gsmap-1.71.2 → gsmap-1.73.0}/visualization_web_docs/source/conf.py +19 -20
  53. gsmap-1.71.2/.github/workflows/publish-to-pypi.yml +0 -96
  54. gsmap-1.71.2/PKG-INFO +0 -105
  55. gsmap-1.71.2/README.md +0 -46
  56. gsmap-1.71.2/docs/source/charts/cortex/Cortex_151507_Height.json +0 -1
  57. gsmap-1.71.2/docs/source/charts/cortex/Cortex_151507_IQ.json +0 -1
  58. gsmap-1.71.2/docs/source/charts/cortex/Cortex_151507_MCHC.json +0 -1
  59. gsmap-1.71.2/docs/source/charts/cortex/Cortex_151507_SCZ.json +0 -1
  60. gsmap-1.71.2/docs/source/charts/mouse_embryo/E16.5_E1S1_Height.json +0 -1
  61. gsmap-1.71.2/docs/source/charts/mouse_embryo/E16.5_E1S1_IQ.json +0 -1
  62. gsmap-1.71.2/docs/source/charts/mouse_embryo/E16.5_E1S1_MCHC.json +0 -1
  63. gsmap-1.71.2/docs/source/charts/mouse_embryo/E16.5_E1S1_SCZ.json +0 -1
  64. gsmap-1.71.2/docs/source/charts/test.json +0 -16
  65. gsmap-1.71.2/docs/source/mouse.rst +0 -5
  66. gsmap-1.71.2/pyproject.toml +0 -83
  67. gsmap-1.71.2/src/gsMap/__main__.py +0 -3
  68. gsmap-1.71.2/src/gsMap/cauchy_combination_test.py +0 -141
  69. gsmap-1.71.2/src/gsMap/config.py +0 -806
  70. gsmap-1.71.2/src/gsMap/format_sumstats.py +0 -407
  71. gsmap-1.71.2/src/gsMap/main.py +0 -31
  72. gsmap-1.71.2/src/gsMap/utils/generate_r2_matrix.py +0 -735
  73. gsmap-1.71.2/src/gsMap/utils/make_annotations.py +0 -518
  74. gsmap-1.71.2/src/gsMap/utils/regression_read.py +0 -294
  75. {gsmap-1.71.2 → gsmap-1.73.0}/docs/Makefile +0 -0
  76. {gsmap-1.71.2 → gsmap-1.73.0}/docs/make.bat +0 -0
  77. {gsmap-1.71.2 → gsmap-1.73.0}/docs/requirements.txt +0 -0
  78. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/_static/schematic.svg +0 -0
  79. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/api/cauchy_combination.rst +0 -0
  80. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/api/find_latent_representations.rst +0 -0
  81. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/api/format_sumstats.rst +0 -0
  82. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/api/generate_ldscore.rst +0 -0
  83. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/api/latent_to_gene.rst +0 -0
  84. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/api/report.rst +0 -0
  85. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/api/spatial_ldsc.rst +0 -0
  86. {gsmap-1.71.2 → gsmap-1.73.0}/docs/source/release.rst +0 -0
  87. {gsmap-1.71.2 → gsmap-1.73.0}/schematic.png +0 -0
  88. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/GNN/__init__.py +0 -0
  89. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/templates/report_template.html +0 -0
  90. {gsmap-1.71.2 → gsmap-1.73.0}/src/gsMap/utils/__init__.py +0 -0
  91. {gsmap-1.71.2 → gsmap-1.73.0}/visualization_web_docs/Makefile +0 -0
  92. {gsmap-1.71.2 → gsmap-1.73.0}/visualization_web_docs/make.bat +0 -0
  93. {gsmap-1.71.2 → gsmap-1.73.0}/visualization_web_docs/requirements.txt +0 -0
  94. {gsmap-1.71.2 → gsmap-1.73.0}/visualization_web_docs/source/_static/raw1_add_txt.svg +0 -0
  95. {gsmap-1.71.2 → gsmap-1.73.0}/visualization_web_docs/source/_static/raw2_add_txt.svg +0 -0
  96. {gsmap-1.71.2 → gsmap-1.73.0}/visualization_web_docs/source/_static/raw3_add_txt.svg +0 -0
  97. {gsmap-1.71.2 → gsmap-1.73.0}/visualization_web_docs/source/_static/raw4_add_txt.svg +0 -0
  98. {gsmap-1.71.2 → gsmap-1.73.0}/visualization_web_docs/source/_static/raw5_add_txt.svg +0 -0
  99. {gsmap-1.71.2 → gsmap-1.73.0}/visualization_web_docs/source/_static/schematic.svg +0 -0
  100. {gsmap-1.71.2 → gsmap-1.73.0}/visualization_web_docs/source/index.rst +0 -0
@@ -0,0 +1,41 @@
1
+ [run]
2
+ source = src/gsMap
3
+ omit =
4
+ # Exclude the files you mentioned
5
+ src/gsMap/utils/jackknife.py
6
+ src/gsMap/format_sumstats.py
7
+ # Other files you might want to exclude
8
+ */tests/*
9
+ */__init__.py
10
+ src/gsMap/templates/*
11
+ # Additional excludes
12
+ src/gsMap/__main__.py
13
+ src/gsMap/setup.py
14
+
15
+ [report]
16
+ exclude_lines =
17
+ # Have to re-enable the standard pragma
18
+ pragma: no cover
19
+
20
+ # Don't complain about missing debug-only code
21
+ def __repr__
22
+ if self\.debug
23
+
24
+ # Don't complain if tests don't hit defensive assertion code
25
+ raise NotImplementedError
26
+ raise ValueError
27
+ except ImportError
28
+ except Exception
29
+ except:
30
+
31
+ # Don't complain if non-runnable code isn't run
32
+ if 0:
33
+ if __name__ == .__main__.:
34
+ if False:
35
+
36
+ # Skip pass statements
37
+ pass
38
+
39
+ [paths]
40
+ source =
41
+ src/gsMap
@@ -0,0 +1,55 @@
1
+ name: docs
2
+
3
+ on:
4
+ push:
5
+ paths:
6
+ - "docs/**"
7
+ - "visualization_web_docs/**"
8
+
9
+ jobs:
10
+ deploy_docs:
11
+ runs-on: self-hosted
12
+
13
+ steps:
14
+ - name: Checkout code
15
+ uses: actions/checkout@v4
16
+
17
+ - name: Set up Python
18
+ uses: actions/setup-python@v4
19
+ with:
20
+ python-version: "3.12"
21
+
22
+ # --- Build 'docs' documentation ---
23
+ - name: Install 'docs' dependencies
24
+ run: |
25
+ python -m pip install '.[doc]'
26
+
27
+ - name: Build 'docs' documentation
28
+ working-directory: ./docs
29
+ run: |
30
+ make html
31
+
32
+ - name: Deploy 'docs' to website_docs
33
+ run: |
34
+ DOCS_OUTPUT_DIR="/mnt/website_docs/gsmap" # Adjust if you want a different subfolder
35
+ mkdir -p "$DOCS_OUTPUT_DIR"
36
+ rsync -avz ./docs/build/html/ "$DOCS_OUTPUT_DIR/"
37
+ echo "Documentation for 'docs' deployed to: $DOCS_OUTPUT_DIR"
38
+
39
+ # # --- Build 'visualization_web_docs' documentation ---
40
+ # - name: Install 'visualization_web_docs' dependencies
41
+ # working-directory: ./visualization_web_docs
42
+ # run: |
43
+ # python -m pip install -r requirements.txt
44
+ #
45
+ # - name: Build 'visualization_web_docs' documentation
46
+ # working-directory: ./visualization_web_docs
47
+ # run: |
48
+ # make html
49
+ #
50
+ # - name: Deploy 'visualization_web_docs' to website_docs
51
+ # run: |
52
+ # DOCS_OUTPUT_DIR="/mnt/website_docs/visualization_web_docs" # Deploy to a separate folder
53
+ # mkdir -p "$DOCS_OUTPUT_DIR"
54
+ # rsync -avz ./visualization_web_docs/build/html/ "$DOCS_OUTPUT_DIR/"
55
+ # echo "Documentation for 'visualization_web_docs' deployed to: $DOCS_OUTPUT_DIR"
@@ -0,0 +1,97 @@
1
+ name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI
2
+
3
+ on: push
4
+
5
+ jobs:
6
+ build:
7
+ name: Build distribution 📦
8
+ runs-on: ubuntu-latest
9
+
10
+ steps:
11
+ - uses: actions/checkout@v4
12
+ - name: Set up Python
13
+ uses: actions/setup-python@v4
14
+ with:
15
+ python-version: "3.x"
16
+ - name: Install pypa/build
17
+ run: >-
18
+ python3 -m
19
+ pip install
20
+ flit
21
+ --user
22
+ - name: Build a binary wheel and a source tarball
23
+ run: |
24
+ flit build
25
+ ls -lh dist
26
+ - name: Store the distribution packages
27
+ if: startsWith(github.ref, 'refs/tags/') # store only on tag pushes
28
+ uses: actions/upload-artifact@v4
29
+ with:
30
+ name: python-package-distributions
31
+ path: dist/
32
+
33
+ publish-to-pypi:
34
+ name: >-
35
+ Publish Python 🐍 distribution 📦 to PyPI
36
+ if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
37
+ needs:
38
+ - build
39
+ runs-on: ubuntu-latest
40
+
41
+ environment:
42
+ name: pypi
43
+ url: https://pypi.org/p/gsMap
44
+ permissions:
45
+ id-token: write # IMPORTANT: mandatory for trusted publishing
46
+
47
+ steps:
48
+ - name: Download all the dists
49
+ uses: actions/download-artifact@v4
50
+ with:
51
+ name: python-package-distributions
52
+ path: dist/
53
+ - name: Publish distribution 📦 to PyPI
54
+ uses: pypa/gh-action-pypi-publish@release/v1
55
+
56
+ github-release:
57
+ name: >-
58
+ Sign the Python 🐍 distribution 📦 with Sigstore
59
+ and upload them to GitHub Release
60
+ needs:
61
+ - publish-to-pypi
62
+ runs-on: ubuntu-latest
63
+
64
+ permissions:
65
+ contents: write # IMPORTANT: mandatory for making GitHub Releases
66
+ id-token: write # IMPORTANT: mandatory for sigstore
67
+
68
+ steps:
69
+ - name: Download all the dists
70
+ uses: actions/download-artifact@v4
71
+ with:
72
+ name: python-package-distributions
73
+ path: dist/
74
+ - name: Sign the dists with Sigstore
75
+ uses: sigstore/gh-action-sigstore-python@v3.0.0
76
+ with:
77
+ inputs: >-
78
+ ./dist/*.tar.gz
79
+ ./dist/*.whl
80
+ - name: Create GitHub Release
81
+ env:
82
+ GITHUB_TOKEN: ${{ github.token }}
83
+ run: >-
84
+ gh release create
85
+ '${{ github.ref_name }}'
86
+ --repo '${{ github.repository }}'
87
+ --notes ""
88
+ - name: Upload artifact signatures to GitHub Release
89
+ env:
90
+ GITHUB_TOKEN: ${{ github.token }}
91
+ # Upload to GitHub Release using the `gh` CLI.
92
+ # `dist/` contains the built packages, and the
93
+ # sigstore-produced signatures and certificates.
94
+ run: >-
95
+ gh release upload
96
+ '${{ github.ref_name }}' dist/**
97
+ --repo '${{ github.repository }}'
@@ -0,0 +1,88 @@
1
+ name: test
2
+
3
+ on:
4
+ push:
5
+ branches: [main, "[0-9]+.[0-9]+.x"]
6
+ pull_request:
7
+ schedule:
8
+ - cron: "0 10 * * *" # runs at 10:00 UTC (03:00 PST) every day
9
+ workflow_dispatch:
10
+
11
+ concurrency:
12
+ group: ${{ github.workflow }}-${{ github.ref }}
13
+ cancel-in-progress: true
14
+
15
+ jobs:
16
+ test:
17
+ runs-on: [self-hosted, cpu]
18
+
19
+ defaults:
20
+ run:
21
+ shell: bash -e {0} # -e to fail on error
22
+
23
+ strategy:
24
+ fail-fast: false
25
+ matrix:
26
+ python: ["3.10", "3.13"]
27
+
28
+ name: Python ${{ matrix.python }} integration
29
+
30
+ env:
31
+ PYTHON: ${{ matrix.python }}
32
+ RUNNER_WORKDIR: ${{ vars.RUNNER_WORKDIR_BASE || '/mnt/workdir' }}/${{ github.repository }}/${{ github.workflow }}-${{ github.run_number }}-${{ matrix.python }}
33
+ TEST_DATA_DIR: /gsmap_test_data
34
+
35
+ steps:
36
+ - name: Create unique workdir
37
+ run: |
38
+ mkdir -p $RUNNER_WORKDIR
39
+ echo "Created workdir: $RUNNER_WORKDIR"
40
+
41
+ - uses: actions/checkout@v4
42
+ # Remove the custom path to let the runner use its default location
43
+
44
+ - name: Set up Python ${{ matrix.python }}
45
+ uses: actions/setup-python@v5
46
+ with:
47
+ python-version: ${{ matrix.python }}
48
+
49
+ - name: Install dependencies
50
+ run: |
51
+ python -m pip install --upgrade pip wheel uv
52
+ python -m uv pip install -e "gsMap[tests] @ ."
53
+
54
+ - name: Run pytest
55
+ env:
56
+ MPLBACKEND: agg
57
+ DISPLAY: :42
58
+ COLUMNS: 120
59
+ run: |
60
+ python -m pytest --cov=src \
61
+ --cov-report=term-missing \
62
+ --cov-report=xml \
63
+ --cov-report=html \
64
+ --cov-config=.coveragerc \
65
+ -v -s --color=yes \
66
+ --run-real-data \
67
+ --work-dir=${{ env.RUNNER_WORKDIR }} \
68
+ --test-data=${{ env.TEST_DATA_DIR }}
69
+
70
+ - uses: codecov/codecov-action@v4
71
+ with:
72
+ token: ${{ secrets.CODECOV_TOKEN }}
73
+ files: ./coverage.xml
74
+ fail_ci_if_error: false
75
+
76
+ - name: Retain test results
77
+ if: always()
78
+ run: |
79
+ cp -r coverage.xml coverage-html/ .coverage $RUNNER_WORKDIR/ || true
80
+ echo "Test results are stored in $RUNNER_WORKDIR"
81
+ # Create a summary file with metadata
82
+ echo "Test run completed at $(date)" > $RUNNER_WORKDIR/test-summary.txt
83
+ echo "Workflow: ${{ github.workflow }}" >> $RUNNER_WORKDIR/test-summary.txt
84
+ echo "Run ID: ${{ github.run_id }}" >> $RUNNER_WORKDIR/test-summary.txt
85
+ echo "Run Number: ${{ github.run_number }}" >> $RUNNER_WORKDIR/test-summary.txt
86
+ echo "Python Version: ${{ matrix.python }}" >> $RUNNER_WORKDIR/test-summary.txt
87
+ echo "Repository: ${{ github.repository }}" >> $RUNNER_WORKDIR/test-summary.txt
88
+ echo "Ref: ${{ github.ref }}" >> $RUNNER_WORKDIR/test-summary.txt
@@ -245,13 +245,3 @@ dmypy.json
245
245
 
246
246
  # Cython debug symbols
247
247
  cython_debug/
248
-
249
- test/
250
- # PyCharm
251
- # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
252
- # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
253
- # and can be added to the global gitignore or merged into this file. For a more nuclear
254
- # option (not recommended) you can uncomment the following to ignore the entire idea folder.
255
- #.idea/
256
-
257
- !/test/GPS-snakemake-workflow.smk
@@ -0,0 +1,20 @@
1
+ # default to true for all rules
2
+ default: true
3
+
4
+ # MD007/unordered-list-indent
5
+ MD007:
6
+ indent: 4
7
+
8
+ # MD033/no-inline-html
9
+ MD033: false
10
+
11
+ # MD041/first-line-h1
12
+ MD041: false
13
+
14
+ # MD013/line-length
15
+ MD013: false
16
+
17
+ # MD024/no-duplicate-heading
18
+ MD024:
19
+ # Allow when nested under different parents e.g. CHANGELOG.md
20
+ siblings_only: true
@@ -0,0 +1,66 @@
1
+ fail_fast: false
2
+ default_language_version:
3
+ python: python3
4
+ default_stages:
5
+ - pre-commit
6
+ - pre-push
7
+ minimum_pre_commit_version: 2.16.0
8
+ repos:
9
+ - repo: https://github.com/asottile/blacken-docs
10
+ rev: 1.19.1
11
+ hooks:
12
+ - id: blacken-docs
13
+
14
+ - repo: https://github.com/pre-commit/mirrors-prettier
15
+ rev: v4.0.0-alpha.8
16
+ hooks:
17
+ - id: prettier
18
+ types: [yaml]
19
+
20
+ - repo: https://github.com/executablebooks/mdformat
21
+ rev: 0.7.21
22
+ hooks:
23
+ - id: mdformat
24
+ additional_dependencies:
25
+ - mdformat-mkdocs
26
+ exclude: |
27
+ (?x)^(
28
+ \.github/.*\.md
29
+ )$
30
+
31
+ - repo: https://github.com/igorshubovych/markdownlint-cli
32
+ rev: v0.43.0
33
+ hooks:
34
+ - id: markdownlint-fix
35
+ exclude: |
36
+ (?x)^(
37
+ \.github/.*\.md
38
+ )$
39
+
40
+ - repo: https://github.com/astral-sh/ruff-pre-commit
41
+ rev: v0.9.2
42
+ hooks:
43
+ - id: ruff
44
+ args: [--fix, --exit-non-zero-on-fix]
45
+ - id: ruff-format
46
+
47
+ - repo: https://github.com/pre-commit/pre-commit-hooks
48
+ rev: v5.0.0
49
+ hooks:
50
+ - id: detect-private-key
51
+ - id: check-ast
52
+ - id: end-of-file-fixer
53
+ - id: mixed-line-ending
54
+ args: [--fix=lf]
55
+ - id: trailing-whitespace
56
+ - id: check-case-conflict
57
+
58
+ - repo: local
59
+ hooks:
60
+ - id: forbid-to-commit
61
+ name: Don't commit rej files
62
+ entry: |
63
+ Cannot commit .rej files. These indicate merge conflicts that arise during automated template updates.
64
+ Fix the merge conflicts manually and remove the .rej files.
65
+ language: fail
66
+ files: '.*\.rej$'
@@ -1,6 +1,6 @@
1
- The MIT License (MIT)
1
+ MIT License
2
2
 
3
- Copyright (c) 2023 liyang
3
+ Copyright (c) 2025 JianYang-Lab
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -9,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
9
  copies of the Software, and to permit persons to whom the Software is
10
10
  furnished to do so, subject to the following conditions:
11
11
 
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
14
 
15
15
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
16
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
17
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
gsmap-1.73.0/PKG-INFO ADDED
@@ -0,0 +1,169 @@
1
+ Metadata-Version: 2.4
2
+ Name: gsMap
3
+ Version: 1.73.0
4
+ Summary: Genetics-informed pathogenic spatial mapping
5
+ Author-email: liyang <songliyang@westlake.edu.cn>, wenhao <chenwenhao@westlake.edu.cn>
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Operating System :: POSIX :: Linux
15
+ License-File: LICENSE
16
+ Requires-Dist: numpy < 2.0.0
17
+ Requires-Dist: pandas
18
+ Requires-Dist: scipy
19
+ Requires-Dist: scikit-learn
20
+ Requires-Dist: matplotlib
21
+ Requires-Dist: seaborn
22
+ Requires-Dist: tqdm
23
+ Requires-Dist: pyyaml
24
+ Requires-Dist: torch
25
+ Requires-Dist: torch-geometric
26
+ Requires-Dist: pyranges
27
+ Requires-Dist: pyfiglet
28
+ Requires-Dist: plotly
29
+ Requires-Dist: kaleido
30
+ Requires-Dist: jinja2
31
+ Requires-Dist: scanpy >=1.8.0
32
+ Requires-Dist: zarr>=2,<3
33
+ Requires-Dist: bitarray >=2.9.2, <3.0.0
34
+ Requires-Dist: pyarrow
35
+ Requires-Dist: scikit-misc
36
+ Requires-Dist: sphinx ; extra == "doc"
37
+ Requires-Dist: sphinx-argparse ; extra == "doc"
38
+ Requires-Dist: sphinx-autobuild ; extra == "doc"
39
+ Requires-Dist: sphinx-autodoc-typehints ; extra == "doc"
40
+ Requires-Dist: sphinx-basic-ng ; extra == "doc"
41
+ Requires-Dist: sphinx-charts ; extra == "doc"
42
+ Requires-Dist: sphinx-copybutton ; extra == "doc"
43
+ Requires-Dist: sphinx_inline_tabs ; extra == "doc"
44
+ Requires-Dist: sphinx-markdown-tables ; extra == "doc"
45
+ Requires-Dist: sphinx-rtd-theme ; extra == "doc"
46
+ Requires-Dist: sphinxcontrib-applehelp ; extra == "doc"
47
+ Requires-Dist: sphinxcontrib-devhelp ; extra == "doc"
48
+ Requires-Dist: sphinxcontrib-htmlhelp ; extra == "doc"
49
+ Requires-Dist: sphinxcontrib-jquery ; extra == "doc"
50
+ Requires-Dist: sphinxcontrib-jsmath ; extra == "doc"
51
+ Requires-Dist: sphinxcontrib-qthelp ; extra == "doc"
52
+ Requires-Dist: sphinxcontrib-serializinghtml ; extra == "doc"
53
+ Requires-Dist: furo ; extra == "doc"
54
+ Requires-Dist: myst-parser ; extra == "doc"
55
+ Requires-Dist: nbsphinx ; extra == "doc"
56
+ Requires-Dist: pytest>=7.0.0 ; extra == "tests"
57
+ Requires-Dist: pytest-cov>=4.0.0 ; extra == "tests"
58
+ Requires-Dist: coverage ; extra == "tests"
59
+ Project-URL: Documentation, https://yanglab.westlake.edu.cn/gsmap/document/software
60
+ Project-URL: Home, https://github.com/JianYang-Lab/gsMap
61
+ Project-URL: Website, https://yanglab.westlake.edu.cn/gsmap/home
62
+ Provides-Extra: doc
63
+ Provides-Extra: tests
64
+
65
+ # gsMap
66
+
67
+ | | | | |
68
+ | ------------- | ---------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------- |
69
+ | __Version__ | [![PyPI version][pypi-badge]][pypi-url] [![Python][python-badge]][python-url] | __Status__ | [![Project Status][status-badge]][status-url] [![Maintenance][maintenance-badge]][maintenance-url] |
70
+ | __Activity__ | [![GitHub commits][commits-badge]][commits-url] [![Last Commit][last-commit-badge]][last-commit-url] | __Quality__ | [![codecov][codecov-badge]][codecov-url] [![Ruff][ruff-badge]][ruff-url] |
71
+ | __CI/CD__ | [![Docs][docs-badge]][docs-url] [![test][test-badge]][test-url] | __Community__ | [![GitHub stars][stars-badge]][stars-url] [![GitHub forks][forks-badge]][forks-url] |
72
+ | __Downloads__ | [![Downloads][downloads-badge]][downloads-url] | __License__ | [![License: MIT][license-badge]][license-url] [![DOI][doi-badge]][doi-url] |
73
+ | __Platform__ | [![Linux][linux-badge]][linux-url] | __Contribute__ | [![Issues][issues-badge]][issues-url] [![PRs Welcome][pr-badge]][pr-url] |
74
+
75
+ ## Introduction
76
+
77
+ `gsMap` (genetically informed spatial mapping of cells for complex traits)
78
+ integrates spatial transcriptomics (ST) data with genome-wide association study (GWAS)
79
+ summary statistics to map cells to human complex traits, including diseases,
80
+ in a spatially resolved manner.
81
+
82
+ ## Key Features
83
+
84
+ - __Spatially-aware High-Resolution Trait Mapping__
85
+ - __Spatial Region Identification__
86
+ - __Putative Causal Genes Identification__
87
+
88
+ ![Model Architecture](schematic.png)
89
+
90
+ ## Installation
91
+
92
+ Install using pip:
93
+
94
+ ```bash
95
+ conda create -n gsMap python>=3.10
96
+ conda activate gsMap
97
+ pip install gsMap
98
+ ```
99
+
100
+ Install from source:
101
+
102
+ ```bash
103
+ git clone https://github.com/JianYang-Lab/gsMap
104
+ cd gsMap
105
+ pip install -e .
106
+ ```
107
+
108
+ Verify the installation by running the following command:
109
+
110
+ ```bash
111
+ gsmap --help
112
+ ```
113
+
114
+ ## Usage
115
+
116
+ Please check out the documentation and tutorials at [gsMap Documentation](https://yanglab.westlake.edu.cn/gsmap/document/software).
117
+
118
+ ## Online Visualization
119
+
120
+ To visualize the traits-cell association spatial maps,
121
+ please refer to [gsMap Visualization](https://yanglab.westlake.edu.cn/gsmap/visualize).
122
+
123
+ ## Citation
124
+
125
+ Song, L., Chen, W., Hou, J., Guo, M. & Yang, J.
126
+ [Spatially resolved mapping of cells associated with human complex traits.](https://doi.org/10.1038/s41586-025-08757-x)
127
+ Nature (2025).
128
+
129
+ Please cite the paper and give us a STAR if you find gsMap useful for your research.
130
+
131
+ <!-- Badge links -->
132
+
133
+ [codecov-badge]: https://codecov.io/gh/JianYang-Lab/gsMap/graph/badge.svg?token=NFZFXZIEUU
134
+ [codecov-url]: https://codecov.io/gh/JianYang-Lab/gsMap
135
+ [commits-badge]: https://img.shields.io/github/commit-activity/m/JianYang-Lab/gsMap
136
+ [commits-url]: https://github.com/JianYang-Lab/gsMap/commits/main
137
+ [docs-badge]: https://github.com/JianYang-Lab/gsMap/actions/workflows/docs.yml/badge.svg
138
+ [docs-url]: https://github.com/JianYang-Lab/gsMap/actions/workflows/docs.yml
139
+ [doi-badge]: https://img.shields.io/badge/DOI-10.1038%2Fs41586--025--08757--x-blue
140
+ [doi-url]: https://doi.org/10.1038/s41586-025-08757-x
141
+ [downloads-badge]: https://static.pepy.tech/badge/gsMap
142
+ [downloads-url]: https://pepy.tech/project/gsMap
143
+ [forks-badge]: https://img.shields.io/github/forks/JianYang-Lab/gsMap
144
+ [forks-url]: https://github.com/JianYang-Lab/gsMap/network/members
145
+ [issues-badge]: https://img.shields.io/github/issues/JianYang-Lab/gsMap
146
+ [issues-url]: https://github.com/JianYang-Lab/gsMap/issues
147
+ [last-commit-badge]: https://img.shields.io/github/last-commit/JianYang-Lab/gsMap
148
+ [last-commit-url]: https://github.com/JianYang-Lab/gsMap/commits/main
149
+ [license-badge]: https://img.shields.io/badge/License-MIT-yellow.svg
150
+ [license-url]: https://opensource.org/licenses/MIT
151
+ [linux-badge]: https://img.shields.io/badge/Linux-%E2%9C%93-success
152
+ [linux-url]: https://github.com/JianYang-Lab/gsMap/actions/workflows/test_linux.yml
153
+ [maintenance-badge]: https://img.shields.io/badge/Maintained%3F-yes-green.svg
154
+ [maintenance-url]: https://github.com/JianYang-Lab/gsMap/graphs/commit-activity
155
+ [pr-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg
156
+ [pr-url]: https://github.com/JianYang-Lab/gsMap/pulls
157
+ [pypi-badge]: https://img.shields.io/pypi/v/gsMap
158
+ [pypi-url]: https://pypi.org/project/gsMap/
159
+ [python-badge]: https://img.shields.io/pypi/pyversions/gsMap
160
+ [python-url]: https://www.python.org
161
+ [ruff-badge]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
162
+ [ruff-url]: https://github.com/astral-sh/ruff
163
+ [stars-badge]: https://img.shields.io/github/stars/JianYang-Lab/gsMap
164
+ [stars-url]: https://github.com/JianYang-Lab/gsMap/stargazers
165
+ [status-badge]: https://www.repostatus.org/badges/latest/active.svg
166
+ [status-url]: https://www.repostatus.org/#active
167
+ [test-badge]: https://github.com/JianYang-Lab/gsMap/actions/workflows/test_linux.yml/badge.svg
168
+ [test-url]: https://github.com/JianYang-Lab/gsMap/actions/workflows/test_linux.yml
169
+