Skip to content

Commit c3e7342

Browse files
committed
fix SNP index not found
1 parent 00ff149 commit c3e7342

File tree

3 files changed

+14
-11
lines changed

3 files changed

+14
-11
lines changed

src/GPS/generate_ldscore.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,10 +249,12 @@ def calculate_ldscore_use_SNP_Gene_weight_matrix_by_chunk(self,
249249
ldscore_chr_chunk = ldscore_chr_chunk if self.config.keep_snp_root is None else ldscore_chr_chunk[
250250
self.keep_snp_mask]
251251
# save for each chunk
252-
pd.DataFrame(ldscore_chr_chunk,
252+
df=pd.DataFrame(ldscore_chr_chunk,
253253
index=self.snp_name,
254254
columns=mk_score_chunk.columns,
255-
).reset_index().to_feather(save_file_name)
255+
)
256+
df.index.name='SNP'
257+
df.reset_index().to_feather(save_file_name)
256258

257259
def calculate_M_use_SNP_gene_pair_dummy_by_chunk(self,
258260
mk_score_chunk,

src/GPS/regression_read.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ def _read_ref_ld_v2(ld_file):
129129
ref_ld = pd.concat(
130130
[pd.read_feather(f'{file}{chr}{suffix}{s}') for chr in range(1, 23)], axis=0
131131
)
132+
# set first column as index
133+
ref_ld.rename(columns={'index': 'SNP'}, inplace=True)
132134
ref_ld.set_index('SNP', inplace=True)
133135
return ref_ld
134136

test/GPS-snakemake-workflow-macaque.smk

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@ import numpy as np
33
workdir: '/storage/yangjianLab/chenwenhao/projects/202312_GPS/data/macaque/representative_slices2'
44
# workdir: '/storage/yangjianLab/chenwenhao/projects/202312_GPS/data/GPS_test/macaque'
55
sample_name = "Cortex_151507"
6-
# chrom = "all"
7-
chrom = range(1,23)
6+
chrom = "all"
7+
# chrom = range(1,23)
88
trait_names = [
99
'ADULT1_ADULT2_ONSET_ASTHMA'
1010
]
1111
root = "/storage/yangjianLab/songliyang/SpatialData/Data/Brain/macaque/Cell/processed/h5ad"
1212
sample_names = [file.strip().split('.')[0]
1313
for file in open(f'{root}/representative_slices2').readlines()]
1414
sample_names = '''
15-
T33_macaque1
16-
'''.strip().split('\n')
15+
T33_macaque1 T44_macaque1 T82_macaque1 T97_macaque1 T125_macaque1 T127_macaque1 T129_macaque1 T131_macaque1 T135_macaque1 T137_macaque1 T139_macaque1
16+
'''.strip().split()
1717
annotation = "SubClass"
1818
data_type = "SCT"
19-
# sample_names = ['T121_macaque1']
19+
sample_names = ['T135_macaque1']
2020
num_processes = 20
2121

2222
rule all:
@@ -143,7 +143,6 @@ rule generate_ldscore:
143143
done='{sample_name}/generate_ldscore/{sample_name}_generate_ldscore_chr{chrom}.done'
144144
params:
145145
ld_score_save_dir='{sample_name}/generate_ldscore',
146-
chrom="all",
147146
gtf_file="/storage/yangjianLab/songliyang/ReferenceGenome/GRCh37/gencode.v39lift37.annotation.gtf",
148147
bfile_root="/storage/yangjianLab/sharedata/LDSC_resource/1000G_EUR_Phase3_plink/1000G.EUR.QC",
149148
keep_snp_root="/storage/yangjianLab/sharedata/LDSC_resource/hapmap3_snps/hm",
@@ -159,7 +158,7 @@ rule generate_ldscore:
159158
qos='huge'
160159
shell:
161160
"""
162-
GPS run_generate_ldscore --sample_name {wildcards.sample_name} --chrom all --ldscore_save_dir {params.ld_score_save_dir} --gtf_file {params.gtf_file} --mkscore_feather_file {input.mkscore_feather_file} --bfile_root {params.bfile_root} --keep_snp_root {params.keep_snp_root} --window_size {params.window_size} --spots_per_chunk {params.spots_per_chunk} --ld_wind {params.ld_wind} --ld_unit {params.ld_unit}
161+
GPS run_generate_ldscore --sample_name {wildcards.sample_name} --chrom {wildcards.chrom} --ldscore_save_dir {params.ld_score_save_dir} --gtf_file {params.gtf_file} --mkscore_feather_file {input.mkscore_feather_file} --bfile_root {params.bfile_root} --keep_snp_root {params.keep_snp_root} --window_size {params.window_size} --spots_per_chunk {params.spots_per_chunk} --ld_wind {params.ld_wind} --ld_unit {params.ld_unit}
163162
touch {output.done}
164163
"""
165164

@@ -174,8 +173,8 @@ def get_ldscore(wildcards):
174173
return f"{wildcards.sample_name}/generate_ldscore/{wildcards.sample_name}_generate_ldscore_chr{chrom}.done"
175174
else:
176175
assert tuple(chrom) == tuple(range(1,23)), "chrom must be all or range(1,23)"
177-
return [f"{wildcards.sample_name}/generate_ldscore/{wildcards.sample_name}_generate_ldscore_chr{chrom}.done" for
178-
chrom in chrom]
176+
return [f"{wildcards.sample_name}/generate_ldscore/{wildcards.sample_name}_generate_ldscore_chr{c}.done" for
177+
c in chrom]
179178

180179

181180
rule spatial_ldsc:

0 commit comments

Comments
 (0)