vortex5566的个人博客分享 http://blog.sciencenet.cn/u/vortex5566

博文

秀个awk 代码 替换pdb的坐标

已有 4589 次阅读 2013-1-24 23:24 |个人分类:科研|系统分类:科研笔记

 
俩步替换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

上一篇:胡适的小诗
下一篇:返校
收藏 IP: 211.86.157.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-3-29 20:48

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部