说实话我以前都是用R的,R很好,但是不太方便接自动化,而且自从出现了JupyterLab这种东西以后,我觉得还是得多用用Python。人生苦短,我选Python。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import pandas as pd

file_name = 'foo.csv'
df = pd.read_csv(file_name)

evalue = df.columns[-1]
snp = df.columns[0]
chr = df.columns[1]
pos = df.columns[2]

df1 = df[df[evalue] < 2.03e-6] # 根据GEC阈值定义
df2 = df1.loc[:, [chr, pos]]

df2['POS1'] = df2[pos] - 100000 # 根据LD decay & LD block 定义
df2['POS2'] = df2[pos] + 100000

min_value_evalue_minus_1 = df2['POS1'].min()
if min_value_evalue_minus_1 < 0:
df2['POS1'] = df2['POS1'].apply(lambda x: max(x, 0))

df2.drop(pos, axis=1, inplace=True)
df2.to_csv('log2CdU.FarmCPU.out.csv',index=False)
df2