gsMap 1.60__tar.gz → 1.61a0__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.
- {gsmap-1.60 → gsmap-1.61a0}/.github/workflows/publish-to-pypi.yml +2 -2
- {gsmap-1.60 → gsmap-1.61a0}/PKG-INFO +5 -5
- {gsmap-1.60 → gsmap-1.61a0}/README.md +4 -4
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/api/cauchy_combination.rst +2 -2
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/api/find_latent_representations.rst +2 -2
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/api/format_sumstats.rst +2 -2
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/api/generate_ldscore.rst +1 -1
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/api/latent_to_gene.rst +1 -1
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/api/spatial_ldsc.rst +1 -1
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/api/visualization.rst +2 -2
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/api.rst +3 -3
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/data_format.md +3 -3
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/index.rst +1 -1
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/mouse_example.md +9 -9
- {gsmap-1.60 → gsmap-1.61a0}/pyproject.toml +1 -1
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/__init__.py +1 -1
- {gsmap-1.60 → gsmap-1.61a0}/test/GPS-snakemake-workflow-macaque.smk +5 -5
- {gsmap-1.60 → gsmap-1.61a0}/test/GPS-snakemake-workflow.smk +5 -5
- {gsmap-1.60 → gsmap-1.61a0}/.github/workflows/sphinx.yml +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/.gitignore +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/LICENSE +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/Makefile +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/make.bat +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/requirements.txt +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/_static/architecture.svg +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/charts/cortex/Cortex_151507_Height.json +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/charts/cortex/Cortex_151507_IQ.json +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/charts/cortex/Cortex_151507_MCHC.json +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/charts/cortex/Cortex_151507_SCZ.json +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/charts/mouse_embryo/E16.5_E1S1_Height.json +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/charts/mouse_embryo/E16.5_E1S1_IQ.json +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/charts/mouse_embryo/E16.5_E1S1_MCHC.json +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/charts/mouse_embryo/E16.5_E1S1_SCZ.json +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/charts/test.json +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/conf.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/data.rst +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/install.rst +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/mouse.rst +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/release.rst +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/docs/source/tutorials.rst +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/GNN_VAE/__init__.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/GNN_VAE/adjacency_matrix.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/GNN_VAE/model.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/GNN_VAE/train.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/__main__.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/cauchy_combination_test.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/config.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/find_latent_representation.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/format_sumstats.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/generate_ldscore.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/generate_r2_matrix.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/jackknife.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/latent_to_gene.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/main.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/make_annotations.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/regression_read.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/spatial_ldsc_multiple_sumstats.py +0 -0
- {gsmap-1.60 → gsmap-1.61a0}/src/gsMap/visualize.py +0 -0
@@ -38,7 +38,7 @@ jobs:
|
|
38
38
|
runs-on: ubuntu-latest
|
39
39
|
environment:
|
40
40
|
name: pypi
|
41
|
-
url: https://pypi.org/p
|
41
|
+
url: https://pypi.org/p/gsMap
|
42
42
|
permissions:
|
43
43
|
id-token: write # IMPORTANT: mandatory for trusted publishing
|
44
44
|
|
@@ -103,7 +103,7 @@ jobs:
|
|
103
103
|
|
104
104
|
environment:
|
105
105
|
name: testpypi
|
106
|
-
url: https://test.pypi.org/p
|
106
|
+
url: https://test.pypi.org/p/gsMap
|
107
107
|
|
108
108
|
permissions:
|
109
109
|
id-token: write # IMPORTANT: mandatory for trusted publishing
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: gsMap
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.61a0
|
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
|
@@ -65,14 +65,14 @@ Provides-Extra: doc
|
|
65
65
|
install use pip:
|
66
66
|
|
67
67
|
```bash
|
68
|
-
pip install gsMap
|
68
|
+
pip install gsMap
|
69
69
|
```
|
70
70
|
|
71
71
|
install from source:
|
72
72
|
|
73
73
|
```bash
|
74
74
|
git clone
|
75
|
-
cd gsMap
|
75
|
+
cd gsMap
|
76
76
|
pip install -e .
|
77
77
|
```
|
78
78
|
|
@@ -83,7 +83,7 @@ To use gsMap, navigate to the command line and enter `gsMap` followed by the sub
|
|
83
83
|
### Basic Command Structure
|
84
84
|
|
85
85
|
```bash
|
86
|
-
|
86
|
+
gsmap subcommand [arguments...]
|
87
87
|
```
|
88
88
|
|
89
89
|
- `subcommand`: The specific operation you wish to perform.
|
@@ -107,7 +107,7 @@ To run a specific functionality, you need to provide the appropriate subcommand
|
|
107
107
|
|
108
108
|
|
109
109
|
```bash
|
110
|
-
|
110
|
+
gsmap run_find_latent_representations --input_hdf5_path <path> --output_hdf5_path <path> --sample_name <name>
|
111
111
|
```
|
112
112
|
|
113
113
|
This command initiates the process of finding latent representations based on the given HDF5 input and output paths and sample name.
|
@@ -12,14 +12,14 @@
|
|
12
12
|
install use pip:
|
13
13
|
|
14
14
|
```bash
|
15
|
-
pip install gsMap
|
15
|
+
pip install gsMap
|
16
16
|
```
|
17
17
|
|
18
18
|
install from source:
|
19
19
|
|
20
20
|
```bash
|
21
21
|
git clone
|
22
|
-
cd gsMap
|
22
|
+
cd gsMap
|
23
23
|
pip install -e .
|
24
24
|
```
|
25
25
|
|
@@ -30,7 +30,7 @@ To use gsMap, navigate to the command line and enter `gsMap` followed by the sub
|
|
30
30
|
### Basic Command Structure
|
31
31
|
|
32
32
|
```bash
|
33
|
-
|
33
|
+
gsmap subcommand [arguments...]
|
34
34
|
```
|
35
35
|
|
36
36
|
- `subcommand`: The specific operation you wish to perform.
|
@@ -54,7 +54,7 @@ To run a specific functionality, you need to provide the appropriate subcommand
|
|
54
54
|
|
55
55
|
|
56
56
|
```bash
|
57
|
-
|
57
|
+
gsmap run_find_latent_representations --input_hdf5_path <path> --output_hdf5_path <path> --sample_name <name>
|
58
58
|
```
|
59
59
|
|
60
60
|
This command initiates the process of finding latent representations based on the given HDF5 input and output paths and sample name.
|
@@ -4,19 +4,19 @@ gsMap Command Line Alphabets
|
|
4
4
|
===========================
|
5
5
|
|
6
6
|
|
7
|
-
.. program::
|
7
|
+
.. program:: gsmap
|
8
8
|
|
9
9
|
Synopsis
|
10
10
|
--------
|
11
11
|
|
12
12
|
.. code-block:: shell
|
13
13
|
|
14
|
-
usage:
|
14
|
+
usage: gsmap [-h] [--version] {run_find_latent_representations,run_latent_to_gene,run_generate_ldscore,run_spatial_ldsc,run_cauchy_combination,run_visualize,run_all_mode} ...
|
15
15
|
|
16
16
|
Description
|
17
17
|
-----------
|
18
18
|
|
19
|
-
|
19
|
+
gsmap: genetically informed spatial mapping of cells for complex traits.
|
20
20
|
|
21
21
|
Options
|
22
22
|
-------
|
@@ -85,7 +85,7 @@ SNPID RSID CHR POS EFFECT_ALLELE OTHER_ALLELE EFFECT_ALLELE_FREQ BETA SE P N
|
|
85
85
|
|
86
86
|
To convert the summary statistics, use the commands:
|
87
87
|
```bash
|
88
|
-
|
88
|
+
gsmap format_sumstats \
|
89
89
|
--sumstats GIANT_HEIGHT_YENGO_2022_GWAS_SUMMARY_STATS_ALL
|
90
90
|
--out HEIGHT
|
91
91
|
```
|
@@ -101,7 +101,7 @@ rs4040617 G A -0.463 1602016.000
|
|
101
101
|
```
|
102
102
|
In most cases, this command can automatically recognize different column names of GWAS data, but you can also specify the column names to ensure correctness.
|
103
103
|
```bash
|
104
|
-
|
104
|
+
gsmap format_sumstats \
|
105
105
|
--sumstats GIANT_HEIGHT_YENGO_2022_GWAS_SUMMARY_STATS_ALL
|
106
106
|
--out HEIGHT \
|
107
107
|
--a1 EFFECT_ALLELE \
|
@@ -117,4 +117,4 @@ gsMap format_sumstats \
|
|
117
117
|
For more usage options, please see:
|
118
118
|
```bash
|
119
119
|
gsMap format_sumstats -h
|
120
|
-
```
|
120
|
+
```
|
@@ -5,7 +5,7 @@ Welcome to gsMap's documentation!
|
|
5
5
|
Introduction
|
6
6
|
------------
|
7
7
|
|
8
|
-
``gsMap`` (
|
8
|
+
``gsMap`` (genetically informed spatial mapping of cells for complex traits) is introduced to integrate spatial transcriptomics (ST) data with summary statistics of genome-wide association studies (GWAS), aiming to identify complex trait (disease)-associated cells and map their spatial distributions.
|
9
9
|
|
10
10
|
Key Features
|
11
11
|
------------
|
@@ -94,7 +94,7 @@ W_FILE="gsMap_resource/LDSC_resource/weights_hm3_no_hla/weights." # The SNP regr
|
|
94
94
|
**Execution**:
|
95
95
|
```shell
|
96
96
|
HDF5_WITH_LATENT_PATH="$WORKDIR/$SAMPLE_NAME/find_latent_representations/${SAMPLE_NAME}_add_latent.h5ad"
|
97
|
-
|
97
|
+
gsmap run_find_latent_representations \
|
98
98
|
--input_hdf5_path $HDF5_PATH \
|
99
99
|
--sample_name $SAMPLE_NAME \
|
100
100
|
--output_hdf5_path $HDF5_OUTPUT \
|
@@ -116,7 +116,7 @@ gsMap run_find_latent_representations \
|
|
116
116
|
**Execution**:
|
117
117
|
```shell
|
118
118
|
MKSCORE_FEATHER_PATH="$WORKDIR/$SAMPLE_NAME/latent_to_gene/${SAMPLE_NAME}_gene_marker_score.feather"
|
119
|
-
|
119
|
+
gsmap run_latent_to_gene \
|
120
120
|
--input_hdf5_with_latent_path $HDF5_WITH_LATENT_PATH \
|
121
121
|
--sample_name $SAMPLE_NAME \
|
122
122
|
--output_feather_path $MKSCORE_FEATHER_PATH \
|
@@ -160,7 +160,7 @@ If a SNP is within the gene window, it will be assigned the gene specificity sco
|
|
160
160
|
```shell
|
161
161
|
LDScoreDir="$WORKDIR/$SAMPLE_NAME/generate_ldscore"
|
162
162
|
for CHROM in {1..22}; do
|
163
|
-
|
163
|
+
gsmap run_generate_ldscore \
|
164
164
|
--sample_name $SAMPLE_NAME \
|
165
165
|
--chrom $CHROM \
|
166
166
|
--ldscore_save_dir $LDScoreDir \
|
@@ -188,7 +188,7 @@ In this example we choose the all tissue enhancer annotation file (`ENHANCER_ANN
|
|
188
188
|
```shell
|
189
189
|
LDScoreDir="$WORKDIR/$SAMPLE_NAME/generate_ldscore"
|
190
190
|
for CHROM in {1..22}; do
|
191
|
-
|
191
|
+
gsmap run_generate_ldscore \
|
192
192
|
--sample_name $SAMPLE_NAME \
|
193
193
|
--chrom $CHROM \
|
194
194
|
--ldscore_save_dir $LDScoreDir \
|
@@ -218,7 +218,7 @@ This will use both the TSS and enhancer-gene linking to map SNPs to genes. In ca
|
|
218
218
|
```shell
|
219
219
|
LDScoreDir="$WORKDIR/$SAMPLE_NAME/generate_ldscore"
|
220
220
|
for CHROM in {1..22}; do
|
221
|
-
|
221
|
+
gsmap run_generate_ldscore \
|
222
222
|
--sample_name $SAMPLE_NAME \
|
223
223
|
--chrom $CHROM \
|
224
224
|
--ldscore_save_dir $LDScoreDir \
|
@@ -267,7 +267,7 @@ LDSC_DIR="$WORKDIR/$SAMPLE_NAME/spatial_ldsc"
|
|
267
267
|
SUMSTATS_FILE="example_data/GWAS/IQ_NG_2018.sumstats.gz"
|
268
268
|
TRAIT_NAME="IQ"
|
269
269
|
|
270
|
-
|
270
|
+
gsmap run_spatial_ldsc \
|
271
271
|
--sumstats_file $SUMSTATS_FILE \
|
272
272
|
--trait_name $TRAIT_NAME \
|
273
273
|
--w_file $W_FILE \
|
@@ -294,7 +294,7 @@ SCZ: example_data/GWAS/PGC3_SCZ_wave3_public_INFO80.sumstats.gz
|
|
294
294
|
```shell
|
295
295
|
LDSC_DIR="$WORKDIR/$SAMPLE_NAME/spatial_ldsc"
|
296
296
|
SUMSTATS_CONFIG_FILE="example_data/GWAS/gwas_config.yaml"
|
297
|
-
|
297
|
+
gsmap run_spatial_ldsc \
|
298
298
|
--w_file $W_FILE \
|
299
299
|
--sample_name $SAMPLE_NAME \
|
300
300
|
--num_processes 4 \
|
@@ -314,7 +314,7 @@ gsMap run_spatial_ldsc \
|
|
314
314
|
```shell
|
315
315
|
CAUCHY_SAVE_DIR="$WORKDIR/$SAMPLE_NAME/cauchy_combination"
|
316
316
|
TRAIT_NAME="IQ"
|
317
|
-
|
317
|
+
gsmap run_cauchy_combination \
|
318
318
|
--input_hdf5_path $HDF5_PATH \
|
319
319
|
--input_ldsc_dir $LDSC_DIR \
|
320
320
|
--sample_name $SAMPLE_NAME \
|
@@ -376,7 +376,7 @@ You could use below command to visualize the gsMap results. You will get a scatt
|
|
376
376
|
- A html file which could be opened in a web browser to interactively explore the results.
|
377
377
|
|
378
378
|
```shell
|
379
|
-
|
379
|
+
gsmap run_visualize \
|
380
380
|
--input_hdf5_path $HDF5_PATH \
|
381
381
|
--input_ldsc_dir $LDSC_DIR \
|
382
382
|
--output_figure_dir $WORKDIR/$SAMPLE_NAME/figures \
|
@@ -84,7 +84,7 @@ rule find_latent_representations:
|
|
84
84
|
qos=QOS
|
85
85
|
run:
|
86
86
|
command = f"""
|
87
|
-
|
87
|
+
gsmap run_find_latent_representations \
|
88
88
|
--input_hdf5_path {input.hdf5_path} \
|
89
89
|
--sample_name {wildcards.sample_name} \
|
90
90
|
--output_hdf5_path {output.hdf5_output} \
|
@@ -136,7 +136,7 @@ rule latent_to_gene:
|
|
136
136
|
benchmark: '{sample_name}/latent_to_gene/{sample_name}_gene_marker_score.feather.benchmark'
|
137
137
|
run:
|
138
138
|
command = f"""
|
139
|
-
|
139
|
+
gsmap run_latent_to_gene \
|
140
140
|
--input_hdf5_with_latent_path {input.hdf5_with_latent_path} \
|
141
141
|
--sample_name {wildcards.sample_name} \
|
142
142
|
--output_feather_path {output.feather_path} \
|
@@ -181,7 +181,7 @@ rule generate_ldscore:
|
|
181
181
|
qos=QOS
|
182
182
|
run:
|
183
183
|
command = f"""
|
184
|
-
|
184
|
+
gsmap run_generate_ldscore \
|
185
185
|
--sample_name {wildcards.sample_name} \
|
186
186
|
--chrom {wildcards.chrom} \
|
187
187
|
--ldscore_save_dir {params.ld_score_save_dir} \
|
@@ -238,7 +238,7 @@ rule spatial_ldsc:
|
|
238
238
|
partition='intel-sc3,amd-ep2'
|
239
239
|
run:
|
240
240
|
command = f"""
|
241
|
-
|
241
|
+
gsmap run_spatial_ldsc --w_file {params.w_file} --sample_name {wildcards.sample_name} --num_processes {threads} --ldscore_input_dir {params.ldscore_input_dir} --ldsc_save_dir {params.ldsc_save_dir} --sumstats_config_file {params.sumstats_config_file} {f'--all_chunk {params.all_chunk}' if params.all_chunk else ''}
|
242
242
|
"""
|
243
243
|
shell(
|
244
244
|
f'{command}'
|
@@ -264,5 +264,5 @@ rule cauchy_combination:
|
|
264
264
|
mem_mb_per_cpu=25_000
|
265
265
|
shell:
|
266
266
|
"""
|
267
|
-
|
267
|
+
gsmap run_cauchy_combination --input_hdf5_path {input.hdf5_path} --input_ldsc_dir {params.ldsc_dir} --sample_name {wildcards.sample_name} --output_cauchy_dir {params.cauchy_save_dir} --trait_name {wildcards.trait_name} --annotation {params.annotation}
|
268
268
|
"""
|
@@ -46,7 +46,7 @@ rule find_latent_representations:
|
|
46
46
|
benchmark: '{sample_name}/find_latent_representations/{sample_name}_add_latent.h5ad.benchmark'
|
47
47
|
run:
|
48
48
|
command = f"""
|
49
|
-
|
49
|
+
gsmap run_find_latent_representations \
|
50
50
|
--input_hdf5_path {input.hdf5_path} \
|
51
51
|
--sample_name {wildcards.sample_name} \
|
52
52
|
--output_hdf5_path {output.hdf5_output} \
|
@@ -98,7 +98,7 @@ rule latent_to_gene:
|
|
98
98
|
benchmark: '{sample_name}/latent_to_gene/{sample_name}_gene_marker_score.feather.benchmark'
|
99
99
|
run:
|
100
100
|
command = f"""
|
101
|
-
|
101
|
+
gsmap run_latent_to_gene \
|
102
102
|
--input_hdf5_with_latent_path {input.hdf5_with_latent_path} \
|
103
103
|
--sample_name {wildcards.sample_name} \
|
104
104
|
--output_feather_path {output.feather_path} \
|
@@ -143,7 +143,7 @@ rule generate_ldscore:
|
|
143
143
|
qos='huge'
|
144
144
|
run:
|
145
145
|
command = f"""
|
146
|
-
|
146
|
+
gsmap run_generate_ldscore \
|
147
147
|
--sample_name {wildcards.sample_name} \
|
148
148
|
--chrom {wildcards.chrom} \
|
149
149
|
--ldscore_save_dir {params.ld_score_save_dir} \
|
@@ -199,7 +199,7 @@ rule spatial_ldsc:
|
|
199
199
|
qos='huge'
|
200
200
|
run:
|
201
201
|
command = f"""
|
202
|
-
|
202
|
+
gsmap run_spatial_ldsc --w_file {params.w_file} --sample_name {wildcards.sample_name} --num_processes {threads} --ldscore_input_dir {params.ldscore_input_dir} --ldsc_save_dir {params.ldsc_save_dir} --sumstats_config_file {params.sumstats_config_file} {f'--all_chunk {params.all_chunk}' if params.all_chunk else ''}
|
203
203
|
"""
|
204
204
|
shell(
|
205
205
|
f'{command}'
|
@@ -225,5 +225,5 @@ rule cauchy_combination:
|
|
225
225
|
mem_mb_per_cpu=25_000
|
226
226
|
shell:
|
227
227
|
"""
|
228
|
-
|
228
|
+
gsmap run_cauchy_combination --input_hdf5_path {input.hdf5_path} --input_ldsc_dir {params.ldsc_dir} --sample_name {wildcards.sample_name} --output_cauchy_dir {params.cauchy_save_dir} --trait_name {wildcards.trait_name} --annotation {params.annotation}
|
229
229
|
"""
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|