Interface CyclicVertexSearch


public interface CyclicVertexSearch
Describes a search to identify vertices which belong to elementary cycles and if those cycles are isolated or are part of a fused system. We define a cycle as isolated if it edge disjoint with all other cycles. This corresponds to the isolated and spiro rings of a chemical structures.
Author:
John May
Source code:
main
Belongs to CDK module:
core
  • Method Summary

    Modifier and Type
    Method
    Description
    int[]
    The set of cyclic vertices.
    boolean
    cyclic(int v)
    Returns true if the vertex v is in a cycle.
    boolean
    cyclic(int u, int v)
    Is the edge between the two vertices u and v in a cycle?
    int[][]
    Construct the sets of vertices which belong to fused cycle systems (share at least one edge).
    int[][]
    Construct the sets of vertices which belong to isolated cycles.
    int
    Returns the number of cycles (circuit rank, frère jacques number, num SSSR).
    int[]
    Build an indexed lookup of vertex color.
  • Method Details

    • numCycles

      int numCycles()
      Returns the number of cycles (circuit rank, frère jacques number, num SSSR).
      Returns:
      number of cycles
    • cyclic

      boolean cyclic(int v)
      Returns true if the vertex v is in a cycle.
      Parameters:
      v - a vertex identifier by index
      Returns:
      whether the vertex is in a cycle
    • cyclic

      boolean cyclic(int u, int v)
      Is the edge between the two vertices u and v in a cycle?
      Parameters:
      u - a vertex
      v - another vertex
      Returns:
      whether the edge is cycle
    • cyclic

      int[] cyclic()
      The set of cyclic vertices.
      Returns:
      the cyclic vertices of the molecule.
    • isolated

      int[][] isolated()
      Construct the sets of vertices which belong to isolated cycles. Each row in the array describes a set of cyclic vertices which is edge disjoint with all other elementary cycles.
      Returns:
      vertices belonging to the isolated rings
    • fused

      int[][] fused()
      Construct the sets of vertices which belong to fused cycle systems (share at least one edge). Each row in the array describes a set of vertices in a separate fused system. Each fused system is edge disjoint with every other fused system.
      Returns:
      vertices belonging to the fused cycles
    • vertexColor

      int[] vertexColor()
      Build an indexed lookup of vertex color. The vertex color indicates which cycle a given vertex belongs. If a vertex belongs to more then one cycle it is colored '0'. If a vertex belongs to no cycle it is colored '-1'.
      Returns:
      vertex colors