我有一个像-0.26087587488489344,-0.5473357965371729,-0.27654025363442625,1.404881305053428,-0.018092484992362462,0.12383162178724855
和参考文件(如
)ATOM 5 CA ARG 1 52.310 53.420 26.030 1.00 0.00
ATOM 37 CA PRO 2 54.710 51.600 28.410 1.00 0.00
我想使用以列格式转换数组,以便最终文件如下所示
ATOM 5 CA ARG 1 -0.26087587488489344 -0.5473357965371729 -0.27654025363442625 1.00 0.00
ATOM 37 CA PRO 2 1.404881305053428 0.018092484992362462 0.12383162178724855 1.00 0.00
有关如何使用Python进行操作的任何帮助。结果文件应保持与参考相同的格式。
也应该只有五个数字,例如
-0.2609 instead of -0.26087587488489344
我想像以下
a=[-0.26087587488489344,-0.5473357965371729,-0.27654025363442625,1.404881305053428,-0.018092484992362462,0.12383162178724855]
len(a)
s = pd.DataFrame(np.array(a).reshape(2,3), columns = list("abc"))
print (s)
输出类似
a b c
0 -0.260876 -0.547336 -0.276540
1 1.404881 -0.018092 0.123832
请注意此处
:我真的不在乎这a,b,c或0,1东西,但我设法将它们放在列中。有没有更紧凑的方法来做到这一点。
之后,我用awk的bi来修复它。
.pdb组织是
ATOM 5 CA ARG 1 52.310 53.420 26.030 1.00 0.00
ATOM 37 CA PRO 2 54.710 51.600 28.410 1.00 0.00
vectors.pdb包含
-0.260876 -0.547336 -0.276540
1.404881 -0.018092 0.123832
然后我使用paste
和awk
技巧生成所需的文件
paste -d " " org.pdb vectors.pdb >combine.pdb
然后我使用了awk
awk '{print $1, $2, $3, $4, $5, $11, $12, $13, $9, $10}' combine.pdb >final.pdb
最终文件看起来像
ATOM 5 CA ARG 1 -0.260876 -0.547336 -0.276540 1.00 0.00
ATOM 37 CA PRO 2 1.404881 -0.018092 0.123832 1.00 0.00
但是与final.pdb
相比,org.pdb
的格式已被完全破坏
是否完全可以使用Python做到这一点?