我使用以下代码生成3D坐标(x,y,z)到文件。以预定义格式打印输出Perl
for (my $x = 0.000; $x < 4.200; $x += 1.400) {
for (my $y = 0.000; $y < 4.200; $y += 1.400) {
for (my $z = 0.000; $z < 4.200; $z += 1.400) {
push @arr_grid, "$x $y $z\n";
}
}
}
foreach (@arr_grid) {
say "HETATM 1 O HOH 1 $_ O";
}
现在,我的问题是,我想用指数值像是一门精确的格式(PDB)输出,
1-6 7-11 13-16 18-20 23-26 31-38 39-46 47-54 77-78
(Name) (S.No) (x) (y) (z)
HETATM 1 O HOH 1 -8.863 16.944 14.289 N
HETATM 100 O HOH 16 -15.352 11.525 5.325 N
HETATM 117 O HOH 16 -12.954 9.717 5.182 C
HETATM 126 O HOH 17 -19.225 11.667 -0.391 C
HETATM 1005 O HOH 97 9.246 23.287 11.503 O
这里的X,Y,Z坐标shoulb是数据类型为real(8.2),其他人是正确的。 x,y,z值不是从程序生成的值。我放置了任意值。请帮帮我。与一些适当的变化
push @arr_grid, "$x $y $z\n";
:
我不明白你的问题。 Perl不是一种严格类型的语言,因此它本身不具有“数据类型真实”的概念。 – 2012-01-08 03:04:43
@JackManey,que是我想要得到输出,如我所示,我在第一行提到索引值,我不需要输出中的前两行。为了理解,我写了前两行。 – gthm 2012-01-08 03:12:21
有几个读取/写入PDB文件的perl模块。看看https://metacpan.org/module/Chemistry::File::PDB – JRideout 2012-01-08 03:28:05