读取 plink 的输出模型

Read output model of plink

任务

我需要使用 plink 软件进行关联研究。输入所有数据并进行所有计算后,我得到一个文件/table,如下所示:

CHR SNP                           A1 A2 TEST  AFF     UNAFF   CHISQ     DF P
1   rs10458597                    T  C  TREND 4/230   13/973  0.1565    1  0.6924
1   rs2185539                     T  C  TREND 7/231   0/1000  29.75     1  4.92e-08
1   rs11240767                    T  C  TREND 10/228  15/985  6.206     1  0.01273
1   rs12564807                    G  A  TREND 0/238   0/1000  NA        NA NA
1   rs3131972                     A  G  TREND 82/156  259/741 6.618     1  0.0101
1   rs3131969                     A  G  TREND 86/150  253/733 9.629     1  0.001916
1   rs3131967                     T  C  TREND 73/157  212/768 9.407     1  0.002162
1   rs1048488                     C  T  TREND 60/178  203/791 2.435     1  0.1187
1   rs12562034                    A  G  TREND 60/172  256/734 1.008e-06 1  0.9992

我只对 p-values(最后一列)感兴趣,需要生成一个 Q-Q-Plot。为此,我想用 pandas 读取文件,但找不到正确读取文件的方法。

之前的尝试

我尝试使用 Excel 来解释文件并生成正确的 .csv 但是由于文件太大,Excel 总是无法这样做并且崩溃/只生成一个table.

的第三个

我也尝试过使用下面的命令来读取带有pandas的文件,但是我得到了错误的输出:

命令

df = pd.read_csv(path, sep='\t', engine='python')  # attempt 1
df = pd.read_csv(path, sep='\t', lineterminator='\r')  # attempt 2

输出:

尝试 pd.read_fwf():

df = pd.read_fwf(r'c:\test\test_file.txt')
print(df)

输出:

   CHR         SNP A1 A2   TEST     AFF    UNAFF      CHISQ   DF             P
0    1  rs10458597  T  C  TREND   4/230   13/973   0.156500  1.0  6.924000e-01
1    1   rs2185539  T  C  TREND   7/231   0/1000  29.750000  1.0  4.920000e-08
2    1  rs11240767  T  C  TREND  10/228   15/985   6.206000  1.0  1.273000e-02
3    1  rs12564807  G  A  TREND   0/238   0/1000        NaN  NaN           NaN
4    1   rs3131972  A  G  TREND  82/156  259/741   6.618000  1.0  1.010000e-02
5    1   rs3131969  A  G  TREND  86/150  253/733   9.629000  1.0  1.916000e-03
6    1   rs3131967  T  C  TREND  73/157  212/768   9.407000  1.0  2.162000e-03
7    1   rs1048488  C  T  TREND  60/178  203/791   2.435000  1.0  1.187000e-01
8    1  rs12562034  A  G  TREND  60/172  256/734   0.000001  1.0  9.992000e-01