package ChemicalReaction @ISA = qw() sub new my ($module, $pDBFiles, $BaseDBDir) = @_; return $this; sub DESTROY my ($this) = @_; $this->SUPER::DESTROY( sub Initialize my ($this, $InitializeDB) = @_; sub ClearHashes my ($this) = @_; sub pDBs sub pDBs { my ($this)= return $this->{pDBs}; sub DB sub DB { my ($this, $index)= return $this->{pDBs}->[$index]; sub AtomDB sub AtomDB { my ($this)= return $this->{pAtomDB}; sub ElementaryDB sub ElementaryDB { my ($this)= return $this->{pElementaryDB}; sub CompoundDB sub CompoundDB { my ($this)= return $this->{pCompoundDB}; sub InitialReaction sub InitialReaction { my ($this)= return $this->{Initial} ; sub FinalReaction sub FinalReaction { my ($this)= return $this->{Final} ; sub Reagents sub Reagents { my ($this)= return $this->{Initial} ; sub Products sub Products { my ($this)= return $this->{Final} ; sub ReagentsHash sub ReagentsHash { my ($this)= return $this->{ReagentsHash} ; sub ProductsHash sub ProductsHash { my ($this)= return $this->{ProductsHash} ; sub pCompounds my ($this, $key) = @_; return $this->{ProductsHash}->{pCompounds}; return $this->{ReagentsHash}->{pCompounds}; sub nCompound my ($this, $key, $compound) = @_; return $pHash->{$compound}{n}; sub ElementsArray my ($this, $key) = @_; return $this->pElements($key); sub pElements my ($this, $key) = @_; return $this->{ProductsHash}->{pElements}; return $this->{ReagentsHash}->{pElements}; sub nElement my ($this, $key, $element) = @_; return $pHash->{$element}{nElement}; sub MolcularWeight my ($this, $Compound) = @_; return $w; sub IsIncluded my ($this, $key, $pArray, $CaseSensitive) = @_; return Utils::IsIncludedInArray($key, $pArray, $CaseSensitive); sub SplitReaction my ($this, $Reaction) = @_; return Utils::Split("=>?", $Reaction); sub BuildReactionFromArrays my ($this, $pCompounds, $pComposition, $format, $min, $Sort) = @_; return $a cmp $b; return $s; sub SortChemicalFormula my ($this, $formula) = @_; return $s; return join('', @a); sub ReactionToCompounds my ($this, $reaction) = @_; return (\@Chemicals, \@Compounds, \@n); sub CompoundToElements my ($this, $Compound, $Debug) = @_; return ([keys %nElement], [values %nElement]); return (\@Element, \@n); sub ExtractPossibleCompounds my ($this, $pElements, $pCompounds) = @_; return @PC; sub AnalyzeAReaction my ($this, $key, $reaction) = @_; sub Analyze my ($this, $Reaction, $IsPrint) = @_; return (); sub ListCompounds my ($this) = @_; sub CheckMassBalance my ($this, $IsPrint) = @_; return 0; return 0; return 1; sub GetDBHash my ($this, $Compound) = @_; return $pHash if($pHash and $pHash->{Status} eq ''); return undef; sub SearchDBHit my ($this, $RegExp) = @_; return @Hit; sub MakePossibleComposition my ($this, $pReagentElements, $pCompounds, $MaxNInReaction, $IsPrint) = @_; return $this->RepairComposition(\@Composition, $pReagentElements, $pCompounds, $IsPrint); return \@Composition; sub RepairComposition my ($this, $pComposition, $pReagentElements, $pCompounds, $IsPrint) = @_; return $pComposition; sub nElementByArray my ($this, $pCompounds, $pComposition, $IsPrint) = @_; return \%nFinalElement; sub CalTotalEnergyByArray my ($this, $pCompounds, $pComposition, $IsPrint) = @_; return $Etot; sub CalTotalEnergy my ($this, $Reaction, $IsPrint) = @_; return $EReaction; sub CalEForm my ($this) = @_; return (); return (); return (); return (); return (); return ($EForm, $EFormInitial, $EFormFinal); sub ShowSpeculatedSpecies my ($this, $Compound) = @_; sub ReadDBFile my ($this, $DBFile, $BaseDBDir, $IsPrint) = @_; return undef; return $csv; sub ReadDBFiles my ($this, $pDBFiles, $BaseDBDir) = @_; return undef; return $this->{pDBs}; sub PrintElements my ($this, $key) = @_; sub PrintnElements my ($this, $key) = @_;