gsMap 1.62__py3-none-any.whl → 1.63__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.
@@ -60,7 +60,7 @@ def read_csv(fh, **kwargs):
60
60
  '''
61
61
  Read the csv data
62
62
  '''
63
- return pd.read_csv(fh, delim_whitespace=True, na_values='.', **kwargs)
63
+ return pd.read_csv(fh, sep='\s+', na_values='.', **kwargs)
64
64
 
65
65
 
66
66
  # Fun for reading loading LD scores
gsMap/visualize.py CHANGED
@@ -1,12 +1,13 @@
1
- import argparse
2
1
  from pathlib import Path
3
2
  from typing import Literal
4
3
 
5
- import scanpy as sc
6
4
  import numpy as np
7
5
  import pandas as pd
8
6
  import plotly.express as px
9
- from gsMap.config import VisualizeConfig, add_Visualization_args
7
+ import scanpy as sc
8
+ from scipy.spatial import KDTree
9
+
10
+ from gsMap.config import VisualizeConfig
10
11
 
11
12
 
12
13
  def load_ldsc(ldsc_input_file):
@@ -18,11 +19,19 @@ def load_ldsc(ldsc_input_file):
18
19
 
19
20
 
20
21
  # %%
21
- def load_st_coord(adata, ldsc, annotation):
22
+ def load_st_coord(adata, feature_series: pd.Series, annotation):
22
23
  spot_name = adata.obs_names.to_list()
23
- space_coord = pd.DataFrame(adata.obsm['spatial'], columns=['sx', 'sy'], index=spot_name)
24
- space_coord = space_coord[space_coord.index.isin(ldsc.spot)]
25
- space_coord_concat = pd.concat([space_coord.loc[ldsc.spot], ldsc.logp], axis=1)
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)
26
35
  space_coord_concat.head()
27
36
  if annotation is not None:
28
37
  annotation = pd.Series(adata.obs[annotation].values, index=adata.obs_names, name='annotation')
@@ -30,10 +39,25 @@ def load_st_coord(adata, ldsc, annotation):
30
39
  return space_coord_concat
31
40
 
32
41
 
33
- # %%
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
+
34
58
  def draw_scatter(space_coord_concat, title=None, fig_style: Literal['dark', 'light'] = 'light',
35
- point_size: int = None, width=800, height=600, annotation=None):
36
- # change theme to plotly_white
59
+ point_size: int = None, width=800, height=600, annotation=None, color_by='logp'):
60
+ # Set theme based on fig_style
37
61
  if fig_style == 'dark':
38
62
  px.defaults.template = "plotly_dark"
39
63
  else:
