Am I right in assuming that these lines are produced by some other program or machine? So there is a certain format it adheres to? We have to analyse the format.Guessing from what you gave here, it *seems* as if every record starts with ATOM and goes like this: ATOM 16 NZ LYS A 7 -19.664 15.558 -9.499 1.00 18.80 N
ATOM 17 H LYS A 7 -19.967 21.014 -14.224 1.00 0.00 H
I have added some spaces to align the fields.If my guess is correct, you need to find lines which do not have a "H" in the third field. use strict;
while (<DATA>) {
print if (split ' ')[2] ne 'H';
}
__DATA__
ATOM 16 NZ LYS A 7 -19.664 15.558 -9.499 1.00 18.80 N
ATOM 17 H LYS A 7 -19.967 21.014 -14.224 1.00 0.00 H
Update: I leave it up to you to apply this to the "HETATM" file.
CountZero A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James
|