Building a MatGraphDB Example with MPNearHull Data¶
In this notebook, we demonstrate how to build a materials graph database using the MatGraphDB framework with the MPNearHull dataset.
The steps include:
Importing required libraries and setting up configuration paths.
Downloading and extracting the dataset (and raw materials data if needed).
Creating a MatGraphDB instance.
Initializing node generators.
Initializing edge generators.
Verifying the database setup.
Follow along and run each cell to see how the database is constructed.
Setup¶
[1]:
import os
from pathlib import Path
FILE_DIR = Path(".")
DATA_DIR = FILE_DIR / "data"
Define Function for Downloading and Extracting Data¶
[2]:
from matgraphdb.datasets import MPNearHull
DB_PATH = DATA_DIR / "MPNearHull"
mpdb = MPNearHull(storage_path=DB_PATH,initialize_from_scratch=False)
[INFO] 2025-05-11 10:21:41 - parquetdb.utils.config[37][load_config] - Config file: C:\Users\lllang\AppData\Local\parquetdb\parquetdb\config.yml
[INFO] 2025-05-11 10:21:41 - parquetdb.utils.config[41][load_config] - Setting data_dir to C:\Users\lllang\Desktop\Current_Projects\MatGraphDB\data
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
Cell In[2], line 4
1 from matgraphdb.datasets import MPNearHull
3 DB_PATH = DATA_DIR / "MPNearHull"
----> 4 mpdb = MPNearHull(storage_path=DB_PATH,initialize_from_scratch=False)
File ~\Desktop\Current_Projects\MatGraphDB\matgraphdb\datasets\mp_near_hull.py:45, in MPNearHull.__init__(self, storage_path, download, from_scratch, initialize_from_scratch)
38 logger.info(f"Downloading dataset from {self.repo_id}")
39 snapshot_download(
40 repo_id=self.repo_id,
41 repo_type=self.repo_type,
42 local_dir=storage_path,
43 )
---> 45 super().__init__(storage_path=storage_path)
47 n_edge_generators = len(self.edge_generator_store.generator_names)
48 n_node_generators = len(self.node_generator_store.generator_names)
File ~\Desktop\Current_Projects\MatGraphDB\matgraphdb\core\matgraphdb.py:39, in MatGraphDB.__init__(self, storage_path, materials_store, load_custom_stores, **kwargs)
28 """
29 Parameters
30 ----------
(...)
36 Whether to load custom stores.
37 """
38 self.storage_path = os.path.abspath(storage_path)
---> 39 super().__init__(
40 storage_path=self.storage_path,
41 load_custom_stores=load_custom_stores,
42 **kwargs,
43 )
44 logger.info(f"Initializing MatGraphDB at: {self.storage_path}")
46 self.materials_path = os.path.join(self.nodes_path, "material")
File c:\Users\lllang\miniconda3\envs\matgraphdb\lib\site-packages\parquetdb\graph\parquet_graphdb.py:71, in ParquetGraphDB.__init__(self, storage_path, load_custom_stores, verbose)
68 logger.debug(f"Graph directory: {self.graph_path}")
70 # Initialize empty dictionaries for stores, load existing stores
---> 71 self.node_stores = self._load_existing_node_stores(load_custom_stores)
72 self.edge_stores = self._load_existing_edge_stores(load_custom_stores)
74 self.edge_generator_store = GeneratorStore(
75 storage_path=self.edge_generators_path, verbose=self.verbose
76 )
File c:\Users\lllang\miniconda3\envs\matgraphdb\lib\site-packages\parquetdb\graph\parquet_graphdb.py:182, in ParquetGraphDB._load_existing_node_stores(self, load_custom_stores)
180 def _load_existing_node_stores(self, load_custom_stores: bool = True):
181 logger.info(f"Loading existing node stores")
--> 182 return self._load_existing_stores(
183 self.nodes_path,
184 default_store_class=NodeStore,
185 load_custom_stores=load_custom_stores,
186 )
File c:\Users\lllang\miniconda3\envs\matgraphdb\lib\site-packages\parquetdb\graph\parquet_graphdb.py:216, in ParquetGraphDB._load_existing_stores(self, stores_path, default_store_class, load_custom_stores)
214 store_path = os.path.join(stores_path, store_type)
215 if os.path.isdir(store_path):
--> 216 store_dict[store_type] = load_store(
217 store_path, default_store_class, verbose=self.verbose
218 )
219 else:
220 raise ValueError(
221 f"Store path {store_path} is not a directory. Likely does not exist."
222 )
File c:\Users\lllang\miniconda3\envs\matgraphdb\lib\site-packages\parquetdb\graph\parquet_graphdb.py:950, in load_store(store_path, default_store_class, verbose)
948 if class_module and class_name and default_store_class is None:
949 logger.debug(f"Importing class from module: {class_module}")
--> 950 module = importlib.import_module(class_module)
951 class_obj = getattr(module, class_name)
952 store = class_obj(storage_path=store_path)
File c:\Users\lllang\miniconda3\envs\matgraphdb\lib\importlib\__init__.py:126, in import_module(name, package)
124 break
125 level += 1
--> 126 return _bootstrap._gcd_import(name[level:], package, level)
File <frozen importlib._bootstrap>:1050, in _gcd_import(name, package, level)
File <frozen importlib._bootstrap>:1027, in _find_and_load(name, import_)
File <frozen importlib._bootstrap>:992, in _find_and_load_unlocked(name, import_)
File <frozen importlib._bootstrap>:241, in _call_with_frames_removed(f, *args, **kwds)
File <frozen importlib._bootstrap>:1050, in _gcd_import(name, package, level)
File <frozen importlib._bootstrap>:1027, in _find_and_load(name, import_)
File <frozen importlib._bootstrap>:992, in _find_and_load_unlocked(name, import_)
File <frozen importlib._bootstrap>:241, in _call_with_frames_removed(f, *args, **kwds)
File <frozen importlib._bootstrap>:1050, in _gcd_import(name, package, level)
File <frozen importlib._bootstrap>:1027, in _find_and_load(name, import_)
File <frozen importlib._bootstrap>:1004, in _find_and_load_unlocked(name, import_)
ModuleNotFoundError: No module named 'matgraphdb.materials'
Initialization¶
Initialize a Materials Store¶
[4]:
from matgraphdb import MaterialStore
materials_store = MaterialStore(storage_path=MATERIALS_PATH)
print(materials_store)
============================================================
NODE STORE SUMMARY
============================================================
Node type: material
• Number of nodes: 80643
• Number of features: 136
Storage path: ..\..\data\examples\01\material
############################################################
METADATA
############################################################
• class: MaterialStore
• class_module: matgraphdb.materials.nodes.materials
• node_type: material
• name_column: id
############################################################
NODE DETAILS
############################################################
Initialize a MatGraphDB Instance¶
[5]:
from matgraphdb import MatGraphDB
if not os.path.exists(MATGRAPHDB_PATH):
shutil.rmtree(MATGRAPHDB_PATH)
mdb = MatGraphDB(storage_path=MATGRAPHDB_PATH,materials_store=materials_store)
print(mdb)
============================================================
GRAPH DATABASE SUMMARY
============================================================
Name: MatGraphDB
Storage path: ..\..\data\examples\01\MatGraphDB
└── Repository structure:
├── nodes/ (..\..\data\examples\01\MatGraphDB\nodes)
├── edges/ (..\..\data\examples\01\MatGraphDB\edges)
├── edge_generators/ (..\..\data\examples\01\MatGraphDB\edge_generators)
├── node_generators/ (..\..\data\examples\01\MatGraphDB\node_generators)
└── graph/ (..\..\data\examples\01\MatGraphDB\graph)
############################################################
NODE DETAILS
############################################################
Total node types: 1
------------------------------------------------------------
• Node type: material
- Number of nodes: 80643
- Number of features: 136
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\material
------------------------------------------------------------
############################################################
EDGE DETAILS
############################################################
Total edge types: 0
------------------------------------------------------------
############################################################
NODE GENERATOR DETAILS
############################################################
Total node generators: 0
------------------------------------------------------------
############################################################
EDGE GENERATOR DETAILS
############################################################
Total edge generators: 0
------------------------------------------------------------
Adding Nodes¶
In this section, we will add the nodes to the MatGraphDB instance. We will be using some of the built-in node generators to add the nodes to the MatGraphDB instance.
[6]:
from matgraphdb import generators
# Here we define the generator functions and arguments if they are needed.
# For instance, to get the materials sites and lattices, we need to pass the materials store to the generator function.
node_generators = [
{"generator_func": generators.element},
{"generator_func": generators.chemenv},
{"generator_func": generators.crystal_system},
{"generator_func": generators.magnetic_state},
{"generator_func": generators.oxidation_state},
{"generator_func": generators.space_group},
{"generator_func": generators.wyckoff},
{
"generator_func": generators.material_site,
"generator_args": {"material_store": mdb.node_stores["material"]},
},
{
"generator_func": generators.material_lattice,
"generator_args": {"material_store": mdb.node_stores["material"]},
},
]
Now we can add the node generators to the MatGraphDB instance. When we add the generator, it will immediately execute and add the nodes to the database.
[7]:
# Add each node generator to the database.
for generator in node_generators:
generator_func = generator.get("generator_func")
generator_args = generator.get("generator_args", None)
print(f"Adding node generator: {generator_func.__name__}")
mdb.add_node_generator(generator_func=generator_func, generator_args=generator_args)
print("Node generators have been initialized.")
print(mdb)
Adding node generator: element
Adding node generator: chemenv
Adding node generator: crystal_system
Adding node generator: magnetic_state
Adding node generator: oxidation_state
Adding node generator: space_group
Adding node generator: wyckoff
Adding node generator: material_site
Adding node generator: material_lattice
Node generators have been initialized.
============================================================
GRAPH DATABASE SUMMARY
============================================================
Name: MatGraphDB
Storage path: ..\..\data\examples\01\MatGraphDB
└── Repository structure:
├── nodes/ (..\..\data\examples\01\MatGraphDB\nodes)
├── edges/ (..\..\data\examples\01\MatGraphDB\edges)
├── edge_generators/ (..\..\data\examples\01\MatGraphDB\edge_generators)
├── node_generators/ (..\..\data\examples\01\MatGraphDB\node_generators)
└── graph/ (..\..\data\examples\01\MatGraphDB\graph)
############################################################
NODE DETAILS
############################################################
Total node types: 10
------------------------------------------------------------
• Node type: material
- Number of nodes: 80643
- Number of features: 136
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\material
------------------------------------------------------------
• Node type: element
- Number of nodes: 118
- Number of features: 99
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\element
------------------------------------------------------------
• Node type: chemenv
- Number of nodes: 67
- Number of features: 15
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\chemenv
------------------------------------------------------------
• Node type: crystal_system
- Number of nodes: 7
- Number of features: 2
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\crystal_system
------------------------------------------------------------
• Node type: magnetic_state
- Number of nodes: 5
- Number of features: 2
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\magnetic_state
------------------------------------------------------------
• Node type: oxidation_state
- Number of nodes: 19
- Number of features: 3
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\oxidation_state
------------------------------------------------------------
• Node type: space_group
- Number of nodes: 230
- Number of features: 2
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\space_group
------------------------------------------------------------
• Node type: wyckoff
- Number of nodes: 1380
- Number of features: 2
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\wyckoff
------------------------------------------------------------
• Node type: material_site
- Number of nodes: 2545026
- Number of features: 15
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\material_site
------------------------------------------------------------
• Node type: material_lattice
- Number of nodes: 80643
- Number of features: 12
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\material_lattice
------------------------------------------------------------
############################################################
EDGE DETAILS
############################################################
Total edge types: 0
------------------------------------------------------------
############################################################
NODE GENERATOR DETAILS
############################################################
Total node generators: 9
------------------------------------------------------------
• Generator: element
Generator Args:
- generator_func: [<function element at 0x000001E1A2C82C10>]
- generator_kwargs.base_file: ['C:\\Users\\lllang\\Desktop\\Current_Projects\\MatGraphDB\\matgraphdb\\utils\\chem_utils\\resources\\imputed_periodic_table_values.parquet']
- generator_name: ['element']
- id: [0]
Generator Kwargs:
- base_file: ['C:\\Users\\lllang\\Desktop\\Current_Projects\\MatGraphDB\\matgraphdb\\utils\\chem_utils\\resources\\imputed_periodic_table_values.parquet']
------------------------------------------------------------
• Generator: chemenv
Generator Args:
- generator_func: [<function chemenv at 0x000001E1A2C82D30>]
- generator_kwargs.base_file: ['C:\\Users\\lllang\\Desktop\\Current_Projects\\MatGraphDB\\matgraphdb\\utils\\chem_utils\\resources\\coordination_geometries.parquet']
- generator_name: ['chemenv']
- id: [1]
Generator Kwargs:
- base_file: ['C:\\Users\\lllang\\Desktop\\Current_Projects\\MatGraphDB\\matgraphdb\\utils\\chem_utils\\resources\\coordination_geometries.parquet']
------------------------------------------------------------
• Generator: crystal_system
Generator Args:
- generator_func: [<function crystal_system at 0x000001E1A2C82E50>]
- generator_name: ['crystal_system']
- id: [2]
Generator Kwargs:
------------------------------------------------------------
• Generator: magnetic_state
Generator Args:
- generator_func: [<function magnetic_state at 0x000001E1A2C82F70>]
- generator_name: ['magnetic_state']
- id: [3]
Generator Kwargs:
------------------------------------------------------------
• Generator: oxidation_state
Generator Args:
- generator_func: [<function oxidation_state at 0x000001E1A2C8D0D0>]
- generator_name: ['oxidation_state']
- id: [4]
Generator Kwargs:
------------------------------------------------------------
• Generator: space_group
Generator Args:
- generator_func: [<function space_group at 0x000001E1A2C8D1F0>]
- generator_name: ['space_group']
- id: [5]
Generator Kwargs:
------------------------------------------------------------
• Generator: wyckoff
Generator Args:
- generator_func: [<function wyckoff at 0x000001E1A2C8D310>]
- generator_name: ['wyckoff']
- id: [6]
Generator Kwargs:
------------------------------------------------------------
• Generator: material_site
Generator Args:
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
- generator_func: [<function material_site at 0x000001E1C487D940>]
- generator_name: ['material_site']
- id: [7]
Generator Kwargs:
------------------------------------------------------------
• Generator: material_lattice
Generator Args:
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
- generator_func: [<function material_lattice at 0x000001E1C487D820>]
- generator_name: ['material_lattice']
- id: [8]
Generator Kwargs:
------------------------------------------------------------
############################################################
EDGE GENERATOR DETAILS
############################################################
Total edge generators: 0
------------------------------------------------------------
Adding Edges¶
In this section, we will add the edges to the MatGraphDB instance. We will be using some of the built-in edge generators to add the edges to the MatGraphDB instance.
[8]:
# List of edge generator configurations.
edge_generators = [
{
"generator_func": generators.element_element_neighborsByGroupPeriod,
"generator_args": {"element_store": mdb.node_stores["element"]},
},
{
"generator_func": generators.element_oxiState_canOccur,
"generator_args": {
"element_store": mdb.node_stores["element"],
"oxiState_store": mdb.node_stores["oxidation_state"],
},
},
{
"generator_func": generators.material_chemenv_containsSite,
"generator_args": {
"material_store": mdb.node_stores["material"],
"chemenv_store": mdb.node_stores["chemenv"],
},
},
{
"generator_func": generators.material_crystalSystem_has,
"generator_args": {
"material_store": mdb.node_stores["material"],
"crystal_system_store": mdb.node_stores["crystal_system"],
},
},
{
"generator_func": generators.material_element_has,
"generator_args": {
"material_store": mdb.node_stores["material"],
"element_store": mdb.node_stores["element"],
},
},
{
"generator_func": generators.material_lattice_has,
"generator_args": {
"material_store": mdb.node_stores["material"],
"lattice_store": mdb.node_stores["material_lattice"],
},
},
{
"generator_func": generators.material_spg_has,
"generator_args": {
"material_store": mdb.node_stores["material"],
"spg_store": mdb.node_stores["space_group"],
},
},
{
"generator_func": generators.element_chemenv_canOccur,
"generator_args": {
"element_store": mdb.node_stores["element"],
"chemenv_store": mdb.node_stores["chemenv"],
"material_store": mdb.node_stores["material"],
},
},
{
"generator_func": generators.spg_crystalSystem_isApart,
"generator_args": {
"spg_store": mdb.node_stores["space_group"],
"crystal_system_store": mdb.node_stores["crystal_system"],
},
},
{
"generator_func": generators.element_element_bonds,
"generator_args": {
"element_store": mdb.node_stores["element"],
"material_store": mdb.node_stores["material"],
},
},
]
# Add each edge generator to the database and run them immediately.
for generator in edge_generators:
generator_func = generator.get("generator_func")
generator_args = generator.get("generator_args", None)
print(f"Adding edge generator: {generator_func.__name__}")
mdb.add_edge_generator(generator_func=generator_func, generator_args=generator_args, run_immediately=True)
print("Edge generators have been initialized.")
print(mdb)
Adding edge generator: element_element_neighborsByGroupPeriod
Adding edge generator: element_oxiState_canOccur
Adding edge generator: material_chemenv_containsSite
Adding edge generator: material_crystalSystem_has
Adding edge generator: material_element_has
Adding edge generator: material_lattice_has
Adding edge generator: material_spg_has
Adding edge generator: element_chemenv_canOccur
Adding edge generator: spg_crystalSystem_isApart
Adding edge generator: element_element_bonds
Edge generators have been initialized.
============================================================
GRAPH DATABASE SUMMARY
============================================================
Name: MatGraphDB
Storage path: ..\..\data\examples\01\MatGraphDB
└── Repository structure:
├── nodes/ (..\..\data\examples\01\MatGraphDB\nodes)
├── edges/ (..\..\data\examples\01\MatGraphDB\edges)
├── edge_generators/ (..\..\data\examples\01\MatGraphDB\edge_generators)
├── node_generators/ (..\..\data\examples\01\MatGraphDB\node_generators)
└── graph/ (..\..\data\examples\01\MatGraphDB\graph)
############################################################
NODE DETAILS
############################################################
Total node types: 10
------------------------------------------------------------
• Node type: material
- Number of nodes: 80643
- Number of features: 136
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\material
------------------------------------------------------------
• Node type: element
- Number of nodes: 118
- Number of features: 99
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\element
------------------------------------------------------------
• Node type: chemenv
- Number of nodes: 67
- Number of features: 15
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\chemenv
------------------------------------------------------------
• Node type: crystal_system
- Number of nodes: 7
- Number of features: 2
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\crystal_system
------------------------------------------------------------
• Node type: magnetic_state
- Number of nodes: 5
- Number of features: 2
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\magnetic_state
------------------------------------------------------------
• Node type: oxidation_state
- Number of nodes: 19
- Number of features: 3
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\oxidation_state
------------------------------------------------------------
• Node type: space_group
- Number of nodes: 230
- Number of features: 2
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\space_group
------------------------------------------------------------
• Node type: wyckoff
- Number of nodes: 1380
- Number of features: 2
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\wyckoff
------------------------------------------------------------
• Node type: material_site
- Number of nodes: 2545026
- Number of features: 15
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\material_site
------------------------------------------------------------
• Node type: material_lattice
- Number of nodes: 80643
- Number of features: 12
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\material_lattice
------------------------------------------------------------
############################################################
EDGE DETAILS
############################################################
Total edge types: 10
------------------------------------------------------------
• Edge type: element_element_neighborsByGroupPeriod
- Number of edges: 391
- Number of features: 14
- db_path: ..\..\data\examples\01\MatGraphDB\edges\element_element_neighborsByGroupPeriod
------------------------------------------------------------
• Edge type: element_oxiState_canOccur
- Number of edges: 162
- Number of features: 8
- db_path: ..\..\data\examples\01\MatGraphDB\edges\element_oxiState_canOccur
------------------------------------------------------------
• Edge type: material_chemenv_containsSite
- Number of edges: 2542897
- Number of features: 8
- db_path: ..\..\data\examples\01\MatGraphDB\edges\material_chemenv_containsSite
------------------------------------------------------------
• Edge type: material_crystalSystem_has
- Number of edges: 80643
- Number of features: 10
- db_path: ..\..\data\examples\01\MatGraphDB\edges\material_crystalSystem_has
------------------------------------------------------------
• Edge type: material_element_has
- Number of edges: 270902
- Number of features: 8
- db_path: ..\..\data\examples\01\MatGraphDB\edges\material_element_has
------------------------------------------------------------
• Edge type: material_lattice_has
- Number of edges: 80643
- Number of features: 8
- db_path: ..\..\data\examples\01\MatGraphDB\edges\material_lattice_has
------------------------------------------------------------
• Edge type: material_spg_has
- Number of edges: 80643
- Number of features: 10
- db_path: ..\..\data\examples\01\MatGraphDB\edges\material_spg_has
------------------------------------------------------------
• Edge type: element_chemenv_canOccur
- Number of edges: 270474
- Number of features: 7
- db_path: ..\..\data\examples\01\MatGraphDB\edges\element_chemenv_canOccur
------------------------------------------------------------
• Edge type: spg_crystalSystem_isApart
- Number of edges: 230
- Number of features: 7
- db_path: ..\..\data\examples\01\MatGraphDB\edges\spg_crystalSystem_isApart
------------------------------------------------------------
• Edge type: element_element_bonds
- Number of edges: 3069943
- Number of features: 7
- db_path: ..\..\data\examples\01\MatGraphDB\edges\element_element_bonds
------------------------------------------------------------
############################################################
NODE GENERATOR DETAILS
############################################################
Total node generators: 9
------------------------------------------------------------
• Generator: element
Generator Args:
- generator_func: [<function element at 0x000001E1A2C82C10>]
- generator_kwargs.base_file: ['C:\\Users\\lllang\\Desktop\\Current_Projects\\MatGraphDB\\matgraphdb\\utils\\chem_utils\\resources\\imputed_periodic_table_values.parquet']
- generator_name: ['element']
- id: [0]
Generator Kwargs:
- base_file: ['C:\\Users\\lllang\\Desktop\\Current_Projects\\MatGraphDB\\matgraphdb\\utils\\chem_utils\\resources\\imputed_periodic_table_values.parquet']
------------------------------------------------------------
• Generator: chemenv
Generator Args:
- generator_func: [<function chemenv at 0x000001E1A2C82D30>]
- generator_kwargs.base_file: ['C:\\Users\\lllang\\Desktop\\Current_Projects\\MatGraphDB\\matgraphdb\\utils\\chem_utils\\resources\\coordination_geometries.parquet']
- generator_name: ['chemenv']
- id: [1]
Generator Kwargs:
- base_file: ['C:\\Users\\lllang\\Desktop\\Current_Projects\\MatGraphDB\\matgraphdb\\utils\\chem_utils\\resources\\coordination_geometries.parquet']
------------------------------------------------------------
• Generator: crystal_system
Generator Args:
- generator_func: [<function crystal_system at 0x000001E1A2C82E50>]
- generator_name: ['crystal_system']
- id: [2]
Generator Kwargs:
------------------------------------------------------------
• Generator: magnetic_state
Generator Args:
- generator_func: [<function magnetic_state at 0x000001E1A2C82F70>]
- generator_name: ['magnetic_state']
- id: [3]
Generator Kwargs:
------------------------------------------------------------
• Generator: oxidation_state
Generator Args:
- generator_func: [<function oxidation_state at 0x000001E1A2C8D0D0>]
- generator_name: ['oxidation_state']
- id: [4]
Generator Kwargs:
------------------------------------------------------------
• Generator: space_group
Generator Args:
- generator_func: [<function space_group at 0x000001E1A2C8D1F0>]
- generator_name: ['space_group']
- id: [5]
Generator Kwargs:
------------------------------------------------------------
• Generator: wyckoff
Generator Args:
- generator_func: [<function wyckoff at 0x000001E1A2C8D310>]
- generator_name: ['wyckoff']
- id: [6]
Generator Kwargs:
------------------------------------------------------------
• Generator: material_site
Generator Args:
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
- generator_func: [<function material_site at 0x000001E1C487D940>]
- generator_name: ['material_site']
- id: [7]
Generator Kwargs:
------------------------------------------------------------
• Generator: material_lattice
Generator Args:
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
- generator_func: [<function material_lattice at 0x000001E1C487D820>]
- generator_name: ['material_lattice']
- id: [8]
Generator Kwargs:
------------------------------------------------------------
############################################################
EDGE GENERATOR DETAILS
############################################################
Total edge generators: 10
------------------------------------------------------------
• Generator: element_oxiState_canOccur
Generator Args:
- element_store: ..\..\data\examples\01\MatGraphDB\nodes\element
- oxiState_store: ..\..\data\examples\01\MatGraphDB\nodes\oxidation_state
Generator Kwargs:
------------------------------------------------------------
• Generator: material_chemenv_containsSite
Generator Args:
- chemenv_store: ..\..\data\examples\01\MatGraphDB\nodes\chemenv
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
Generator Kwargs:
------------------------------------------------------------
• Generator: material_crystalSystem_has
Generator Args:
- crystal_system_store: ..\..\data\examples\01\MatGraphDB\nodes\crystal_system
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
Generator Kwargs:
------------------------------------------------------------
• Generator: element_element_neighborsByGroupPeriod
Generator Args:
- element_store: ..\..\data\examples\01\MatGraphDB\nodes\element
Generator Kwargs:
------------------------------------------------------------
• Generator: material_element_has
Generator Args:
- element_store: ..\..\data\examples\01\MatGraphDB\nodes\element
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
Generator Kwargs:
------------------------------------------------------------
• Generator: material_lattice_has
Generator Args:
- lattice_store: ..\..\data\examples\01\MatGraphDB\nodes\material_lattice
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
Generator Kwargs:
------------------------------------------------------------
• Generator: material_spg_has
Generator Args:
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
- spg_store: ..\..\data\examples\01\MatGraphDB\nodes\space_group
Generator Kwargs:
------------------------------------------------------------
• Generator: element_chemenv_canOccur
Generator Args:
- chemenv_store: ..\..\data\examples\01\MatGraphDB\nodes\chemenv
- element_store: ..\..\data\examples\01\MatGraphDB\nodes\element
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
Generator Kwargs:
------------------------------------------------------------
• Generator: spg_crystalSystem_isApart
Generator Args:
- crystal_system_store: ..\..\data\examples\01\MatGraphDB\nodes\crystal_system
- spg_store: ..\..\data\examples\01\MatGraphDB\nodes\space_group
Generator Kwargs:
------------------------------------------------------------
• Generator: element_element_bonds
Generator Args:
- element_store: ..\..\data\examples\01\MatGraphDB\nodes\element
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
Generator Kwargs:
------------------------------------------------------------
Verifying the Database¶
[9]:
print(mdb)
============================================================
GRAPH DATABASE SUMMARY
============================================================
Name: MatGraphDB
Storage path: ..\..\data\examples\01\MatGraphDB
└── Repository structure:
├── nodes/ (..\..\data\examples\01\MatGraphDB\nodes)
├── edges/ (..\..\data\examples\01\MatGraphDB\edges)
├── edge_generators/ (..\..\data\examples\01\MatGraphDB\edge_generators)
├── node_generators/ (..\..\data\examples\01\MatGraphDB\node_generators)
└── graph/ (..\..\data\examples\01\MatGraphDB\graph)
############################################################
NODE DETAILS
############################################################
Total node types: 10
------------------------------------------------------------
• Node type: material
- Number of nodes: 80643
- Number of features: 136
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\material
------------------------------------------------------------
• Node type: element
- Number of nodes: 118
- Number of features: 99
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\element
------------------------------------------------------------
• Node type: chemenv
- Number of nodes: 67
- Number of features: 15
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\chemenv
------------------------------------------------------------
• Node type: crystal_system
- Number of nodes: 7
- Number of features: 2
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\crystal_system
------------------------------------------------------------
• Node type: magnetic_state
- Number of nodes: 5
- Number of features: 2
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\magnetic_state
------------------------------------------------------------
• Node type: oxidation_state
- Number of nodes: 19
- Number of features: 3
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\oxidation_state
------------------------------------------------------------
• Node type: space_group
- Number of nodes: 230
- Number of features: 2
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\space_group
------------------------------------------------------------
• Node type: wyckoff
- Number of nodes: 1380
- Number of features: 2
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\wyckoff
------------------------------------------------------------
• Node type: material_site
- Number of nodes: 2545026
- Number of features: 15
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\material_site
------------------------------------------------------------
• Node type: material_lattice
- Number of nodes: 80643
- Number of features: 12
- db_path: ..\..\data\examples\01\MatGraphDB\nodes\material_lattice
------------------------------------------------------------
############################################################
EDGE DETAILS
############################################################
Total edge types: 10
------------------------------------------------------------
• Edge type: element_element_neighborsByGroupPeriod
- Number of edges: 391
- Number of features: 14
- db_path: ..\..\data\examples\01\MatGraphDB\edges\element_element_neighborsByGroupPeriod
------------------------------------------------------------
• Edge type: element_oxiState_canOccur
- Number of edges: 162
- Number of features: 8
- db_path: ..\..\data\examples\01\MatGraphDB\edges\element_oxiState_canOccur
------------------------------------------------------------
• Edge type: material_chemenv_containsSite
- Number of edges: 2542897
- Number of features: 8
- db_path: ..\..\data\examples\01\MatGraphDB\edges\material_chemenv_containsSite
------------------------------------------------------------
• Edge type: material_crystalSystem_has
- Number of edges: 80643
- Number of features: 10
- db_path: ..\..\data\examples\01\MatGraphDB\edges\material_crystalSystem_has
------------------------------------------------------------
• Edge type: material_element_has
- Number of edges: 270902
- Number of features: 8
- db_path: ..\..\data\examples\01\MatGraphDB\edges\material_element_has
------------------------------------------------------------
• Edge type: material_lattice_has
- Number of edges: 80643
- Number of features: 8
- db_path: ..\..\data\examples\01\MatGraphDB\edges\material_lattice_has
------------------------------------------------------------
• Edge type: material_spg_has
- Number of edges: 80643
- Number of features: 10
- db_path: ..\..\data\examples\01\MatGraphDB\edges\material_spg_has
------------------------------------------------------------
• Edge type: element_chemenv_canOccur
- Number of edges: 270474
- Number of features: 7
- db_path: ..\..\data\examples\01\MatGraphDB\edges\element_chemenv_canOccur
------------------------------------------------------------
• Edge type: spg_crystalSystem_isApart
- Number of edges: 230
- Number of features: 7
- db_path: ..\..\data\examples\01\MatGraphDB\edges\spg_crystalSystem_isApart
------------------------------------------------------------
• Edge type: element_element_bonds
- Number of edges: 3069943
- Number of features: 7
- db_path: ..\..\data\examples\01\MatGraphDB\edges\element_element_bonds
------------------------------------------------------------
############################################################
NODE GENERATOR DETAILS
############################################################
Total node generators: 9
------------------------------------------------------------
• Generator: element
Generator Args:
- generator_func: [<function element at 0x000001E1A2C82C10>]
- generator_kwargs.base_file: ['C:\\Users\\lllang\\Desktop\\Current_Projects\\MatGraphDB\\matgraphdb\\utils\\chem_utils\\resources\\imputed_periodic_table_values.parquet']
- generator_name: ['element']
- id: [0]
Generator Kwargs:
- base_file: ['C:\\Users\\lllang\\Desktop\\Current_Projects\\MatGraphDB\\matgraphdb\\utils\\chem_utils\\resources\\imputed_periodic_table_values.parquet']
------------------------------------------------------------
• Generator: chemenv
Generator Args:
- generator_func: [<function chemenv at 0x000001E1A2C82D30>]
- generator_kwargs.base_file: ['C:\\Users\\lllang\\Desktop\\Current_Projects\\MatGraphDB\\matgraphdb\\utils\\chem_utils\\resources\\coordination_geometries.parquet']
- generator_name: ['chemenv']
- id: [1]
Generator Kwargs:
- base_file: ['C:\\Users\\lllang\\Desktop\\Current_Projects\\MatGraphDB\\matgraphdb\\utils\\chem_utils\\resources\\coordination_geometries.parquet']
------------------------------------------------------------
• Generator: crystal_system
Generator Args:
- generator_func: [<function crystal_system at 0x000001E1A2C82E50>]
- generator_name: ['crystal_system']
- id: [2]
Generator Kwargs:
------------------------------------------------------------
• Generator: magnetic_state
Generator Args:
- generator_func: [<function magnetic_state at 0x000001E1A2C82F70>]
- generator_name: ['magnetic_state']
- id: [3]
Generator Kwargs:
------------------------------------------------------------
• Generator: oxidation_state
Generator Args:
- generator_func: [<function oxidation_state at 0x000001E1A2C8D0D0>]
- generator_name: ['oxidation_state']
- id: [4]
Generator Kwargs:
------------------------------------------------------------
• Generator: space_group
Generator Args:
- generator_func: [<function space_group at 0x000001E1A2C8D1F0>]
- generator_name: ['space_group']
- id: [5]
Generator Kwargs:
------------------------------------------------------------
• Generator: wyckoff
Generator Args:
- generator_func: [<function wyckoff at 0x000001E1A2C8D310>]
- generator_name: ['wyckoff']
- id: [6]
Generator Kwargs:
------------------------------------------------------------
• Generator: material_site
Generator Args:
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
- generator_func: [<function material_site at 0x000001E1C487D940>]
- generator_name: ['material_site']
- id: [7]
Generator Kwargs:
------------------------------------------------------------
• Generator: material_lattice
Generator Args:
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
- generator_func: [<function material_lattice at 0x000001E1C487D820>]
- generator_name: ['material_lattice']
- id: [8]
Generator Kwargs:
------------------------------------------------------------
############################################################
EDGE GENERATOR DETAILS
############################################################
Total edge generators: 10
------------------------------------------------------------
• Generator: element_oxiState_canOccur
Generator Args:
- element_store: ..\..\data\examples\01\MatGraphDB\nodes\element
- oxiState_store: ..\..\data\examples\01\MatGraphDB\nodes\oxidation_state
Generator Kwargs:
------------------------------------------------------------
• Generator: material_chemenv_containsSite
Generator Args:
- chemenv_store: ..\..\data\examples\01\MatGraphDB\nodes\chemenv
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
Generator Kwargs:
------------------------------------------------------------
• Generator: material_crystalSystem_has
Generator Args:
- crystal_system_store: ..\..\data\examples\01\MatGraphDB\nodes\crystal_system
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
Generator Kwargs:
------------------------------------------------------------
• Generator: element_element_neighborsByGroupPeriod
Generator Args:
- element_store: ..\..\data\examples\01\MatGraphDB\nodes\element
Generator Kwargs:
------------------------------------------------------------
• Generator: material_element_has
Generator Args:
- element_store: ..\..\data\examples\01\MatGraphDB\nodes\element
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
Generator Kwargs:
------------------------------------------------------------
• Generator: material_lattice_has
Generator Args:
- lattice_store: ..\..\data\examples\01\MatGraphDB\nodes\material_lattice
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
Generator Kwargs:
------------------------------------------------------------
• Generator: material_spg_has
Generator Args:
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
- spg_store: ..\..\data\examples\01\MatGraphDB\nodes\space_group
Generator Kwargs:
------------------------------------------------------------
• Generator: element_chemenv_canOccur
Generator Args:
- chemenv_store: ..\..\data\examples\01\MatGraphDB\nodes\chemenv
- element_store: ..\..\data\examples\01\MatGraphDB\nodes\element
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
Generator Kwargs:
------------------------------------------------------------
• Generator: spg_crystalSystem_isApart
Generator Args:
- crystal_system_store: ..\..\data\examples\01\MatGraphDB\nodes\crystal_system
- spg_store: ..\..\data\examples\01\MatGraphDB\nodes\space_group
Generator Kwargs:
------------------------------------------------------------
• Generator: element_element_bonds
Generator Args:
- element_store: ..\..\data\examples\01\MatGraphDB\nodes\element
- material_store: ..\..\data\examples\01\MatGraphDB\nodes\material
Generator Kwargs:
------------------------------------------------------------