Skip to content

API Reference

This section provides detailed documentation for all public classes and functions in Graph ID.

Overview

Graph ID provides several levels of API:

flowchart TB
    subgraph High-Level
        A[GraphIDMaker]
    end
    subgraph Core
        B[GraphIDGenerator]
        C[DistanceClusteringGraphID]
    end
    subgraph Analysis
        D[StructureGraph]
        E[CompositionalSequence]
        F[DistanceClusteringNN]
    end

    A --> B
    B --> D
    B --> E
    C --> D
    C --> F

Module Structure

graph_id

The main package providing high-level interfaces:

from graph_id import GraphIDMaker, GraphIDGenerator
Class Description
GraphIDMaker Simple interface with sensible defaults
GraphIDGenerator Full-featured Python generator

graph_id.core

Core implementation modules:

from graph_id.core.graph_id import GraphIDGenerator
from graph_id.core.distance_clustering_graph_id import DistanceClusteringGraphID
Class Description
GraphIDGenerator Python implementation of Graph ID generation
DistanceClusteringGraphID Distance-based clustering variant

graph_id.analysis

Analysis utilities:

from graph_id.analysis.graphs import StructureGraph
from graph_id.analysis.compositional_sequence import CompositionalSequence
from graph_id.analysis.local_env import DistanceClusteringNN
Class Description
StructureGraph Extended pymatgen StructureGraph
CompositionalSequence Compositional sequence computation
DistanceClusteringNN DBSCAN-based neighbor detection

graph_id_cpp

C++ extension module (compiled):

from graph_id_cpp import (
    GraphIDGenerator,
    MinimumDistanceNN,
    CrystalNN,
)
Class Description
GraphIDGenerator C++ implementation (fastest)
MinimumDistanceNN C++ neighbor detection
CrystalNN C++ Voronoi-based neighbors

Quick Reference

Common Operations

Task Code
Generate ID GraphIDMaker().get_id(structure)
Compare structures gen.are_same(struct1, struct2)
Get unique structures gen.get_unique_structures(structures)
Get site info maker.get_site_ids(structure)
Batch processing gen.get_many_ids(structures, parallel=True)

Configuration Options

Option Default Description
nn MinimumDistanceNN() Neighbor detection
wyckoff False Include Wyckoff positions
topology_only False Ignore element types
loop False Use loop-based identification
diameter_factor 2 Depth multiplier
additional_depth 1 Extra traversal depth
digest_size 8 Hash output length

Detailed Documentation