CyclesDetection

use Graph::CyclesDetection;

use Graph::CyclesDetection qw(:all);

**CyclesDetection** class provides the following methods:

new, Copy, DetectCycles, DetectCyclesUsingCollapsingPathGraphMethodology, GetAllCyclicPaths, GetIndependentCyclicPaths, StringifyCyclesDetection

Cycles in a **Graph** are detected using collapsing path graph [Ref 31] methodology.

**new**-
$NewCyclesDetection = new Graph::CyclesDetection($Graph);
Using specified

*Graph*,**new**method creates a new**CyclesDetection**object and returns newly created**CyclesDetection**object. **Copy**-
$NewCyclesDetection = $CyclesDetection->Copy();
Copies

*CyclesDetection*and its associated data using**Storable::dclone**and returns a new**CyclesDetection**object. **DetectCycles**-
$CyclesDetection->DetectCycles();
Detects all cycles in a graph and returns

*CyclesDetection*. **DetectCyclesUsingCollapsingPathGraphMethodology**-
$CyclesDetection->DetectCyclesUsingCollapsingPathGraphMethodology();
Detects all cycles in a graph using collapsing path graph [Ref 31] methodology and returns

*CyclesDetection*. **GetAllCyclicPaths**-
@AllCyclicPaths = $CyclesDetection->GetAllCyclicPaths();

$NumOfAllCyclicPaths = $CyclesDetection->GetAllCyclicPaths();Returns an array containing references to all cyclic paths identified during cycles detection. In scalar text, number of cycles is returned.

**GetIndependentCyclicPaths**-
@IndependentCyclicPaths = $CyclesDetection->GetAllCyclicPaths();

$NumOfIndependentCyclicPaths = $CyclesDetection->GetAllCyclicPaths();Returns an array containing references to independent cyclic paths identified during cycles detection. In scalar text, number of cycles is returned.

A set of independent cycles identified during cycles detection doesn't correspond to the basis set of rings or smallest set of smallest rings (SSSR) [ Refs 29-30 ]; instead, set of cycles indentified as independent cycles simply correpond to cycles which contain no other cycle as their subcycles and can't be described as a linear combination of smaller cycles. And it also happens to contain all the rings in basis set of rings and SSSR. In other words, it's a superset of a basis set of cycles and SSSR. For example, six four membered cycles are indentified for cubane, which is one more than the basis set of cycles.

**StringifyCyclesDetection**-
$String = $CyclesDetection->StringifyCyclesDetection();
Returns a string containing information about

*CyclesDetection*object.

Graph.pm, Path.pm, PathGraph.pm

Copyright (C) 2023 Manish Sud. All rights reserved.

This file is part of MayaChemTools.

MayaChemTools is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.