要从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")
}
}
答案 0 :(得分:2)
您不能将分割与PDB文本文件一起使用,因为字段是由位置定义的,而不是由分隔符定义的。见Coordinate File Description (PDB Format)。
相反,您应该为每个字段使用substr ($line,$start,$len)
$start
和$len
的不同值(取自Coordinate File Description),或者依赖于其中一个可用的PDB解析器,例如Bioperl's。