Author image Ivan Tubert-Brohman


Chemistry::MacroMol - Perl module for macromolecules


    use Chemistry::MacroMol;

    my $mol = Chemistry::MacroMol->new(name => 'my big molecule');
    $mol->new_domain(name => "ASP"); # see Chemistry::Domain for details
    my @domains = $mol->domains;


For the purposes of this module, a macromolecule is just a molecule that consists of several "domains". For example, a protein consists of aminoacid residues, or a nucleic acid consists of bases. Therefore Chemistry::MacroMol is derived from Chemistry::Mol, with additional methods to handle the domains.

The way things are currently structured, an atom in a macromolecule "belong" both to the MacroMol object and to a Domain object. This way you can get all the atoms in $protein via $protein->atoms, or to the atoms in residue 123 via $protein->domain(123)->atoms.


Remember that this class inherits all the methods from Chemistry::Mol. They won't be repeated here.

Chemistry::MacroMol->new(name => value, ...)

Create a new MacroMol object with the specified attributes. You can use the same attributes as for Chemistry::Mol->new.

$mol->add_domain($domain, ...)

Add one or more Domain objects to the molecule. Returns the last domain added.


Returns the domain class that a macromolecule class expects to use by default. Chemistry::MacroMol objects return "Chemistry::Domain", but subclasses will likely override this method.

$mol->new_domain(name => value, ...)

Shorthand for $mol->add_domain($mol->domain_class->new(parent => $mol, name => value, ...));

$mol->domains($n1, ...)

Returns the domains with the given indices, or all by default. NOTE: the indices start from one (1), not from zero.




Chemistry::Domain, Chemistry::Mol


Ivan Tubert, <>


Copyright 2004 by Ivan Tubert

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.