OK論壇

 找回密碼
 註冊
查看: 1064|回復: 0

如何用 Perl 抓出 MODEL 中的數據並輸出在畫面上?

 關閉 [複製鏈接]

該用戶從未簽到

發表於 2009-6-6 18:19:08 | 顯示全部樓層 |閱讀模式
MODEL 1
ATOM 26 OE2 GLU A 2 -2.046 3.921 2.794 1.00 0.00 O
ATOM 27 H GLU A 2 -5.157 -0.031 1.985 1.00 0.00 H
ATOM 28 HA GLU A 2 -6.235 2.200 0.396 1.00 0.00 H
ATOM 29 HB2 GLU A 2 -3.323 1.485 0.795 1.00 0.00 H
ATOM 30 HB3 GLU A 2 -3.911 2.688 -0.344 1.00 0.00 H
ATOM 31 HG2 GLU A 2 -4.834 3.988 1.515 1.00 0.00 H
ATOM 32 HG3 GLU A 2 -4.221 2.788 2.649 1.00 0.00 H
ATOM 33 N SER A 3 -4.467 -0.390 -0.746 1.00 0.00 N
ATOM 34 CA SER A 3 -4.330 -1.404 -1.823 1.00 0.00 C

用 Perl 抓出 ATOM 33 的前三個數據 -4.467 -0.390 -0.746,並輸出在畫面上

#!/usr/bin/perl

$atom = {};

while ( )
{
my @atom = split(/\s+/);
next if $atom[ 0 ] !~ /atom/i;
$atom->{ $atom[ 1 ] } = [ $atom[6], $atom[7], $atom[8] ];
}

foreach $num ( keys %$atom )
{
foreach ( 0 .. 2 )
{
print "$atom->{ $num }->[ $_ ] " if $num == $ARGV[0];
}
}

__DATA__

MODEL 1
ATOM 26 OE2 GLU A 2 -2.046 3.921 2.794 1.00 0.00 O
ATOM 27 H GLU A 2 -5.157 -0.031 1.985 1.00 0.00 H
ATOM 28 HA GLU A 2 -6.235 2.200 0.396 1.00 0.00 H
ATOM 29 HB2 GLU A 2 -3.323 1.485 0.795 1.00 0.00 H
ATOM 30 HB3 GLU A 2 -3.911 2.688 -0.344 1.00 0.00 H
ATOM 31 HG2 GLU A 2 -4.834 3.988 1.515 1.00 0.00 H
ATOM 32 HG3 GLU A 2 -4.221 2.788 2.649 1.00 0.00 H
ATOM 33 N SER A 3 -4.467 -0.390 -0.746 1.00 0.00 N
ATOM 34 CA SER A 3 -4.330 -1.404 -1.823 1.00 0.00 C

使用方式

#./atom.pl 33

程式後面要給所要取得的數字;如果要讀取檔案內容的話,請自行加入open的函數
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|手機版|小黑屋|OK討論區

GMT+8, 2025-6-24 10:56 PM , Processed in 0.428030 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表