gsMap 1.67__py3-none-any.whl → 1.71__py3-none-any.whl

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.
gsMap/visualize.py CHANGED
@@ -1,199 +1,199 @@
1
- from pathlib import Path
2
- from typing import Literal
3
-
4
- import numpy as np
5
- import pandas as pd
6
- import plotly.express as px
7
- import scanpy as sc
8
- from scipy.spatial import KDTree
9
-
10
- from gsMap.config import VisualizeConfig
11
-
12
-
13
- def load_ldsc(ldsc_input_file):
14
- ldsc = pd.read_csv(ldsc_input_file, compression='gzip')
15
- ldsc.spot = ldsc.spot.astype(str).replace('\.0', '', regex=True)
16
- ldsc.index = ldsc.spot
17
- ldsc['logp'] = -np.log10(ldsc.p)
18
- return ldsc
19
-
20
-
21
- # %%
22
- def load_st_coord(adata, feature_series: pd.Series, annotation):
23
- spot_name = adata.obs_names.to_list()
24
- assert 'spatial' in adata.obsm.keys(), 'spatial coordinates are not found in adata.obsm'
25
-
26
- # to DataFrame
27
- space_coord = adata.obsm['spatial']
28
- if isinstance(space_coord, np.ndarray):
29
- space_coord = pd.DataFrame(space_coord, columns=['sx', 'sy'], index=spot_name)
30
- else:
31
- space_coord = pd.DataFrame(space_coord.values, columns=['sx', 'sy'], index=spot_name)
32
-
33
- space_coord = space_coord[space_coord.index.isin(feature_series.index)]
34
- space_coord_concat = pd.concat([space_coord.loc[feature_series.index], feature_series], axis=1)
35
- space_coord_concat.head()
36
- if annotation is not None:
37
- annotation = pd.Series(adata.obs[annotation].values, index=adata.obs_names, name='annotation')
38
- space_coord_concat = pd.concat([space_coord_concat, annotation], axis=1)
39
- return space_coord_concat
40
-
41
-
42
- def estimate_point_size_for_plot(coordinates, DEFAULT_PIXEL_WIDTH = 1000):
43
- tree = KDTree(coordinates)
44
- distances, _ = tree.query(coordinates, k=2)
45
- avg_min_distance = np.mean(distances[:, 1])
46
- # get the width and height of the plot
47
- width = np.max(coordinates[:, 0]) - np.min(coordinates[:, 0])
48
- height = np.max(coordinates[:, 1]) - np.min(coordinates[:, 1])
49
-
50
- scale_factor = DEFAULT_PIXEL_WIDTH / max(width, height)
51
- pixel_width = width * scale_factor
52
- pixel_height = height * scale_factor
53
-
54
- point_size = np.ceil(avg_min_distance * scale_factor)
55
- return (pixel_width, pixel_height), point_size
56
-
57
-
58
- def draw_scatter(space_coord_concat, title=None, fig_style: Literal['dark', 'light'] = 'light',
59
- point_size: int = None, width=800, height=600, annotation=None, color_by='logp'):
60
- # Set theme based on fig_style
61
- if fig_style == 'dark':
62
- px.defaults.template = "plotly_dark"
63
- else:
64
- px.defaults.template = "plotly_white"
65
-
66
- custom_color_scale = [
67
- (1, '#d73027'), # Red
68
- (7 / 8, '#f46d43'), # Red-Orange
69
- (6 / 8, '#fdae61'), # Orange
70
- (5 / 8, '#fee090'), # Light Orange
71
- (4 / 8, '#e0f3f8'), # Light Blue
72
- (3 / 8, '#abd9e9'), # Sky Blue
73
- (2 / 8, '#74add1'), # Medium Blue
74
- (1 / 8, '#4575b4'), # Dark Blue
75
- (0, '#313695') # Deep Blue
76
- ]
77
- custom_color_scale.reverse()
78
-
79
- # Create the scatter plot
80
- fig = px.scatter(
81
- space_coord_concat,
82
- x='sx',
83
- y='sy',
84
- color=color_by,
85
- symbol='annotation' if annotation is not None else None,
86
- title=title,
87
- color_continuous_scale=custom_color_scale,
88
- range_color=[0, max(space_coord_concat[color_by])],
89
- )
90
-
91
- # Update marker size if specified
92
- if point_size is not None:
93
- fig.update_traces(marker=dict(size=point_size, symbol='circle'))
94
-
95
- # Update layout for figure size
96
- fig.update_layout(
97
- autosize=False,
98
- width=width,
99
- height=height,
100
- )
101
-
102
- # Adjusting the legend
103
- fig.update_layout(
104
- legend=dict(
105
- yanchor="top",
106
- y=0.95,
107
- xanchor="left",
108
- x=1.0,
109
- font=dict(
110
- size=10,
111
- )
112
- )
113
- )
114
-
115
- # Update colorbar to be at the bottom and horizontal
116
- fig.update_layout(
117
- coloraxis_colorbar=dict(
118
- orientation='h', # Make the colorbar horizontal
119
- x=0.5, # Center the colorbar horizontally
120
- y=-0.0, # Position below the plot
121
- xanchor='center', # Anchor the colorbar at the center
122
- yanchor='top', # Anchor the colorbar at the top to keep it just below the plot
123
- len=0.75, # Length of the colorbar relative to the plot width
124
- title=dict(
125
- text='-log10(p)' if color_by == 'logp' else color_by, # Colorbar title
126
- side='top' # Place the title at the top of the colorbar
127
- )
128
- )
129
- )
130
- # Remove gridlines, axis labels, and ticks
131
- fig.update_xaxes(
132
- showgrid=False, # Hide x-axis gridlines
133
- zeroline=False, # Hide x-axis zero line
134
- showticklabels=False, # Hide x-axis tick labels
135
- title=None, # Remove x-axis title
136
- scaleanchor='y', # Link the x-axis scale to the y-axis scale
137
- )
138
-
139
- fig.update_yaxes(
140
- showgrid=False, # Hide y-axis gridlines
141
- zeroline=False, # Hide y-axis zero line
142
- showticklabels=False, # Hide y-axis tick labels
143
- title=None # Remove y-axis title
144
- )
145
-
146
- # Adjust margins to ensure no clipping and equal axis ratio
147
- fig.update_layout(
148
- margin=dict(l=0, r=0, t=20, b=10), # Adjust margins to prevent clipping
149
- height=width # Ensure the figure height matches the width for equal axis ratio
150
- )
151
-
152
- # Adjust the title location and font size
153
- fig.update_layout(
154
- title=dict(
155
- y=0.98,
156
- x=0.5, # Center the title horizontally
157
- xanchor='center', # Anchor the title at the center
158
- yanchor='top', # Anchor the title at the top
159
- font=dict(
160
- size=20 # Increase the title font size
161
- )
162
- ))
163
-
164
- return fig
165
-
166
-
167
-
168
- def run_Visualize(config: VisualizeConfig):
169
- print(f'------Loading LDSC results of {config.ldsc_save_dir}...')
170
- ldsc = load_ldsc(ldsc_input_file=Path(config.ldsc_save_dir) / f'{config.sample_name}_{config.trait_name}.csv.gz')
171
-
172
- print(f'------Loading ST data of {config.sample_name}...')
173
- adata = sc.read_h5ad(f'{config.hdf5_with_latent_path}')
174
-
175
- space_coord_concat = load_st_coord(adata, ldsc, annotation=config.annotation)
176
- fig = draw_scatter(space_coord_concat,
177
- title=config.fig_title,
178
- fig_style=config.fig_style,
179
- point_size=config.point_size,
180
- width=config.fig_width,
181
- height=config.fig_height,
182
- annotation=config.annotation
183
- )
184
-
185
-
186
- # Visualization
187
- output_dir = Path(config.output_dir)
188
- output_dir.mkdir(parents=True, exist_ok=True, mode=0o755)
189
- output_file_html = output_dir / f'{config.sample_name}_{config.trait_name}.html'
190
- output_file_pdf = output_dir / f'{config.sample_name}_{config.trait_name}.pdf'
191
- output_file_csv = output_dir / f'{config.sample_name}_{config.trait_name}.csv'
192
-
193
- fig.write_html(str(output_file_html))
194
- fig.write_image(str(output_file_pdf))
195
- space_coord_concat.to_csv(str(output_file_csv))
196
-
197
- print(
198
- f'------The visualization result is saved in a html file: {output_file_html} which can interactively viewed in a web browser and a pdf file: {output_file_pdf}.')
1
+ from pathlib import Path
2
+ from typing import Literal
3
+
4
+ import numpy as np
5
+ import pandas as pd
6
+ import plotly.express as px
7
+ import scanpy as sc
8
+ from scipy.spatial import KDTree
9
+
10
+ from gsMap.config import VisualizeConfig
11
+
12
+
13
+ def load_ldsc(ldsc_input_file):
14
+ ldsc = pd.read_csv(ldsc_input_file, compression='gzip')
15
+ ldsc.spot = ldsc.spot.astype(str).replace('\.0', '', regex=True)
16
+ ldsc.index = ldsc.spot
17
+ ldsc['logp'] = -np.log10(ldsc.p)
18
+ return ldsc
19
+
20
+
21
+ # %%
22
+ def load_st_coord(adata, feature_series: pd.Series, annotation):
23
+ spot_name = adata.obs_names.to_list()
24
+ assert 'spatial' in adata.obsm.keys(), 'spatial coordinates are not found in adata.obsm'
25
+
26
+ # to DataFrame
27
+ space_coord = adata.obsm['spatial']
28
+ if isinstance(space_coord, np.ndarray):
29
+ space_coord = pd.DataFrame(space_coord, columns=['sx', 'sy'], index=spot_name)
30
+ else:
31
+ space_coord = pd.DataFrame(space_coord.values, columns=['sx', 'sy'], index=spot_name)
32
+
33
+ space_coord = space_coord[space_coord.index.isin(feature_series.index)]
34
+ space_coord_concat = pd.concat([space_coord.loc[feature_series.index], feature_series], axis=1)
35
+ space_coord_concat.head()
36
+ if annotation is not None:
37
+ annotation = pd.Series(adata.obs[annotation].values, index=adata.obs_names, name='annotation')
38
+ space_coord_concat = pd.concat([space_coord_concat, annotation], axis=1)
39
+ return space_coord_concat
40
+
41
+
42
+ def estimate_point_size_for_plot(coordinates, DEFAULT_PIXEL_WIDTH = 1000):
43
+ tree = KDTree(coordinates)
44
+ distances, _ = tree.query(coordinates, k=2)
45
+ avg_min_distance = np.mean(distances[:, 1])
46
+ # get the width and height of the plot
47
+ width = np.max(coordinates[:, 0]) - np.min(coordinates[:, 0])
48
+ height = np.max(coordinates[:, 1]) - np.min(coordinates[:, 1])
49
+
50
+ scale_factor = DEFAULT_PIXEL_WIDTH / max(width, height)
51
+ pixel_width = width * scale_factor
52
+ pixel_height = height * scale_factor
53
+
54
+ point_size = np.ceil(avg_min_distance * scale_factor)
55
+ return (pixel_width, pixel_height), point_size
56
+
57
+
58
+ def draw_scatter(space_coord_concat, title=None, fig_style: Literal['dark', 'light'] = 'light',
59
+ point_size: int = None, width=800, height=600, annotation=None, color_by='logp'):
60
+ # Set theme based on fig_style
61
+ if fig_style == 'dark':
62
+ px.defaults.template = "plotly_dark"
63
+ else:
64
+ px.defaults.template = "plotly_white"
65
+
66
+ custom_color_scale = [
67
+ (1, '#d73027'), # Red
68
+ (7 / 8, '#f46d43'), # Red-Orange
69
+ (6 / 8, '#fdae61'), # Orange
70
+ (5 / 8, '#fee090'), # Light Orange
71
+ (4 / 8, '#e0f3f8'), # Light Blue
72
+ (3 / 8, '#abd9e9'), # Sky Blue
73
+ (2 / 8, '#74add1'), # Medium Blue
74
+ (1 / 8, '#4575b4'), # Dark Blue
75
+ (0, '#313695') # Deep Blue
76
+ ]
77
+ custom_color_scale.reverse()
78
+
79
+ # Create the scatter plot
80
+ fig = px.scatter(
81
+ space_coord_concat,
82
+ x='sx',
83
+ y='sy',
84
+ color=color_by,
85
+ symbol='annotation' if annotation is not None else None,
86
+ title=title,
87
+ color_continuous_scale=custom_color_scale,
88
+ range_color=[0, max(space_coord_concat[color_by])],
89
+ )
90
+
91
+ # Update marker size if specified
92
+ if point_size is not None:
93
+ fig.update_traces(marker=dict(size=point_size, symbol='circle'))
94
+
95
+ # Update layout for figure size
96
+ fig.update_layout(
97
+ autosize=False,
98
+ width=width,
99
+ height=height,
100
+ )
101
+
102
+ # Adjusting the legend
103
+ fig.update_layout(
104
+ legend=dict(
105
+ yanchor="top",
106
+ y=0.95,
107
+ xanchor="left",
108
+ x=1.0,
109
+ font=dict(
110
+ size=10,
111
+ )
112
+ )
113
+ )
114
+
115
+ # Update colorbar to be at the bottom and horizontal
116
+ fig.update_layout(
117
+ coloraxis_colorbar=dict(
118
+ orientation='h', # Make the colorbar horizontal
119
+ x=0.5, # Center the colorbar horizontally
120
+ y=-0.0, # Position below the plot
121
+ xanchor='center', # Anchor the colorbar at the center
122
+ yanchor='top', # Anchor the colorbar at the top to keep it just below the plot
123
+ len=0.75, # Length of the colorbar relative to the plot width
124
+ title=dict(
125
+ text='-log10(p)' if color_by == 'logp' else color_by, # Colorbar title
126
+ side='top' # Place the title at the top of the colorbar
127
+ )
128
+ )
129
+ )
130
+ # Remove gridlines, axis labels, and ticks
131
+ fig.update_xaxes(
132
+ showgrid=False, # Hide x-axis gridlines
133
+ zeroline=False, # Hide x-axis zero line
134
+ showticklabels=False, # Hide x-axis tick labels
135
+ title=None, # Remove x-axis title
136
+ scaleanchor='y', # Link the x-axis scale to the y-axis scale
137
+ )
138
+
139
+ fig.update_yaxes(
140
+ showgrid=False, # Hide y-axis gridlines
141
+ zeroline=False, # Hide y-axis zero line
142
+ showticklabels=False, # Hide y-axis tick labels
143
+ title=None # Remove y-axis title
144
+ )
145
+
146
+ # Adjust margins to ensure no clipping and equal axis ratio
147
+ fig.update_layout(
148
+ margin=dict(l=0, r=0, t=20, b=10), # Adjust margins to prevent clipping
149
+ height=width # Ensure the figure height matches the width for equal axis ratio
150
+ )
151
+
152
+ # Adjust the title location and font size
153
+ fig.update_layout(
154
+ title=dict(
155
+ y=0.98,
156
+ x=0.5, # Center the title horizontally
157
+ xanchor='center', # Anchor the title at the center
158
+ yanchor='top', # Anchor the title at the top
159
+ font=dict(
160
+ size=20 # Increase the title font size
161
+ )
162
+ ))
163
+
164
+ return fig
165
+
166
+
167
+
168
+ def run_Visualize(config: VisualizeConfig):
169
+ print(f'------Loading LDSC results of {config.ldsc_save_dir}...')
170
+ ldsc = load_ldsc(ldsc_input_file=Path(config.ldsc_save_dir) / f'{config.sample_name}_{config.trait_name}.csv.gz')
171
+
172
+ print(f'------Loading ST data of {config.sample_name}...')
173
+ adata = sc.read_h5ad(f'{config.hdf5_with_latent_path}')
174
+
175
+ space_coord_concat = load_st_coord(adata, ldsc, annotation=config.annotation)
176
+ fig = draw_scatter(space_coord_concat,
177
+ title=config.fig_title,
178
+ fig_style=config.fig_style,
179
+ point_size=config.point_size,
180
+ width=config.fig_width,
181
+ height=config.fig_height,
182
+ annotation=config.annotation
183
+ )
184
+
185
+
186
+ # Visualization
187
+ output_dir = Path(config.output_dir)
188
+ output_dir.mkdir(parents=True, exist_ok=True, mode=0o755)
189
+ output_file_html = output_dir / f'{config.sample_name}_{config.trait_name}.html'
190
+ output_file_pdf = output_dir / f'{config.sample_name}_{config.trait_name}.pdf'
191
+ output_file_csv = output_dir / f'{config.sample_name}_{config.trait_name}.csv'
192
+
193
+ fig.write_html(str(output_file_html))
194
+ fig.write_image(str(output_file_pdf))
195
+ space_coord_concat.to_csv(str(output_file_csv))
196
+
197
+ print(
198
+ f'------The visualization result is saved in a html file: {output_file_html} which can interactively viewed in a web browser and a pdf file: {output_file_pdf}.')
199
199
  print(f'------The visualization data is saved in a csv file: {output_file_csv}.')
