Skip to content

Commit 4b11c0c

Browse files
committed
update to newer pandas versions
1 parent 357add2 commit 4b11c0c

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

polypred.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ def load_betas_files(betas_file, verbose=True):
190190

191191
#subset SNPs according to extract file
192192
if args.extract is not None:
193-
df_extract = pd.read_csv(args.extract, header=None, squeeze=True)
193+
df_extract = pd.read_csv(args.extract, header=None).squeeze()
194194
df_betas = df_betas.loc[df_betas['SNP'].isin(df_extract)]
195195
if df_betas.shape[0]==0:
196196
raise ValueError('No SNPs remained after applying --extract')
@@ -250,10 +250,12 @@ def computs_prs_all_files(args, betas_file, disable_jackknife=False, keep_file=N
250250
df_prs_sum = df_prs_file
251251
else:
252252
assert np.all(df_prs_sum.index == df_prs_file.index)
253-
for c in df_prs_file.columns:
254-
if not c.startswith('SCORESUM'): continue
255-
if not c in df_prs_sum.columns: df_prs_sum[c] = 0
256-
df_prs_sum[c] += df_prs_file[c]
253+
list_shared_columns = [c for c in df_prs_sum.columns.intersection(df_prs_file.columns).tolist() if c.startswith('SCORESUM')]
254+
list_new_columns = [c for c in df_prs_file.columns if c not in list_shared_columns and c.startswith('SCORESUM')]
255+
if len(list_shared_columns) > 0:
256+
df_prs_sum[list_shared_columns] += df_prs_file[list_shared_columns]
257+
if len(list_new_columns) > 0:
258+
df_prs_sum = pd.concat([df_prs_sum, df_prs_file[list_new_columns]], axis=1)
257259

258260
#compute jackknife-block PRS
259261
if args.num_jk > 0 and not disable_jackknife:
@@ -354,7 +356,7 @@ def compute_prs(args):
354356
#if there's more than one beta, take the linear combination
355357
else:
356358
mixweights_file = args.mixweights_prefix +'.mixweights'
357-
s_mixweights = pd.read_csv(mixweights_file, delim_whitespace=True, squeeze=True)
359+
s_mixweights = pd.read_csv(mixweights_file, delim_whitespace=True).squeeze()
358360
if np.any(s_mixweights.index[:-1] != args.betas.split(',')):
359361
raise ValueError('The provided betas file do not match the mix weights file')
360362
assert s_mixweights.index[-1] == 'intercept'
@@ -369,7 +371,7 @@ def compute_prs(args):
369371

370372
#handle jackknife
371373
set_jk_columns = set([c for c in df_prs_all.columns if '.jk' in c])
372-
df_prs_sum_jk = pd.DataFrame(index=df_prs_all.index, columns=set_jk_columns)
374+
df_prs_sum_jk = pd.DataFrame(index=df_prs_all.index, columns=list(set_jk_columns))
373375
if df_prs_sum_jk.shape[1] > 1:
374376
for jk_column in set_jk_columns:
375377
if args.betas.count(',') == 0:

0 commit comments

Comments
 (0)