俩步替换pdb中的坐标
需要 程序 pdbcat http://www.ks.uiuc.edu/Development/MDTools/pdbcat/
和 awk
structure.pdb 目标文件 我们要替换里面的的 xyz 坐标
test.log 文件中存有我们想要的坐标
第一步 运行 ./pdbcat -fields structure.pdb > test2.log
第二步 运行
awk 'NR==FNR {a[NR]=2 ; b[NR]=3;c[NR]=4 ;next } {10=a[FNR];11=b[FNR];12=c[FNR]; print }' test.log test2.log | ./pdbcat > test4.log
(只有一行命令 awk 命令里面的 2 3 4 10 11 12 前面有美元符号 打上美元符号 博客有错误 运行时候加上)
###############test.log 内容
#原子序号 坐标 xyz
70616 213.275 -33.0424 257.187
70617 212.437 -32.474 256.061
70618 33.1234 -210.743 -113.599
70619 -0.194481 -6.68951 87.0967
70620 12.811 -22.8846 149.778
70621 36.5865 20.936 -8.2984
70622 -36.5769 -105.756 30.5626
70623 61.2842 -28.9347 20.1592
70624 63.836 -110.565 89.2456
70625 -61.2931 -29.2209 -55.3702
############## test2.log 中间文件
########## 运行 ./pdbcat -fields structure.pdb > test2.log
# ATOM 70618 H2 # TIP3 W 9250 # 46.034 15.987 47.272 0.00 0.00 # WT8
# ATOM 70619 SOD # SOD I 1 # -4.312 -50.228 -30.079 0.00 0.00 # ION
# ATOM 70620 SOD # SOD I 2 # -13.804 -13.912 51.257 0.00 0.00 # ION
# ATOM 70621 SOD # SOD I 3 # 58.451 -26.441 29.616 0.00 0.00 # ION
# ATOM 70622 SOD # SOD I 4 # 34.531 28.337 11.898 0.00 0.00 # ION
# ATOM 70623 SOD # SOD I 5 # -16.702 -8.619 -0.868 0.00 0.00 # ION
# ATOM 70624 SOD # SOD I 6 # 16.874 -54.910 46.714 0.00 0.00 # ION
# ATOM 70625 SOD # SOD I 7 # 41.508 -10.072 -11.386 0.00 0.00 # ION
# ATOM 70626 SOD # SOD I 8 # -8.595 10.132 15.468 0.00 0.00 # ION
END
################test4.log 结果文件
ATOM 70618 H2 TIP3W9250 212.437 -32.474 256.061 0.00 0.00 WT8
ATOM 70619 SOD SOD I 1 33.123-210.743-113.599 0.00 0.00 ION
ATOM 70620 SOD SOD I 2 -0.194 -6.690 87.097 0.00 0.00 ION
ATOM 70621 SOD SOD I 3 12.811 -22.885 149.778 0.00 0.00 ION
ATOM 70622 SOD SOD I 4 36.586 20.936 -8.298 0.00 0.00 ION
ATOM 70623 SOD SOD I 5 -36.577-105.756 30.563 0.00 0.00 ION
ATOM 70624 SOD SOD I 6 61.284 -28.935 20.159 0.00 0.00 ION
ATOM 70625 SOD SOD I 7 63.836-110.565 89.246 0.00 0.00 ION
ATOM 70626 SOD SOD I 8 -61.293 -29.221 -55.370 0.00 0.00 ION
END
完成任务
命令解释 awk 'NR==FNR {a[NR]=2 ;b[NR]=3;c[NR]=4 ;next }
{10=a[FNR];11=b[FNR];12=c[FNR]; print }' test.log test2.log |
./pdbcat > test4.log
利用awk 处理多个文件 将第一个文件xyz坐标 存入到 a b c 的数组中 ,然后对第二个文件进行 替代
reference :http://521cto.blog.51cto.com/950229/945683 利用awk自身变量NR和FNR来处理多个文件
http://www.ks.uiuc.edu/Development/MDTools/pdbcat/
https://wap.sciencenet.cn/blog-459206-656298.html
上一篇:
胡适的小诗下一篇:
返校