如何提取笛卡尔坐标半径范围内的线条

时间:2017-11-14 07:46:47

标签: bash

我有一个格式如下的数据文件:

ATOM      4  N   ASP A   1     105.665  49.507  41.867  1.00 71.64           N  
ATOM      5  CA  ASP A   1     105.992  48.589  42.982  1.00 70.20           C  
ATOM      6  C   ASP A   1     107.024  49.191  43.936  1.00 69.70           C  

在第1行中,数字(105.665,49.507和41.867)是坐标(x,y,z)的列。如何使用指定半径内的坐标提取整行并将其输出到另一个文件中?将坐标与半径相关联的公式为:

radius = SQRT(x ^ 2 + y ^ 2 + z ^ 2)

1 个答案:

答案 0 :(得分:2)

我认为你的意思是:

awk -v R=124.44 '($7^2)+($8^2)+($9^2) < R^2' YourFile

更改R=124.44以匹配您的半径。

示例输出

ATOM      4  N   ASP A   1     105.665  49.507  41.867  1.00 71.64           N  
ATOM      5  CA  ASP A   1     105.992  48.589  42.982  1.00 70.20           C