Chemistry-File-PDB

 view release on metacpan or  search on metacpan

PDB.pm  view on Meta::CPAN

package Chemistry::File::PDB;

our $VERSION = '0.23';
# $Id: PDB.pm,v 1.13 2009/05/10 21:57:32 itubert Exp $

use base qw(Chemistry::File);
use Chemistry::MacroMol;
use Chemistry::Domain;
use Scalar::Util qw(weaken);
use Carp;
use strict;
use warnings;

=head1 NAME

Chemistry::File::PDB - Protein Data Bank file format reader/writer

=head1 SYNOPSIS

PDB.pm  view on Meta::CPAN

            ) = unpack "x6A5x1A2A2x1A3x1A1A4A1x3A8A8A8", $_;
	    #print "S:$symbol; N:$name; x:$x; y:$y; z:$z\n";
            $seq_n *= 1;
            if (!$domain || $seq_n != $curr_residue) {
                # new residue
                if ($is_macro) {
                    $domain = Chemistry::Domain->new(
                        parent => $mol,      name => "$res_name$seq_n",
                        type   => $res_name);
                    $mol->add_domain($domain);
                    weaken $domain;
                    $domain->attr('pdb/sequence_number', $seq_n);
                    $domain->attr('pdb/chain_id',        $chain_id);
                    $domain->attr('pdb/insertion_code',  $ins_code);
                }
                $curr_residue = $seq_n;
            }
            $symbol =~ s/ //g;
            my $atom_name = $symbol.$suff;
            $atom_name =~ s/ //g;
            $symbol = ucfirst(lc($symbol));



( run in 0.313 second using v1.01-cache-2.11-cpan-65fba6d93b7 )