奇科電腦 回奇科電腦首頁奇科電腦LPI課程資訊奇科電腦Embedded課程資訊奇科電腦Cisco課程資訊奇科電腦Programming課程資訊奇科電腦Smartphone App課程資訊
Tech Tips15  How to capture MODEL data via Perl?

Author: Ben|Date: 2009/03/27|Back to Tech Tips

Example:

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

Use Perl to capture first three data -4.467 -0.390 -0.746 of ATOM 33:

#!/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

Method

#./atom.pl 33

Provide required data after program. If for reading file content, please add open function.


Best Browse: 1024x768 Copyright 2010 GeeGo Systems, Ltd.
service@geego.com.tw|DL: 0800-296-296|3F., No.60, Zhulun St., Zhongshan Dist., Taipei City 104, Taiwan (R.O.C.)|02-2711-6373