我有一个包含许多文件的文件夹,每个文件都被命名为xxx.pqr,其中包含一个蛋白质结构记录。编写一个bash脚本,将每个pqr文件中的蛋白质移动到原点(0,0,0)。将每个包含重定位蛋白的新文件命名为xxxx.pqr.centered。
我使用了" awk"将蛋白质移动到原来的位置然而我在尝试为每个文件创建一个xxx.pqr.centered时遇到了一些麻烦,这是我的代码,我真的不知道最后几个字:
awk -v n=0 -v sumx=0 -v sumy=0 -v sumz=0 ' { if($1 == "ATOM") sumx=sumx+$6;sumy=sumy+$7;sumz=sumz+$8;n=n+1; if($1 == "ATOM") printf("%s%8.3f%8.3f%8.3f%s\n", substr($0,1,30),$6-(sumx/n),$7-(sumy/n),$8-(sumz/n),substr($0,55,100))}' *.pqr > **????.centered**
答案 0 :(得分:0)
这是我的答案,因为我没有你的.pqr
文件我无法真正测试它但它应该可以工作(我还通过合并和使用缩短的表格来改进awk
命令需要的话):
for file in /path/to/files/*.pqr
do
awk -v n=0 -v sumx=0 -v sumy=0 -v sumz=0
' {
if($1 == "ATOM") {
sumx+=$6;sumy+=$7;sumz+=$8;n++;
printf("%s%8.3f%8.3f%8.3f%s\n", substr($0,1,30),$6-(sumx/n),$7-(sumy/n),$8-(sumz/n),substr($0,55,100))
}
} ' $file > ${file}.centered
done