logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Chemistry::Bond - Chemical bonds as objects in molecules

Author

       Ivan Tubert-Brohman <itub@cpan.org>

Description

       This module includes objects to describe chemical bonds.  A bond is defined as a list of atoms (typically
       two), with some associated properties.

   BondAttributes
       In addition to common attributes such as id, name, and type, bonds have the order attribute. The bond
       order is a number, typically the integer 1, 2, 3, or 4.

Methods

       Chemistry::Bond->new(name => value, ...)
           Create a new Bond object with the specified attributes. Sensible defaults are used when possible.

       $bond->order()
           Sets or gets the bond order.

       $bond->length
           Returns  the length of the bond, i.e., the distance between the two atom objects in the bond. Returns
           zero if the bond does not have exactly two atoms.

       $bond->aromatic($bool)
           Set or get whether the bond is considered to be aromatic.

       $bond->print
           Convert the bond to a string representation.

       $bond->atoms()
           If called with no parameters, return a list of atoms in the bond.   If  called  with  a  list  (or  a
           reference  to  an  array)  of atom objects, define the atoms in the bond and call $atom->add_bond for
           each atom in the list. Note: changing the atoms in a bond may have strange side effects; it is  safer
           to treat bonds as immutable except with respect to properties such as name and type.

       $bond->delete
           Calls  $mol->delete_bond($bond) on the bond's parent molecule. Note that a bond should belong to only
           one molecule or strange things may happen.

Name

       Chemistry::Bond - Chemical bonds as objects in molecules

See Also

       Chemistry::Mol, Chemistry::Atom, Chemistry::Tutorial

Source Code Repository

       <https://github.com/perlmol/Chemistry-Mol>

Synopsis

           use Chemistry::Bond;

           # assuming we have molecule $mol with atoms $a1 and $a2
           $bond = Chemistry::Bond->new(
               id => "b1",
               type => '=',
               atoms => [$a1, $a2]
               order => '2',
           );
           $mol->add_bond($bond);

           # simpler way of doing the same:
           $mol->new_bond(
               id => "b1",
               type => '=',
               atoms => [$a1, $a2]
               order => '2',
           );

See Also