@@ -50,24 +74,25 @@ def draw_scatter(space_coord_concat, title=None, fig_style: Literal['dark', 'lig
50
74
  (1 / 8, '#4575b4'), # Dark Blue
51
75
  (0, '#313695') # Deep Blue
52
76
  ]
53
- # custom_color_scale = px.colors.diverging.balance
54
77
  custom_color_scale.reverse()
78
+
79
+ # Create the scatter plot
55
80
  fig = px.scatter(
56
81
  space_coord_concat,
57
82
  x='sx',
58
83
  y='sy',
59
- color='logp', # Color the points by the 'logp' column
84
+ color=color_by,
60
85
  symbol='annotation' if annotation is not None else None,
61
86
  title=title,
62
87
  color_continuous_scale=custom_color_scale,
63
- range_color=[0, max(space_coord_concat.logp)],
88
+ range_color=[0, max(space_coord_concat[color_by])],
64
89
  )
65
90
 
91
+ # Update marker size if specified
66
92
  if point_size is not None:
67
- fig.update_traces(marker=dict(size=point_size))
68
-
69
- fig.update_layout(legend_title_text='Annotation')
93
+ fig.update_traces(marker=dict(size=point_size, symbol='circle'))
70
94
 
95
+ # Update layout for figure size
71
96
  fig.update_layout(
72
97
  autosize=False,
73
98
  width=width,
@@ -78,26 +103,74 @@ def draw_scatter(space_coord_concat, title=None, fig_style: Literal['dark', 'lig
78
103
  fig.update_layout(
79
104
  legend=dict(
80
105
  yanchor="top",
81
- y=0.99,
106
+ y=0.95,
82
107
  xanchor="left",
83
- x=-0.39,
108
+ x=1.0,
84
109
  font=dict(
85
110
  size=10,
86
111
  )
87
112
  )
88
113
  )
89
- # change color bar title
90
- fig.update_layout(coloraxis_colorbar_title='-log10(p)')
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
+ ))
91
163
 
92
164
  return fig
93
165
 
94
166
 
167
+
95
168
  def run_Visualize(config: VisualizeConfig):
96
- print(f'------Loading LDSC results of {config.input_ldsc_dir}...')
97
- ldsc = load_ldsc(ldsc_input_file=Path(config.input_ldsc_dir) / f'{config.sample_name}_{config.trait_name}.csv.gz')
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')
98
171
 
99
172
  print(f'------Loading ST data of {config.sample_name}...')
100
- adata = sc.read_h5ad(f'{config.input_hdf5_path}')
173
+ adata = sc.read_h5ad(f'{config.hdf5_with_latent_path}')
101
174
 
102
175
  space_coord_concat = load_st_coord(adata, ldsc, annotation=config.annotation)
103
176
  fig = draw_scatter(space_coord_concat,
@@ -109,46 +182,18 @@ def run_Visualize(config: VisualizeConfig):
109
182
  annotation=config.annotation
110
183
  )
111
184
 
112
- # save the figure to html
113
185
 
114
186
  # Visualization
115
- output_dir = Path(config.output_figure_dir)
187
+ output_dir = Path(config.output_dir)
116
188
  output_dir.mkdir(parents=True, exist_ok=True, mode=0o755)
117
189
  output_file_html = output_dir / f'{config.sample_name}_{config.trait_name}.html'
118
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'
119
192
 
120
193
  fig.write_html(str(output_file_html))
121
194
  fig.write_image(str(output_file_pdf))
195
+ space_coord_concat.to_csv(str(output_file_csv))
122
196
 
123
197
  print(
124
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}.')
125
-
126
-
127
- if __name__ == '__main__':
128
- TEST = True
129
- if TEST:
130
- test_dir = '/storage/yangjianLab/chenwenhao/projects/202312_gsMap/data/gsMap_test/Nature_Neuroscience_2021'
131
- name = 'E16.5_E1S1'
132
-
133
- config = VisualizeConfig(
134
- input_hdf5_path=f'/storage/yangjianLab/songliyang/SpatialData/Data/Embryo/Mice/Cell_MOSTA/h5ad/E16.5_E1S1.MOSTA.h5ad',
135
- input_ldsc_dir=
136
- f'/storage/yangjianLab/songliyang/SpatialData/Data/Embryo/Mice/Cell_MOSTA/ldsc_enrichment_frac/E16.5_E1S1/',
137
- output_figure_dir='/storage/yangjianLab/chenwenhao/projects/202312_gsMap/data/gsMap_test/Nature_Neuroscience_2021/snake_workdir/Cortex_151507/figure/',
138
- sample_name=name,
139
- trait_name='GIANT_EUR_Height_2022_Nature',
140
- fig_title='GIANT_EUR_Height_2022_Nature',
141
- fig_height=800,
142
- fig_width=800,
143
- fig_style='light',
144
- point_size=2,
145
- annotation='annotation',
146
- )
147
- run_Visualize(config)
148
- else:
149
- parser = argparse.ArgumentParser(description="Visualization the results")
150
- add_Visualization_args(parser)
151
- args = parser.parse_args()
152
- config = VisualizeConfig(**vars(args))
153
-
154
- run_Visualize(config)
199
+ print(f'------The visualization data is saved in a csv file: {output_file_csv}.')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gsMap
3
- Version: 1.62
3
+ Version: 1.63
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
@@ -26,6 +26,7 @@ Requires-Dist: pyranges
26
26
  Requires-Dist: pyfiglet
27
27
  Requires-Dist: plotly
28
28
  Requires-Dist: kaleido
29
+ Requires-Dist: jinja2
29
30
  Requires-Dist: sphinx ; extra == "doc"
30
31
  Requires-Dist: sphinx-argparse ; extra == "doc"
31
32
  Requires-Dist: sphinx-autobuild ; extra == "doc"
@@ -46,21 +47,22 @@ Requires-Dist: sphinxcontrib-serializinghtml ; extra == "doc"
46
47
  Requires-Dist: furo ; extra == "doc"
47
48
  Requires-Dist: myst-parser ; extra == "doc"
48
49
  Requires-Dist: nbsphinx ; extra == "doc"
49
- Project-URL: Documentation, https://...
50
+ Project-URL: Documentation, https://yanglab.westlake.edu.cn/gsmap/document
50
51
  Project-URL: Home, https://github.com/LeonSong1995/gsMap
51
- Project-URL: Website, https://...
52
+ Project-URL: Website, https://yanglab.westlake.edu.cn/gsmap/home
52
53
  Provides-Extra: doc
53
54
 
54
55
  # gsMap (genetically informed spatial mapping of cells for complex traits)
55
- [![stars-badge](https://img.shields.io/github/stars/LeonSong1995/MeDuSA?logo=GitHub&color=yellow)](https://github.com/LeonSong1995/gsMap/stargazers)
56
+ [![stars-badge](https://img.shields.io/github/stars/LeonSong1995/gsMap?logo=GitHub&color=yellow)](https://github.com/LeonSong1995/gsMap/stargazers)
57
+ [![pypi-badge](https://img.shields.io/pypi/v/gsMap)](https://pypi.org/p/gsMap)
56
58
  [![license-badge](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
57
59
 
60
+ ![Model architecture](schematic.png)
58
61
 
59
- ## Features
62
+ ## 1.Citation
63
+ Liyang Song, Wenhao Chen, Junren Hou, Minmin Guo, Jian Yang (2024) Spatially resolved mapping of cells associated with human complex traits. (Under review)
60
64
 
61
- ....
62
-
63
- ## Installation
65
+ ## 2.Installation
64
66
 
65
67
  install use pip:
66
68
 
@@ -71,52 +73,20 @@ pip install gsMap
71
73
  install from source:
72
74
 
73
75
  ```bash
74
- git clone
76
+ git clone https://github.com/LeonSong1995/gsMap.git
75
77
  cd gsMap
76
78
  pip install -e .
77
79
  ```
78
80
 
79
- ## Usage
80
-
81
- To use gsMap, navigate to the command line and enter `gsMap` followed by the subcommand that corresponds to the desired operation. Each subcommand may require specific arguments to run.
82
-
83
- ### Basic Command Structure
84
-
85
- ```bash
86
- gsmap subcommand [arguments...]
87
- ```
88
-
89
- - `subcommand`: The specific operation you wish to perform.
90
- - `arguments`: The arguments and options required for the subcommand.
91
-
92
- ### Available Subcommands
93
-
94
- (Provide a list and brief description of each available subcommand. For example:)
95
-
96
- - `run_find_latent_representations`: Finds latent representations using a GNN-VAE model.
97
- - `run_latent_to_gene`: Maps latent representations to gene markers.
98
- - `run_generate_ldscore`: Generates LD scores for genomic spots.
99
- - `run_spatial_ldsc`: Conducts spatial LDSC analysis.
100
- - `run_cauchy_combination`: Performs Cauchy combination tests for annotations.
101
- - `run_all_mode`: Executes a comprehensive pipeline covering all steps.
102
-
103
- ### Examples
104
-
105
- To run a specific functionality, you need to provide the appropriate subcommand and arguments. For example:
106
- ### Running Requirement
107
-
108
-
109
- ```bash
110
- gsmap run_find_latent_representations --input_hdf5_path <path> --output_hdf5_path <path> --sample_name <name>
111
- ```
81
+ ## 3.Usage
112
82
 
113
- This command initiates the process of finding latent representations based on the given HDF5 input and output paths and sample name.
83
+ Please checkout the documentations and tutorials at
84
+ [gsMap.docs](https://yanglab.westlake.edu.cn/gsmap/document).
114
85
 
115
- ## Contributing
116
86
 
117
- ...
87
+ ## 4.Online visualization
118
88
 
119
- ## License
89
+ To visualize the traits-embryo or traits-brain association spatial maps, please refer to [gsmap.visualization](https://yanglab.westlake.edu.cn/gsmap/visualize).
120
90
 
121
91
  ....
122
92
 
@@ -0,0 +1,30 @@
1
+ gsMap/__init__.py,sha256=-ypQPCajXkPi0WsnYpUZiY_0tA_qXZ4Ux42ji7z_2UY,78
2
+ gsMap/__main__.py,sha256=jR-HT42Zzfj2f-7kFJy0bkWjNxcV1MyfQHXFpef2nSE,62
3
+ gsMap/cauchy_combination_test.py,sha256=zBPR7DOaNkr7rRoua4tAjRZL7ArjCyMRSQlPSUdHNSE,5694
4
+ gsMap/config.py,sha256=hMUvlwlKZXeRdTJZfMINz_8DadVhEIT6X6fyJf11M9E,41134
5
+ gsMap/diagnosis.py,sha256=pp3ONVaWCOoNCog1_6eud38yicBFxL-XhH7D8iTBgF4,13220
6
+ gsMap/find_latent_representation.py,sha256=BVv4dyTolrlciHG3I-vwNDh2ruPpTf9jiT1hMKZnpto,6044
7
+ gsMap/format_sumstats.py,sha256=9OBxuunoOLml3LKZvvRsPEEjQvT1Cuqb0w6lqsRIYPw,13714
8
+ gsMap/generate_ldscore.py,sha256=2JfQoMWeQ0-B-zRHakmwq8ovkeewlnWHUCnih6od6ZE,29089
9
+ gsMap/latent_to_gene.py,sha256=6TlOWDhzzrj18o9gJk2b-WMOkeXqscK8CJJKxCtilHg,9640
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/spatial_ldsc_multiple_sumstats.py,sha256=YHgXvsophnIbihqQyPCzXBPIa6Zd2-cblpQpb2Be0Ug,18459
14
+ gsMap/visualize.py,sha256=FLIRHHj1KntLMFDjAhg1jZnJUdvrncR74pCW2Kj5pus,7453
15
+ gsMap/GNN_VAE/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ gsMap/GNN_VAE/adjacency_matrix.py,sha256=pmSfK9TTwdrsWTmHvCqVrbRE0PAiq1lvgmxzrdQgpiU,3500
17
+ gsMap/GNN_VAE/model.py,sha256=Fixl8-2zN3T5MmMtpMIvxsBYydM3QVR4uC3Hhsg0DzI,3349
18
+ gsMap/GNN_VAE/train.py,sha256=KnvZYHImRzTwJl1H0dkZZqWASdZ5VgYTCifQVW8TavM,3389
19
+ gsMap/templates/report_template.html,sha256=pdxHFl_W0W351NUzuJTf_Ay_BfKlEbD_fztNabAGmmg,8214
20
+ gsMap/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ gsMap/utils/generate_r2_matrix.py,sha256=CshzmdXYYyIOjTqqVAFkh_S3ucv62OPiG3YG1eB2j4g,29363
22
+ gsMap/utils/jackknife.py,sha256=nEDPVQJOPQ_uqfUCGX_v5cQwokgCqUmJTT_8rVFuIQo,18244
23
+ gsMap/utils/make_annotations.py,sha256=lCbtahT27WFOwLgZrEUE5QcNRuMXmAFYUfsFR-cT-m0,22197
24
+ gsMap/utils/manhattan_plot.py,sha256=k3n-NNgMsov9-8UQrirVqG560FUfJ4d6wNG8C0OeCjY,26235
25
+ gsMap/utils/regression_read.py,sha256=n_hZZzQXHU-CSLvSofXmQM5Jw4Zpufv3U2HoUW344ko,8768
26
+ gsmap-1.63.dist-info/entry_points.txt,sha256=s_P2Za22O077tc1FPLKMinbdRVXaN_HTcDBgWMYpqA4,41
27
+ gsmap-1.63.dist-info/LICENSE,sha256=Ni2F-lLSv_H1xaVT3CoSrkiKzMvlgwh-dq8PE1esGyI,1094
28
+ gsmap-1.63.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
29
+ gsmap-1.63.dist-info/METADATA,sha256=ffylpqXB-e2fI2TRKYUS7GneOttI6uqebiigsPCRFkg,3260
30
+ gsmap-1.63.dist-info/RECORD,,
@@ -1,24 +0,0 @@
1
- gsMap/__init__.py,sha256=RJYX4ncfccRzcIr2GQI4s5QYvjfLD-KKlzWeHaZMtzk,78
2
- gsMap/__main__.py,sha256=jR-HT42Zzfj2f-7kFJy0bkWjNxcV1MyfQHXFpef2nSE,62
3
- gsMap/cauchy_combination_test.py,sha256=WI71HmSJ38Q2VEohnVrWHL02MnY0clqX9Fb5VrXCCz4,6758
4
- gsMap/config.py,sha256=2-gQR-nJRI9XfxegGCuUYMPDf43nuo7gWXR8JhtKWjs,39578
5
- gsMap/find_latent_representation.py,sha256=liRXtQKixYwGA6ZQmfXXVeHAypobACYO1wYT-wyr3AU,8337
6
- gsMap/format_sumstats.py,sha256=wC8eSFCbD8qpq5JOaxhYP5iL3JZ6NmG-JPThyQ52tDM,13838
7
- gsMap/generate_ldscore.py,sha256=s2nhq9MvQa6wfRRsCe93lv54zyimvNn1aW0-dG-PsXo,25494
8
- gsMap/generate_r2_matrix.py,sha256=BGe4WrCm19nQwzYz5vmNIC7tfIM2_QUMPd8JdfFDock,29761
9
- gsMap/jackknife.py,sha256=nEDPVQJOPQ_uqfUCGX_v5cQwokgCqUmJTT_8rVFuIQo,18244
10
- gsMap/latent_to_gene.py,sha256=lvEokL3po0kTnMk7mQvBwN0gkfO26myudRRQX1pX0BQ,11269
11
- gsMap/main.py,sha256=ttGY1uSmHaC6R1fPfuvonr3Nj5lZt_U3UFw15VQKDIM,1511
12
- gsMap/make_annotations.py,sha256=QhI3aTO9eOUuqvDXLe23eUGjld7bt_1H6vtvWX5TR5Y,23984
13
- gsMap/regression_read.py,sha256=ATfUapl4zypkUwo8xivzD7aGlZNSMavR-xVavSsmVkI,8780
14
- gsMap/spatial_ldsc_multiple_sumstats.py,sha256=Ixt8HpWZyJ7L1OA539mkvykdIDoZG9VT9ivwRmCOSwA,14440
15
- gsMap/visualize.py,sha256=FMuSInYfNZQMLHgh-jjER4j-U78SQVNCZJOTnL-xhgM,5645
16
- gsMap/GNN_VAE/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- gsMap/GNN_VAE/adjacency_matrix.py,sha256=0-qw5qHGrGugkjgVyWLYjC0Qa_iKvR1TnFxAgCaxJFw,3500
18
- gsMap/GNN_VAE/model.py,sha256=3uWTM_zjgCjBGnuutiua0ZV2W7WiIG5RA9Y9gRHmYA8,3349
19
- gsMap/GNN_VAE/train.py,sha256=cAj81gJ9AwV-f5gqS1PjNtfkcZ1s_TtRcDIPIb4AtoM,3389
20
- gsmap-1.62.dist-info/entry_points.txt,sha256=s_P2Za22O077tc1FPLKMinbdRVXaN_HTcDBgWMYpqA4,41
21
- gsmap-1.62.dist-info/LICENSE,sha256=Ni2F-lLSv_H1xaVT3CoSrkiKzMvlgwh-dq8PE1esGyI,1094
22
- gsmap-1.62.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
23
- gsmap-1.62.dist-info/METADATA,sha256=E9L2xZn1IRR2cmoC_gMjWoTF2fIx6qY9VDlSLg6_MrQ,3924
24
- gsmap-1.62.dist-info/RECORD,,
File without changes
File without changes
File without changes