@@ -1,21 +1,21 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2023 liyang
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
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.
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2023 liyang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gsMap
3
- Version: 1.67
3
+ Version: 1.71
4
4
  Summary: Genetics-informed pathogenic spatial mapping
5
5
  Author-email: liyang <songliyang@westlake.edu.cn>, wenhao <chenwenhao@westlake.edu.cn>
6
6
  Requires-Python: >=3.8
@@ -18,7 +18,6 @@ Requires-Dist: scikit-learn
18
18
  Requires-Dist: matplotlib
19
19
  Requires-Dist: seaborn
20
20
  Requires-Dist: tqdm
21
- Requires-Dist: progress
22
21
  Requires-Dist: pyyaml
23
22
  Requires-Dist: torch
24
23
  Requires-Dist: torch-geometric
@@ -52,30 +51,38 @@ Requires-Dist: sphinxcontrib-serializinghtml ; extra == "doc"
52
51
  Requires-Dist: furo ; extra == "doc"
53
52
  Requires-Dist: myst-parser ; extra == "doc"
54
53
  Requires-Dist: nbsphinx ; extra == "doc"
55
- Project-URL: Documentation, https://yanglab.westlake.edu.cn/gsmap/document
54
+ Project-URL: Documentation, https://yanglab.westlake.edu.cn/gsmap/document/software
56
55
  Project-URL: Home, https://github.com/LeonSong1995/gsMap
