我处理遗传数据。 我刚刚找到一台超级计算机来帮助进行遗传分析,但我需要将数据转换为超级计算机想要的格式:两列,一列包含染色体信息,一列包含 p 值。 p值列不能有任何字母,但我拥有的一些数据采用科学计数法,如下所示:
rs191895619 1.052e-05
rs140779862 0.4406
rs11127542 0.9771
rs112183333 0.02569
rs191067167 0.427
rs111321342 1.042e-05
将几个 E 放入其中不得包含字母的列中。
我尝试使用
grep
使用 grep "*e*" filename.txt > outputfilename.txt
以及 grep "*e-05" filename.txt > outputfilename.txt
将它们移动到自己的文件中,但两次都给了我一个空白的输出文件,即使所有 5000 行科学标注的数据都已移入它们的文件中我自己的文件,我不知道如何将数据更改为十进制表示法,除非单独编辑每一行,每个文件需要几天时间。
我可以向 plink 发出一个命令,以便它给我的数据首先不是科学计数法吗? 或者我可以在 plink 或 Unix 中使用命令将我拥有的科学记数法转换为十进制记数法?
您可以使用
awk
将科学数转换为十进制:
awk '{printf "%s %f\n", $1, $2}' file
输出:
rs191895619 0.000011
rs140779862 0.440600
rs11127542 0.977100
rs112183333 0.025690
rs191067167 0.427000
rs111321342 0.000010
您可以通过更改
%f
中的printf
部分来调整精度。
另请参阅:
FCN=-13519.4
*1 N 2.49992e+03 4.99986e+01 5.07817e-05 -1.25324e+00
2亩 6.64681e-03 1.99457e-02 6.40648e-05 6.64686e-03
3 信号 9.97351e-01 1.41046e-02 1.51177e-05 -9.28179e-01
错误防御= 0.5
全部...
协方差矩阵计算成功
FCN=-67940.6 来自 HESSE 状态=正常 16 次通话 85 次总计
EDM=8.92966e-08 策略= 1 错误矩阵准确
外部参数 内部 内部
不。 名称值错误步长值##标题##
1 N 1.00000e+04 9.99999e+01 2.39979e-05 -9.27295e-01
2亩 6.64894e-03 9.97333e-03 3.59087e-04 6.64899e-03
3 信号 9.97349e-01 7.05231e-03 1.69492e-05 -9.28179e-01
错误防御= 0.5
在此输入链接描述