我使用以下代碼生成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