57
56
  Project-URL: Website, https://yanglab.westlake.edu.cn/gsmap/home
58
57
  Provides-Extra: doc
59
58
 
60
- # gsMap (genetically informed spatial mapping of cells for complex traits)
61
- [![stars-badge](https://img.shields.io/github/stars/LeonSong1995/gsMap?logo=GitHub&color=yellow)](https://github.com/LeonSong1995/gsMap/stargazers)
62
- [![pypi-badge](https://img.shields.io/pypi/v/gsMap)](https://pypi.org/p/gsMap)
63
- [![license-badge](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
59
+ [![GitHub Stars](https://img.shields.io/github/stars/LeonSong1995/gsMap?logo=GitHub&color=yellow)](https://github.com/LeonSong1995/gsMap/stargazers)
60
+ [![PyPI Version](https://img.shields.io/pypi/v/gsMap)](https://pypi.org/project/gsMap)
61
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
64
62
 
65
- ![Model architecture](schematic.png)
63
+ ## Introduction
66
64
 
67
- ## 1.Citation
68
- Liyang Song, Wenhao Chen, Junren Hou, Minmin Guo, Jian Yang (2024) Spatially resolved mapping of cells associated with human complex traits. (Under review)
65
+ `gsMap` (genetically informed spatial mapping of cells for complex traits) integrates spatial transcriptomics (ST) data with genome-wide association study (GWAS) summary statistics to map cells to human complex traits, including diseases, in a spatially resolved manner.
69
66
 
70
- ## 2.Installation
71
67
 
72
- install use pip:
68
+ ## Key Features
69
+ - **Spatially-aware High-Resolution Trait Mapping**
70
+ - **Spatial Region Identification**
71
+ - **Putative Causal Genes Identification**
72
+
73
+ ![Model Architecture](schematic.png)
74
+
75
+ ## Installation
76
+
77
+ Install using pip:
73
78
 
74
79
  ```bash
80
+ conda create -n gsMap python>3.8
81
+ conda activate gsMap
75
82
  pip install gsMap
76
83
  ```
77
84
 
78
- install from source:
85
+ Install from source:
79
86
 
80
87
  ```bash
81
88
  git clone https://github.com/LeonSong1995/gsMap.git
@@ -83,17 +90,16 @@ cd gsMap
83
90
  pip install -e .
84
91
  ```
85
92
 
86
- ## 3.Usage
87
-
88
- Please checkout the documentations and tutorials at
89
- [gsMap.docs](https://yanglab.westlake.edu.cn/gsmap/document).
90
-
93
+ Verify the installation by running the following command:
94
+ ```bash
95
+ gsmap --help
96
+ ```
91
97
 
92
- ## 4.Online visualization
98
+ ## Usage
93
99
 
94
- To visualize the traits-embryo or traits-brain association spatial maps, please refer to [gsmap.visualization](https://yanglab.westlake.edu.cn/gsmap/visualize).
100
+ Please check out the documentation and tutorials at [gsMap Documentation](https://yanglab.westlake.edu.cn/gsmap/document/software).
95
101
 
96
- ....
102
+ ## Online Visualization
97
103
 
98
- ---
104
+ To visualize the traits-cell association spatial maps, please refer to [gsMap Visualization](https://yanglab.westlake.edu.cn/gsmap/visualize).
99
105
 
@@ -0,0 +1,31 @@
1
+ gsMap/__init__.py,sha256=xwuyVm3wc8MEgSfC3D0LNmecSOC2bkVXYWf0cpwX3I0,74
2
+ gsMap/__main__.py,sha256=Ih3PPSJezd9UpmkdfH1PXYYecCpk6hkQF039BQU1ocs,60
3
+ gsMap/cauchy_combination_test.py,sha256=jMXNKWajI5NSmKeKu5PVJMYMtiApL6ZeYrSOSqC-ESU,5553
4
+ gsMap/config.py,sha256=2U_KNlrENMh6XFRJWn88CCOe2unctWYehyUshHt9LU0,40362
5
+ gsMap/diagnosis.py,sha256=SUbEXqEPfziSrbytxNnH7hiNypocyCOAYPeUYDwgPHw,12947
6
+ gsMap/find_latent_representation.py,sha256=h3douGRcrkyNrWEieNnwzc4dXacySx_VMAPZrn2wKyg,4460
7
+ gsMap/format_sumstats.py,sha256=vPJD5qdqd_CjHw5MkihYpSMLcDx7wsNySsmoXRElaW0,13439
8
+ gsMap/generate_ldscore.py,sha256=s0evdoGJ2QKZYMxHGm_z01yf7yE6RWa1iUOJzSh-OZY,28471
9
+ gsMap/latent_to_gene.py,sha256=W7icT8o7GjUwrnHyNgdPFTCr03T6w8fB8vbApg1i-So,9452
10
+ gsMap/main.py,sha256=b3pLWvc70UlO24QXW9Zl7Nd7rlErxlQSM5Y_RqwcNNM,1254
11
+ gsMap/report.py,sha256=pr7K8zEyunun5LHzRtLBaoLjsw8-PfdbJWKMvsTxoj0,6803
12
+ gsMap/run_all_mode.py,sha256=fXO5QNZbkQpQjkZTznqq5Ct1OihIRiFb4iwGHtnEryA,8194
13
+ gsMap/setup.py,sha256=eOoPalGAHTY06_7a35nvbOaKQhq0SBE5GK4pc4bp3wc,102
14
+ gsMap/spatial_ldsc_multiple_sumstats.py,sha256=Pc4MtsLilZZVtCVhQWaxePEyVj6tXva1VWQ2oRZOFRA,18011
15
+ gsMap/visualize.py,sha256=pLp8iyh0L7UU405LfpjEgbGuKbf19_4YyMHZWo6wE7M,7255
16
+ gsMap/GNN/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ gsMap/GNN/adjacency_matrix.py,sha256=nlzIW4b6JSf77SCsjSk75eSEGiwBZLEQQ0D0mpIy4go,3258
18
+ gsMap/GNN/model.py,sha256=Lbf1QBSQByYVdBJFJhh6H0-GeFxEwlXtEkRpqQdhSsM,2870
19
+ gsMap/GNN/train.py,sha256=s9F3_eeOlTzqOra2jHvtV3SDp6fKkt_AVTnssNueruQ,3094
20
+ gsMap/templates/report_template.html,sha256=QODZEbVxpW1xsLz7lDrD_DyUfzYoi9E17o2tLJlf8OQ,8016
21
+ gsMap/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ gsMap/utils/generate_r2_matrix.py,sha256=hB4kReN_ykh5R57BO37c-JwISZPjbGQOWjj6OsEM1fY,28617
23
+ gsMap/utils/jackknife.py,sha256=d3OVLAoU8W0MYdZBT4-8GPAdZDN9aNHnDHwSh4AkxP8,17730
24
+ gsMap/utils/make_annotations.py,sha256=X9vxrH8A0oqrGJ-C82H3yactMDLpSM-mYA_8DurxPzE,21679
25
+ gsMap/utils/manhattan_plot.py,sha256=vS8Avgn9kbYa6HerRKpRNPYgJyyh5mE2f9p1BuHwwS8,25596
26
+ gsMap/utils/regression_read.py,sha256=oivyNicRdLLQvBv36GoR0AweUlvuCmBduTVRPpGhNRU,8474
27
+ gsmap-1.71.dist-info/entry_points.txt,sha256=s_P2Za22O077tc1FPLKMinbdRVXaN_HTcDBgWMYpqA4,41
28
+ gsmap-1.71.dist-info/LICENSE,sha256=dCWx-ENipnYph2UTEA9wJaEZ_tkjNZ_tog6XRd3nd2k,1073
29
+ gsmap-1.71.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
30
+ gsmap-1.71.dist-info/METADATA,sha256=JqVynQWFd04_vu8qXlL7QDtjwGeEh7YLNGcBVNWOjTY,3691
31
+ gsmap-1.71.dist-info/RECORD,,
@@ -1,31 +0,0 @@
1
- gsMap/__init__.py,sha256=dO26Gwp-UoxhNp0ZHWuBVMGsjg6EVy09d93LGJ7pjqA,78
2
- gsMap/__main__.py,sha256=jR-HT42Zzfj2f-7kFJy0bkWjNxcV1MyfQHXFpef2nSE,62
3
- gsMap/cauchy_combination_test.py,sha256=zBPR7DOaNkr7rRoua4tAjRZL7ArjCyMRSQlPSUdHNSE,5694
4
- gsMap/config.py,sha256=xHSIAdt5_4Vdr_2CA-YR1Wbn7i0FW70Eokd0cbi4hqU,41109
5
- gsMap/diagnosis.py,sha256=pp3ONVaWCOoNCog1_6eud38yicBFxL-XhH7D8iTBgF4,13220
6
- gsMap/find_latent_representation.py,sha256=SOGSEHyi7XAPJnTUIRWHv-fCXHR3K9UYcyJI_nuPHFY,4834
7
- gsMap/format_sumstats.py,sha256=00VLNbfjXRqIgFn44WM-mMIboLTYTRn_3JiEtqJDfeQ,13846
8
- gsMap/generate_ldscore.py,sha256=2JfQoMWeQ0-B-zRHakmwq8ovkeewlnWHUCnih6od6ZE,29089
9
- gsMap/latent_to_gene.py,sha256=oRYtRcq1TLXpzkoP_l93CwPDPc6LZvw6_MGrdPJhC_o,9686
10
- gsMap/main.py,sha256=skyBtESdjvuXd9HNq5c83OPxQTNgLVErkYhwuJm8tE4,1285
11
- gsMap/report.py,sha256=H0uYAru2L5-d41_LFHPPdoJbtiTzP4f8kX-mirUNAfc,6963
12
- gsMap/run_all_mode.py,sha256=sPEct9fRw7aAQuU7BNChxk-I8YQcXuq--mtBn-2wTTY,8388
13
- gsMap/setup.py,sha256=eOoPalGAHTY06_7a35nvbOaKQhq0SBE5GK4pc4bp3wc,102
14
- gsMap/spatial_ldsc_multiple_sumstats.py,sha256=qyKLeWz-_78WMjkpnMtoSJyJcDLnfp-armyY_mzlwkI,18391
15
- gsMap/visualize.py,sha256=FLIRHHj1KntLMFDjAhg1jZnJUdvrncR74pCW2Kj5pus,7453
16
- gsMap/GNN_VAE/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- gsMap/GNN_VAE/adjacency_matrix.py,sha256=TJzf5JGPDfC0-50xRP1Tdf7xqEPBLBl9E9VvQq5FE1g,3333
18
- gsMap/GNN_VAE/model.py,sha256=6c_zw_PTg9uBnRng9fNoU3HlbrjEP1j5cxFzwPJEW5s,2959
19
- gsMap/GNN_VAE/train.py,sha256=Etro9QKA5jU14uO17wI_gzV0Nl4YFubk9A--jpRrM4w,3095
20
- gsMap/templates/report_template.html,sha256=pdxHFl_W0W351NUzuJTf_Ay_BfKlEbD_fztNabAGmmg,8214
21
- gsMap/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- gsMap/utils/generate_r2_matrix.py,sha256=A1BrUnlTrYjRwEKxK0I1FbZ5SCQzcviWVM-JzFHHRkw,29352
23
- gsMap/utils/jackknife.py,sha256=nEDPVQJOPQ_uqfUCGX_v5cQwokgCqUmJTT_8rVFuIQo,18244
24
- gsMap/utils/make_annotations.py,sha256=lCbtahT27WFOwLgZrEUE5QcNRuMXmAFYUfsFR-cT-m0,22197
25
- gsMap/utils/manhattan_plot.py,sha256=k3n-NNgMsov9-8UQrirVqG560FUfJ4d6wNG8C0OeCjY,26235
26
- gsMap/utils/regression_read.py,sha256=n_hZZzQXHU-CSLvSofXmQM5Jw4Zpufv3U2HoUW344ko,8768
27
- gsmap-1.67.dist-info/entry_points.txt,sha256=s_P2Za22O077tc1FPLKMinbdRVXaN_HTcDBgWMYpqA4,41
28
- gsmap-1.67.dist-info/LICENSE,sha256=Ni2F-lLSv_H1xaVT3CoSrkiKzMvlgwh-dq8PE1esGyI,1094
29
- gsmap-1.67.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
30
- gsmap-1.67.dist-info/METADATA,sha256=YgGfS9s8cnWLy7fWpptkcMUKsMqcFdMod_V_RlMp0dM,3384
31
- gsmap-1.67.dist-info/RECORD,,
File without changes