ATOM 2422 N ARG A 310 -59.634 4.259 27.712 1.00 32.40 N
ATOM 2423 CA ARG A 310 -58.934 5.351 28.359 1.00 33.78 C
ATOM 2424 C ARG A 310 -59.159 5.313 29.887 1.00 40.42 C
ATOM 2425 O ARG A 310 -58.196 5.447 30.643 1.00 40.70 O
ATOM 2426 CB ARG A 310 -59.416 6.670 27.751 1.00 35.39 C
ATOM 2427 CG ARG A 310 -58.382 7.778 27.766 1.00 49.75 C
ATOM 2428 CD ARG A 310 -58.554 8.636 28.995 1.00 60.92 C
ATOM 2429 NE ARG A 310 -58.346 10.052 28.716 1.00 61.42 N
ATOM 2430 CZ ARG A 310 -59.309 10.894 28.361 1.00 64.62 C
ATOM 2431 NH1 ARG A 310 -59.030 12.166 28.131 1.00 35.32 N1+
ATOM 2432 NH2 ARG A 310 -60.561 10.467 28.230 1.00 51.26 N
ATOM 2433 N LYS A 311 -60.418 5.094 30.331 1.00 38.09 N
ATOM 2434 CA LYS A 311 -60.756 4.998 31.756 1.00 67.00 C
ATOM 2435 C LYS A 311 -60.629 3.565 32.296 1.00 99.40 C
ATOM 2436 O LYS A 311 -59.667 2.860 31.988 1.00 63.62 O
ATOM 2437 CB LYS A 311 -62.145 5.600 32.060 1.00 69.31 C
ATOM 2438 CG LYS A 311 -63.334 4.867 31.431 1.00 80.65 C
ATOM 2439 CD LYS A 311 -64.623 5.046 32.243 1.00 89.57 C
ATOM 2440 CE LYS A 311 -65.435 6.263 31.854 1.00100.01 C
HETATM 4916 O HOH A 401 -45.174 26.882 28.206 1.00 28.08 O
HETATM 4917 O HOH A 402 -45.312 -14.800 21.087 1.00 36.55 O
HETATM 4918 O HOH A 403 -44.489 19.577 27.744 1.00 32.34 O
HETATM 4919 O HOH A 404 -58.563 -18.339 2.320 1.00 15.21 O
HETATM 4920 O HOH A 405 -47.481 -13.457 -13.069 1.00 28.79 O
HETATM 4921 O HOH A 406 -70.032 -3.662 15.474 1.00 37.10 O
HETATM 4922 O HOH A 407 -47.170 20.057 7.101 1.00 28.32 O
HETATM 4923 O HOH A 408 -64.134 -14.419 -2.882 1.00 21.58 O
HETATM 4924 O HOH A 409 -71.311 -1.590 14.158 1.00 27.64 O
第一个字段分为ATOM和HETATM。
我想使用linux awk计算ATOM-HETATM距离
$ 7表示X轴
& 8表示Y轴
& 9表示Z轴
所以,公式是
= sqrt((X2-X1)^2+(Y2-Y1)^2+(Z2-Z1)^2)
是的
我如何计算所有ATOM-HETATM
我的目的结果类型是
ATOM 2422 - HETATM 4916 : 26.85397112
ATOM 2422 - HETATM 4917
ATOM 2422 - HETATM 4918
ATOM 2422 - HETATM 4919
ATOM 2422 - HETATM 4920
ATOM 2422 - HETATM 4921
ATOM 2422 - HETATM 4922
ATOM 2422 - HETATM 4923
ATOM 2422 - HETATM 4924
ATOM 2423 - HETATM 4916
ATOM 2423 - HETATM 4917
ATOM 2423 - HETATM 4918
ATOM 2423 - HETATM 4919
ATOM 2423 - HETATM 4920
ATOM 2423 - HETATM 4921
ATOM 2423 - HETATM 4922
ATOM 2423 - HETATM 4923
ATOM 2423 - HETATM 4924
.
.
.
.
.
ATOM 2440 - HETATM 4924
请教我 所有ATOM - HETATM距离(*我不需要ATOM-ATOM或HETATM-HETATM)
使用awk
我认为你们都是善良善良的人!
答案 0 :(得分:0)
以下假设所有HETATM
行都位于ATOM
行之后:
awk '$1=="ATOM"{x[$2]=$7;y[$2]=$8;z[$2]=$9}$1=="HETATM"{for(i in x){print "ATOM " i " - HETATM " $2 " : " sqrt((x[i]-$7)^2+(y[i]-$8)^2+(z[i]-$9)^2)}}' file
或以更易读的格式:
awk ' $1 == "ATOM" {
x[$2] = $7
y[$2] = $8
z[$2]=$9
}
$1 == "HETATM" {
for (i in x) {
print "ATOM " i " - HETATM " $2 " : " \
sqrt((x[i]-$7)^2+(y[i]-$8)^2+(z[i]-$9)^2)
}
}' file