




|
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. |