Hi all,

It will be possible to somebody interesting.

I have written Perl-module Chemistry::Harmonia.

http://search.cpan.org/dist/Chemistry-Harmonia/lib/Chemistry/Harmonia.pm

The module provides the necessary subroutines to solve some
puzzles of the general inorganic and physical chemistry.
The methods implemented in this module, are all oriented to known
rules and laws of general and physical chemistry.

Now Chemistry::Harmonia provides these subroutines:
-------------------------------------
oxidation_state --- returns a hierarchical hash-reference of hash integer  
oxidation state
        (key 'OS') and hash with the number of atoms for each element (key 
'num')  
for the
        inorganic formula of substance.
For Example:
        for 'Fe3O4'

$VAR1 = {
           'O' => {
                   'num' => [ 4 ],
                   'OS' => [ [ -2 ] ]
                  },
           'Fe' => {
                   'num' => [ 3 ],
                   'OS' => [ [ 2, 3, 3 ] ]
                  }
          };


        for '[Cr(CO(NH2)2)6]4[Cr(CN)6]3'

$VAR1 = {
           'H' => { 'num' => [ 96 ],
                    'OS' => [ [ 1 ] ]
                  },
           'O' => { 'num' => [ 24 ],
                    'OS' => [ [ -2 ] ]
                  },
           'N' => { 'num' => [ 48, 18 ],
                    'OS' => [ [ -3 ], [ -3 ] ]
                  },
           'C' => { 'num' => [ 24, 18 ],
                    'OS' => [ [ 4 ], [ 2 ] ]
                  },
           'Cr' => { 'num' => [ 4, 3 ],
                     'OS' => [ [ 3 ], [ 2 ] ]
                   }
         };

Now oxidation_state() is checked over 6200 unique inorganic substances.

-------------------------------------
parse_chem_mix --- parses mix of_substances (usually chemical equation) to  
arrays of
        the reactants (initial substances) and products (substances formed in
        the chemical reaction).

-------------------------------------
good_formula --- parses 'abracadabra' to array reference of "good"  
chemical formula(s).
        The "good" formula it does NOT mean chemically correct. The subroutine
        oxidation_state() will help with a choice chemically correct formula.

-------------------------------------
prepare_mix --- forms the chemical mix (equation) from ref to array of  
arrays
        reactants and products, i.e. is parse_chem_mix antipode.

-------------------------------------
class_cir_brutto --- calculates Unique Common Identifier of Reaction
        with stoichiometry coefficients and brutto (gross) formulas of 
substances.

For example: $reaction = '1 H2O + 1 CO2 --> 1 H2CO3';

  $VAR1 = [
           'CHO',
           1334303561,
           {
             'H2CO3' => 'C1H2O3',
             'CO2' => 'C1O2',
             'H2O' => 'H2O1'
           }
         ];


CIR is a 32 bit CRC of normalized chemical equation, generating the same  
CRC value as the POSIX GNU cksum program. The returned CIR will always be  
a non-negative integer in the range 0..2^32-1, i.e. 0..4,294,967,295.

The class_cir_brutto() protesting CLASS-CIR over 22,100 unique inorganic  
reactions.

-------------------------------------
ttc_reaction --- calculates Tactico-Technical characteristics (TTC) of  
reaction,
        i.e. quantity SAR: (s)ubstance, (a)toms and (r)ank of reaction.

Thanks,
Alessandro Gorohovski

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a 
definitive record of customers, application performance, security 
threats, fraudulent activity and more. Splunk takes this data and makes 
sense of it. Business sense. IT sense. Common sense.. 
http://p.sf.net/sfu/splunk-d2d-c1
_______________________________________________
Blueobelisk-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/blueobelisk-discuss

Reply via email to