Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 从pdb TrajCtrl中提取每个文件_Linux_Bash_Awk_Protein Database - Fatal编程技术网

Linux 从pdb TrajCtrl中提取每个文件

Linux 从pdb TrajCtrl中提取每个文件,linux,bash,awk,protein-database,Linux,Bash,Awk,Protein Database,我有一个pdb文件,它表示该文件的外观 REMARK GENERATED BY TRJCONV TITLE Protein in water t= 400.00000 REMARK THIS IS A SIMULATION BOX CRYST1 99.547 99.547 99.547 90.00 90.00 90.00 P 1 1 MODEL 1 ATOM 1 N PRO A 1 46.850

我有一个pdb文件,它表示该文件的外观

REMARK    GENERATED BY TRJCONV
TITLE     Protein in water t= 400.00000
REMARK    THIS IS A SIMULATION BOX
CRYST1   99.547   99.547   99.547  90.00  90.00  90.00 P 1           1
MODEL        1
ATOM      1  N   PRO A   1      46.850  67.380  57.030  1.00  0.00
ATOM      2  H1  PRO A   1      46.230  66.770  56.500  1.00  0.00
ATOM      3  H2  PRO A   1      46.420  68.290  56.940  1.00  0.00
ATOM      4  CD  PRO A   1      47.060  66.780  58.360  1.00  0.00
TER
ENDMDL
REMARK    GENERATED BY TRJCONV
TITLE     Protein in water t= 800.00000
REMARK    THIS IS A SIMULATION BOX
MODEL       10
ATOM      1  N   PRO A   1      46.850  67.380  57.030  1.00  0.00
ATOM      2  H1  PRO A   1      46.230  66.770  56.500  1.00  0.00
ATOM      3  H2  PRO A   1      46.420  68.290  56.940  1.00  0.00
ATOM      4  CD  PRO A   1      47.060  66.780  58.360  1.00  0.00
TER
ENDMDL
REMARK    GENERATED BY TRJCONV
TITLE     Protein in water t= 1200.00000
REMARK    THIS IS A SIMULATION BOX
MODEL      100
ATOM      1  N   PRO A   1      46.850  67.380  57.030  1.00  0.00
ATOM      2  H1  PRO A   1      46.230  66.770  56.500  1.00  0.00
ATOM      3  H2  PRO A   1      46.420  68.290  56.940  1.00  0.00
ATOM      4  CD  PRO A   1      47.060  66.780  58.360  1.00  0.00
TER
ENDMDL
我想打印信息

MODEL        1
[all info]
TER
ENDMDL
适用于所有型号。保留文件的格式。我试过这个

awk '/MODEL        1/,/ENDMDL/'  test.pdb
但是我的文件太大了,无法手动操作。我想将每个模型保存为model1、model2等,并将其坐标信息保存到ENDMDL

$ awk '/MODEL/{f="model" $2 ".pdb"} f{print > f} /ENDMDL/ {close(f);f=""}' file
$ cat model1.pdb
MODEL        1
ATOM      1  N   PRO A   1      46.850  67.380  57.030  1.00  0.00
ATOM      2  H1  PRO A   1      46.230  66.770  56.500  1.00  0.00
ATOM      3  H2  PRO A   1      46.420  68.290  56.940  1.00  0.00
ATOM      4  CD  PRO A   1      47.060  66.780  58.360  1.00  0.00
TER
ENDMDL
解释:

/MODEL/ {                 # @ MODEL
    f="model" $2 ".pdb"   # use f as flag and target filename
} 
f {                       # when there is an f
    print > f             # output to file in f
} 
/ENDMDL/ {                # at the ENDMDL
    close(f)              # close the file
    f=""                  # unset f
}

谢谢,但我想将每个模型保存为model1.pdb、model2.pdb等。如果我使用这个代码,我只得到一个文件。是的,它有助于将所有的需求添加到问题中。