私は現在、タンパク質の原子距離のファイルを扱っています。距離は同じ残基内にあるか、異なる残基の間にある。同じ残留物に距離を含むすべての線を並べ替え/検索して、個々に使用する新しいファイルに線を簡単にコピーする方法があるかどうか疑問に思います。このファイルの例は、同じ残基(164)内の距離と異なる残基(38、124)との間の距離の両方について以下に示されています。
サンプル入力は次のとおりです。
assign (resid 164 and name CD ) (resid 164 and name CE ) 4.6 2.6 2.6 !
assign (resid 38 and name CE* ) (resid 124 and name CA ) 4.6 2.6 2.6 !
...出力は次のようになります。
assign (resid 164 and name CD ) (resid 164 and name CE ) 4.6 2.6 2.6 !
2つの項目間の残基が同じであるためです。
答え1
1行に同じパターンを2回一致させるには、次のようにします。逆参照グループをキャプチャするには
前任者。
grep -E '(resid [0-9]+ ).*\1'
または
grep -E 'resid ([0-9]+ ).*resid \1'
答え2
awk '$3 == $9' yourfile
一致する残りの行が表示されます。一致しない残差のある行を取得するには、に==
変更します!=
。
答え3
特定のファイルのグループ化出力を含む@ottomeisterコードの恥ずかしい拡張
awk '{if ($3 <= $9) {print $0 >> $3"."$9".resid"} else { print $0 >> $9"."$3".resid"}}' data