从PDB文件中提取坐标

时间:2012-01-29 10:42:21

标签: perl file pdb

要从PDB文件中提取Atom行,我编写了下面的代码,当我运行程序时,该代码没有显示任何输出文件

print" Enter the file name";

$a=<>;

@arr=split(" ",$a);

if($i=0; $i< scalar @arr; $i++)

foreach $values(@arr)
{

    if($values=~/^ATOM/)
    {
        print FH1 $a;

        open(FH1,">>output.pdb")
    }
}

1 个答案:

答案 0 :(得分:2)

您不能将分割与PDB文本文件一起使用,因为字段是由位置定义的,而不是由分隔符定义的。见Coordinate File Description (PDB Format)

相反,您应该为每个字段使用substr ($line,$start,$len) $start$len的不同值(取自Coordinate File Description),或者依赖于其中一个可用的PDB解析器,例如Bioperl's