gsMap 1.71__py3-none-any.whl → 1.71.1__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.71
3
+ Version: 1.71.1
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
@@ -28,7 +28,7 @@ Requires-Dist: kaleido
28
28
  Requires-Dist: jinja2
29
29
  Requires-Dist: scanpy >=1.8.0
30
30
  Requires-Dist: zarr
31
- Requires-Dist: bitarray
31
+ Requires-Dist: bitarray >=2.9.2, <3.0.0
32
32
  Requires-Dist: pyarrow
33
33
  Requires-Dist: scikit-misc
34
34
  Requires-Dist: sphinx ; extra == "doc"
@@ -0,0 +1,31 @@
1
+ gsMap/__init__.py,sha256=QkxmGGL4-VYxHMfZLX_l4JasxVNscs4K0GbPKa4AIZg,80
2
+ gsMap/__main__.py,sha256=jR-HT42Zzfj2f-7kFJy0bkWjNxcV1MyfQHXFpef2nSE,62
3
+ gsMap/cauchy_combination_test.py,sha256=zBPR7DOaNkr7rRoua4tAjRZL7ArjCyMRSQlPSUdHNSE,5694
4
+ gsMap/config.py,sha256=w782l2jTmW21_qs77TaDmbB_KMCIo8PoXAdsJfO_QPc,41167
5
+ gsMap/diagnosis.py,sha256=pp3ONVaWCOoNCog1_6eud38yicBFxL-XhH7D8iTBgF4,13220
6
+ gsMap/find_latent_representation.py,sha256=bgQJO4dM7gWZC0cebo2NxpBWY23M6r3-pWIRBQlvIIw,4593
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/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ gsMap/GNN/adjacency_matrix.py,sha256=1M-5ZCFpdq7xL9ii0pgAeODhp6Od-dlvOFJ8PlzspHE,3333
18
+ gsMap/GNN/model.py,sha256=G3s03vbYlWu70fmEEPUZ9PZSa92xwHllYsAbx833NVU,2999
19
+ gsMap/GNN/train.py,sha256=s9F3_eeOlTzqOra2jHvtV3SDp6fKkt_AVTnssNueruQ,3094
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.71.1.dist-info/entry_points.txt,sha256=s_P2Za22O077tc1FPLKMinbdRVXaN_HTcDBgWMYpqA4,41
28
+ gsmap-1.71.1.dist-info/LICENSE,sha256=Ni2F-lLSv_H1xaVT3CoSrkiKzMvlgwh-dq8PE1esGyI,1094
29
+ gsmap-1.71.1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
30
+ gsmap-1.71.1.dist-info/METADATA,sha256=czstUNxn420208aUGUtoZoM_AlWWnZiY4XsKgAJKDPw,3709
31
+ gsmap-1.71.1.dist-info/RECORD,,
@@ -1,31 +0,0 @@
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,,
File without changes