特定の柱パターンの位置を見つける

特定の柱パターンの位置を見つける

少し処理した後、次のようなファイルがありました。

ALA 251
VAL 252
TYR 253
LYS 254
SER 255
ALA 256
ALA 257
MET 258
LEU 259
ASP 260
MET 261
THR 262
GLY 263
ALA 264
GLY 265
TYR 266
VAL 267
TRP 268

最初の列を「res」、2番目の列を「num」とします。 「res」は常に3文字で構成され、「num」は1〜4個の数字で構成されます。

次のように、4つの連続した「res」からなる正確な列パターンの最初の「res」に対応する位置(列「num」の値)を抽出する方法を探しています。

TYR
LYS
SER
ALA

この場合、表示されるファイルとモードに応じて、出力は次のようになります。

253

私はawkで何度も試しました。可能なようですが、今は実力が不足しています。良いユーザーがこれについて提案をしてくれてありがとう。

ベストアンサー1

しかし、テデン~の良いアドバイス、次のAWKスクリプトが操作を実行できます。

$1 == "TYR" { seq = $1; start = $2; next }
($1 == "LYS" && seq == "TYR") || ($1 == "SER" && seq == "LYS") { seq = $1; next }
$1 == "ALA" && seq == "SER" { print start }
{ seq = "" }

これは開始位置を見つけて覚えています。また、、TYR正しい順序で一致し、各ステップで前の項目を順番に記録します。一致しない行がある場合、シーケンスは消去されます。TYRLYSSERseq

おすすめ記事