├── .github └── workflows │ └── cpu_test.yml ├── .gitignore ├── .isort.cfg ├── .pre-commit-config.yaml ├── README.md ├── configs ├── config.yml ├── config_calculator.yml ├── config_forces.yml ├── crystalGraphConfig.yml ├── examples │ ├── DOS_STO.yml │ ├── config_alignn.yml │ ├── config_graphite.yml │ ├── config_mpnn.yml │ └── config_test.yml ├── tensor_net_config.yml └── torchmd_config.yml ├── data └── test_data │ ├── README.md │ ├── data_graph_scalar.json │ ├── data_graph_scalar_cell_mixed.json │ ├── data_graph_vector.json │ ├── data_node_scalar.json │ ├── data_node_vector.json │ ├── raw_graph_scalar │ ├── 0.cif │ ├── 1.cif │ ├── 10.cif │ ├── 11.cif │ ├── 12.cif │ ├── 13.cif │ ├── 14.cif │ ├── 15.cif │ ├── 16.cif │ ├── 17.cif │ ├── 18.cif │ ├── 19.cif │ ├── 2.cif │ ├── 20.cif │ ├── 21.cif │ ├── 22.cif │ ├── 23.cif │ ├── 24.cif │ ├── 25.cif │ ├── 26.cif │ ├── 27.cif │ ├── 28.cif │ ├── 29.cif │ ├── 3.cif │ ├── 30.cif │ ├── 31.cif │ ├── 32.cif │ ├── 33.cif │ ├── 34.cif │ ├── 35.cif │ ├── 36.cif │ ├── 37.cif │ ├── 38.cif │ ├── 39.cif │ ├── 4.cif │ ├── 40.cif │ ├── 41.cif │ ├── 42.cif │ ├── 43.cif │ ├── 44.cif │ ├── 45.cif │ ├── 46.cif │ ├── 47.cif │ ├── 48.cif │ ├── 49.cif │ ├── 5.cif │ ├── 50.cif │ ├── 51.cif │ ├── 52.cif │ ├── 53.cif │ ├── 54.cif │ ├── 55.cif │ ├── 56.cif │ ├── 57.cif │ ├── 58.cif │ ├── 59.cif │ ├── 6.cif │ ├── 60.cif │ ├── 61.cif │ ├── 62.cif │ ├── 63.cif │ ├── 64.cif │ ├── 65.cif │ ├── 66.cif │ ├── 67.cif │ ├── 68.cif │ ├── 69.cif │ ├── 7.cif │ ├── 70.cif │ ├── 71.cif │ ├── 72.cif │ ├── 73.cif │ ├── 74.cif │ ├── 75.cif │ ├── 76.cif │ ├── 77.cif │ ├── 78.cif │ ├── 79.cif │ ├── 8.cif │ ├── 80.cif │ ├── 81.cif │ ├── 82.cif │ ├── 83.cif │ ├── 84.cif │ ├── 85.cif │ ├── 86.cif │ ├── 87.cif │ ├── 88.cif │ ├── 89.cif │ ├── 9.cif │ ├── 90.cif │ ├── 91.cif │ ├── 92.cif │ ├── 93.cif │ ├── 94.cif │ ├── 95.cif │ ├── 96.cif │ ├── 97.cif │ ├── 98.cif │ ├── 99.cif │ └── targets.csv │ └── raw_graph_scalar_manual_split │ ├── data_graph_scalar_predict.json │ ├── data_graph_scalar_test.json │ ├── data_graph_scalar_train.json │ └── data_graph_scalar_val.json ├── env.common.yaml ├── env.cpu.yaml ├── env.gpu.yaml ├── main.py ├── matdeeplearn ├── README.md ├── __init__.py ├── common │ ├── __init__.py │ ├── ase_utils.py │ ├── config │ │ ├── build_config.py │ │ └── flags.py │ ├── data.py │ ├── graph_data.py │ ├── registry.py │ └── trainer_context.py ├── models │ ├── README.md │ ├── __init__.py │ ├── base_model.py │ ├── cgcnn.py │ ├── crystal_graph.py │ ├── crystal_graph_multi.py │ ├── in_progress │ │ ├── alignn.py │ │ ├── alignn_graphite.py │ │ ├── dimenet_plus_plus.py │ │ ├── dimenet_plus_plusEarly.py │ │ ├── dimenet_plus_plusEarly_unfinished.py │ │ ├── dos_predict.py │ │ ├── escn │ │ │ ├── Jd.pt │ │ │ ├── escn.py │ │ │ └── so3.py │ │ ├── gemnet │ │ │ ├── gemnet.py │ │ │ ├── initializers.py │ │ │ ├── layers │ │ │ │ ├── atom_update_block.py │ │ │ │ ├── base_layers.py │ │ │ │ ├── basis_utils.py │ │ │ │ ├── compat.py │ │ │ │ ├── efficient.py │ │ │ │ ├── embedding_block.py │ │ │ │ ├── interaction_block.py │ │ │ │ ├── radial_basis.py │ │ │ │ ├── scale_factor.py │ │ │ │ └── spherical_basis.py │ │ │ └── utils.py │ │ ├── gemnet_oc │ │ │ ├── README.md │ │ │ ├── gemnet_oc.py │ │ │ ├── gemnet_ocAll.py │ │ │ ├── gemnet_ocEarly.py │ │ │ ├── gemnet_ocEarlyAll.py │ │ │ ├── initializers.py │ │ │ ├── interaction_indices.py │ │ │ ├── layers │ │ │ │ ├── atom_update_block.py │ │ │ │ ├── base_layers.py │ │ │ │ ├── basis_utils.py │ │ │ │ ├── efficient.py │ │ │ │ ├── embedding_block.py │ │ │ │ ├── force_scaler.py │ │ │ │ ├── interaction_block.py │ │ │ │ ├── radial_basis.py │ │ │ │ └── spherical_basis.py │ │ │ └── utils.py │ │ ├── matformer │ │ │ ├── __init__.py │ │ │ ├── bn_utils.py │ │ │ ├── pyg_att.py │ │ │ ├── transformer.py │ │ │ └── utils.py │ │ ├── megnet.py │ │ ├── ocpbase.py │ │ ├── painn │ │ │ ├── painn.py │ │ │ ├── painnAllNeigbors.py │ │ │ ├── painnEarly.py │ │ │ ├── painnEarlyAll.py │ │ │ └── utils.py │ │ ├── scn │ │ │ ├── Jd.pt │ │ │ ├── README.md │ │ │ ├── sampling.py │ │ │ ├── scn.py │ │ │ ├── smearing.py │ │ │ └── spherical_harmonics.py │ │ ├── spinconv.py │ │ ├── spinconvEarly.py │ │ ├── torchmd_et.py │ │ ├── torchmd_gn.py │ │ └── torchmd_t.py │ ├── mpnn.py │ ├── schnet.py │ ├── tensor_net.py │ ├── torchmd_et.py │ ├── torchmd_etEarly.py │ ├── torchmd_output_modules.py │ └── utils.py ├── modules │ ├── __init__.py │ ├── evaluator.py │ ├── loss.py │ └── scheduler.py ├── preprocessor │ ├── __init__.py │ ├── datasets.py │ ├── helpers.py │ ├── in_progress │ │ └── transformsNew.py │ ├── node_representations │ │ ├── onehot.csv │ │ └── onehot.json │ ├── old │ │ ├── deprecated.py │ │ ├── helpersOld.py │ │ └── processorOld.py │ ├── processor.py │ └── transforms.py ├── tasks │ ├── README.md │ └── task.py └── trainers │ ├── __init__.py │ ├── base_trainer.py │ ├── old │ ├── base_trainer.py.old │ ├── property_trainer.py.old │ └── property_trainer.py.old2 │ └── property_trainer.py ├── scripts ├── __init__.py └── main.py ├── setup.py ├── test ├── configs │ └── cpu │ │ ├── test_predict.yml │ │ └── test_training.yml ├── data │ └── data_300.json ├── saved_models │ └── cgcnn.pt ├── scripts │ └── cpu │ │ ├── test_predict.py │ │ ├── test_training.py │ │ └── utils.py └── test_init.py └── tutorials ├── MatDeepLearn_Tutorial.ipynb ├── sample.cif └── sample_script.py /.github/workflows/cpu_test.yml: -------------------------------------------------------------------------------- 1 | name: Test MDL on CPU 2 | 3 | on: 4 | push: 5 | branches: [ "main" ] 6 | pull_request: 7 | branches: [ "main" ] 8 | 9 | jobs: 10 | build-linux: 11 | runs-on: ubuntu-latest 12 | defaults: 13 | run: 14 | shell: bash -el {0} 15 | strategy: 16 | max-parallel: 5 17 | 18 | steps: 19 | - uses: actions/checkout@v3 20 | 21 | - name: Setup Mambaforge 22 | uses: conda-incubator/setup-miniconda@v2 23 | with: 24 | miniforge-variant: Mambaforge 25 | miniforge-version: latest 26 | activate-environment: matdeeplearn 27 | use-mamba: true 28 | 29 | - name: Get Date 30 | id: get-date 31 | run: echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT 32 | shell: bash 33 | 34 | - name: Create env.yaml 35 | run: | 36 | mamba install conda-merge 37 | conda-merge env.common.yaml env.cpu.yaml > env.yaml 38 | 39 | - name: Cache Conda env 40 | uses: actions/cache@v3 41 | with: 42 | path: ${{ env.CONDA }}/envs 43 | key: 44 | conda-${{ runner.os }}--${{ runner.arch }}--${{ 45 | steps.get-date.outputs.today }}-${{ 46 | hashFiles('env.yaml') }}-${{ env.CACHE_NUMBER 47 | }} 48 | env: 49 | # Increase this value to reset cache if env.yaml has not changed 50 | CACHE_NUMBER: 0 51 | id: cache 52 | 53 | - name: Update environment 54 | run: | 55 | cat env.yaml 56 | mamba env update -n matdeeplearn -f env.yaml 57 | if: steps.cache.outputs.cache-hit != 'true' 58 | 59 | - name: Lint with flake8 60 | run: | 61 | mamba install flake8 62 | # stop the build if there are Python syntax errors. Undefined names are ignored 63 | flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --ignore F821 64 | # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide 65 | flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --ignore F821 66 | 67 | - name: Test CPU dependencies 68 | run: | 69 | conda activate matdeeplearn 70 | python -m pip install -e . 71 | python scripts/main.py --help 72 | 73 | - name: Test with pytest 74 | run: | 75 | mamba install pytest 76 | export PYTHONPATH=matdeeplearn 77 | python -m pytest 78 | conda deactivate 79 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | core.python.* 6 | 7 | # C extensions 8 | *.so 9 | 10 | # Distribution / packaging 11 | .Python 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | wheels/ 24 | pip-wheel-metadata/ 25 | share/python-wheels/ 26 | *.egg-info/ 27 | .installed.cfg 28 | *.egg 29 | MANIFEST 30 | 31 | # PyInstaller 32 | # Usually these files are written by a python script from a template 33 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 34 | *.manifest 35 | *.spec 36 | 37 | # Installer logs 38 | pip-log.txt 39 | pip-delete-this-directory.txt 40 | 41 | # Unit test / coverage reports 42 | htmlcov/ 43 | .tox/ 44 | .nox/ 45 | .coverage 46 | .coverage.* 47 | .cache 48 | nosetests.xml 49 | coverage.xml 50 | *.cover 51 | *.py,cover 52 | .hypothesis/ 53 | .pytest_cache/ 54 | 55 | # Translations 56 | *.mo 57 | *.pot 58 | 59 | # Django stuff: 60 | *.log 61 | local_settings.py 62 | db.sqlite3 63 | db.sqlite3-journal 64 | 65 | # Flask stuff: 66 | instance/ 67 | .webassets-cache 68 | 69 | # Scrapy stuff: 70 | .scrapy 71 | 72 | # Sphinx documentation 73 | docs/_build/ 74 | 75 | # PyBuilder 76 | target/ 77 | 78 | # Jupyter Notebook 79 | .ipynb_checkpoints 80 | 81 | # IPython 82 | profile_default/ 83 | ipython_config.py 84 | 85 | # pyenv 86 | .python-version 87 | 88 | # pipenv 89 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 90 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 91 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 92 | # install all needed dependencies. 93 | #Pipfile.lock 94 | 95 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 96 | __pypackages__/ 97 | 98 | # Celery stuff 99 | celerybeat-schedule 100 | celerybeat.pid 101 | 102 | # SageMath parsed files 103 | *.sage.py 104 | 105 | # Environments 106 | .env 107 | .venv 108 | env/ 109 | venv/ 110 | ENV/ 111 | env.bak/ 112 | venv.bak/ 113 | env.yaml 114 | 115 | # PyCharm (JetBrains) 116 | .idea/**/workspace.xml 117 | .idea/**/tasks.xml 118 | .idea/dictionaries 119 | .idea/**/dataSources/ 120 | .idea/**/dataSources.ids 121 | .idea/**/dataSources.xml 122 | .idea/**/dataSources.local.xml 123 | .idea/**/sqlDataSources.xml 124 | .idea/**/dynamic.xml 125 | .idea/**/uiDesigner.xml 126 | .idea/**/gradle.xml 127 | .idea/**/libraries 128 | .idea/ 129 | *.iws /out/ 130 | 131 | # Sublime Text 132 | *.tmlanguage.cache 133 | *.tmPreferences.cache 134 | *.stTheme.cache 135 | *.sublime-workspace 136 | *.sublime-project 137 | 138 | # Visual Studio Code 139 | .vscode/* 140 | !.vscode/settings.json 141 | !.vscode/tasks.json 142 | !.vscode/launch.json 143 | !.vscode/extensions.json 144 | .history 145 | 146 | # Spyder project settings 147 | .spyderproject 148 | .spyproject 149 | 150 | # Rope project settings 151 | .ropeproject 152 | 153 | # mkdocs documentation 154 | /site 155 | 156 | # mypy 157 | .mypy_cache/ 158 | .dmypy.json 159 | dmypy.json 160 | 161 | # Pyre type checker 162 | .pyre/ 163 | 164 | # mac 165 | .DS_Store 166 | 167 | # config 168 | ./config/* 169 | 170 | # results 171 | **/*/results/ 172 | **/results/ 173 | 174 | server/ 175 | 176 | # tests 177 | testing/* 178 | 179 | 180 | checkpoints/ 181 | 182 | # misc 183 | .flake8 184 | .pylintrc 185 | **/wandb/ 186 | *.out 187 | -------------------------------------------------------------------------------- /.isort.cfg: -------------------------------------------------------------------------------- 1 | [settings] 2 | known_third_party = ase,numpy,pandas,scipy,setuptools,torch,torch_geometric,torch_scatter,tqdm,yaml 3 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/pre-commit/pre-commit-hooks 3 | rev: v4.3.0 4 | hooks: 5 | # - id: check-yaml 6 | - id: end-of-file-fixer 7 | - id: trailing-whitespace 8 | # isort 9 | - repo: https://github.com/pycqa/isort 10 | rev: 5.11.5 11 | hooks: 12 | - id: isort 13 | args: ["--profile", "black"] 14 | # flake8 15 | - repo: https://github.com/pycqa/flake8 16 | rev: 5.0.4 17 | hooks: 18 | - id: flake8 19 | args: # arguments to configure flake8 20 | # making isort line length compatible with black 21 | - "--max-line-length=88" 22 | - "--max-complexity=18" 23 | - "--select=B,C,E,F,W,T4,B9" 24 | # these are errors that will be ignored by flake8 25 | # check out their meaning here 26 | # https://flake8.pycqa.org/en/latest/user/error-codes.html 27 | - "--ignore=E203,E266,E501,W503,F403,F401,E402" 28 | # black 29 | - repo: https://github.com/psf/black 30 | rev: 22.10.0 31 | hooks: 32 | - id: black 33 | args: # arguments to configure black 34 | - --line-length=88 35 | - --include='\.pyi?$' 36 | # these folders wont be formatted by black 37 | - --exclude="""\.git | 38 | \.__pycache__| 39 | \.hg| 40 | \.mypy_cache| 41 | \.tox| 42 | \.venv| 43 | _build| 44 | buck-out| 45 | build| 46 | dist""" 47 | language_version: python3.9 48 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Usage 2 | 3 | ### Installation 4 | 5 | 1. Pre-install step: 6 | ``` 7 | pip install conda-merge 8 | ``` 9 | 2. Create conda environment: 10 | 1. GPU machines: 11 | ``` 12 | conda-merge env.common.yaml env.gpu.yaml > env.yaml 13 | conda env create -f env.yaml 14 | conda activate matdeeplearn 15 | ``` 16 | 17 | 2. CPU-only machines: 18 | 19 | 1. M1 Macs (see https://github.com/pyg-team/pytorch_geometric/issues/4549): 20 | ``` 21 | conda env create -f env.common.yaml 22 | conda activate matdeeplearn 23 | MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ pip install torch-scatter torch-sparse torch-geometric -f https://data.pyg.org/whl/torch-1.12.0+cpu.html 24 | ``` 25 | Note: if pip is using cached wheels and the build is failing, add `--no-cache-dir` flag. 26 | 27 | 2. Everyone else: 28 | ``` 29 | conda-merge env.common.yaml env.cpu.yaml > env.yaml 30 | conda env create -f env.yaml 31 | conda activate matdeeplearn 32 | ``` 33 | 34 | 3. Install package: 35 | ``` 36 | pip install -e . 37 | ``` 38 | 39 | ## Development 40 | 41 | #### Code Quality 42 | This project uses flake8, black, and isort for linting. 43 | To install the pre-commit git hook, run: 44 | ``` 45 | pre-commit install 46 | ``` 47 | By default, the hooks will run every time you say: 48 | ``` 49 | git commit -m "Commit message" 50 | ``` 51 | However, for more information, please see: https://pre-commit.com/#usage 52 | -------------------------------------------------------------------------------- /configs/config_calculator.yml: -------------------------------------------------------------------------------- 1 | task: 2 | # Path to the checkpoint.pt file. The model used in the calculator will load parameters from this file. 3 | checkpoint_path: ./checkpoints/cgcnn_checkpoint.pt 4 | 5 | model: 6 | # Model used by the calculator 7 | name: CGCNN 8 | # model attributes 9 | dim1: 100 10 | dim2: 150 11 | pre_fc_count: 1 12 | gc_count: 4 13 | post_fc_count: 3 14 | pool: global_add_pool 15 | pool_order: early 16 | batch_norm: False 17 | batch_track_stats: True 18 | act: silu 19 | dropout_rate: 0.0 20 | # Compute edge indices on the fly in the model forward 21 | otf_edge_index: True 22 | # Compute edge attributes on the fly in the model forward 23 | otf_edge_attr: True 24 | # Compute node attributes on the fly in the model forward 25 | otf_node_attr: False 26 | model_ensemble: 1 27 | # compute gradients w.r.t to positions and cell, requires otf_edge_attr=True 28 | gradient: True 29 | 30 | dataset: 31 | preprocess_params: 32 | # one of mdl (minimum image convention), ocp (all neighbors included) 33 | edge_calc_method: ocp 34 | # determine if edges are computed, if false, then they need to be computed on the fly 35 | preprocess_edges: False 36 | # determine if edge attributes are computed during processing, if false, then they need to be computed on the fly 37 | preprocess_edge_features: False 38 | # determine if node attributes are computed during processing, if false, then they need to be computed on the fly 39 | preprocess_node_features: False 40 | # distance cutoff to determine if two atoms are connected by an edge 41 | cutoff_radius : 8.0 42 | # maximum number of neighbors to consider (usually an arbitrarily high number to consider all neighbors) 43 | n_neighbors : 250 44 | # number of pbc offsets to consider when determining neighbors (usually not changed) 45 | num_offsets: 2 46 | # dimension of node attributes 47 | node_dim : 100 48 | # dimension of edge attributes 49 | edge_dim : 50 50 | # whether or not to add self-loops 51 | self_loop: True 52 | # Method of obtaining atom dictionary: available: (onehot) 53 | node_representation: onehot 54 | all_neighbors: True 55 | -------------------------------------------------------------------------------- /configs/examples/DOS_STO.yml: -------------------------------------------------------------------------------- 1 | trainer: property 2 | 3 | task: 4 | identifier: "my_train_job" 5 | reprocess: False 6 | parallel: True 7 | seed: 0 8 | write_output: True 9 | verbosity: 5 10 | 11 | model: 12 | name: DOSPredict 13 | load_model: False 14 | save_model: True 15 | model_path: "my_model.pth" 16 | edge_steps: 50 17 | self_loop: True 18 | dim1: 370 19 | dim2: 370 20 | pre_fc_count: 1 21 | gc_count: 9 22 | batch_norm: True 23 | batch_track_stats: False 24 | dropout_rate: 0.05 25 | 26 | optim: 27 | max_epochs: 2000 28 | lr: 0.00047 29 | loss: 30 | loss_type: "DOSLoss" 31 | loss_args: {"loss_fn": "l1_loss", "scaling_weight": 0.05, "cumsum_weight": 0.005, "features_weight": 0.15} 32 | batch_size: 180 33 | optimizer: 34 | optimizer_type: "AdamW" 35 | optimizer_args: {"weight_decay":0.1} 36 | scheduler: 37 | scheduler_type: "ReduceLROnPlateau" 38 | scheduler_args: {"mode":"min", "factor":0.8, "patience":40, "min_lr":0.00001, "threshold":0.0002} 39 | 40 | dataset: 41 | processed: True 42 | src: "/global/cfs/projectdirs/m3641/Shared/Materials_datasets/STO_DOS_data/raw/" 43 | target_path: "/global/cfs/projectdirs/m3641/Shared/Materials_datasets/STO_DOS_data/targets.csv" 44 | pt_path: "/global/cfs/projectdirs/m3641/Sarah/datasets/processed/STO_DOS_data/" 45 | data_format: "vasp" 46 | node_representation: "onehot" 47 | additional_attributes: ["features", "scaled", "scaling_factor"] 48 | verbose: True 49 | target_index: 0 50 | cutoff_radius : 8.0 51 | n_neighbors : 12 52 | edge_steps : 50 53 | train_ratio: 0.8 54 | val_ratio: 0.05 55 | test_ratio: 0.15 56 | -------------------------------------------------------------------------------- /configs/examples/config_alignn.yml: -------------------------------------------------------------------------------- 1 | trainer: property 2 | 3 | task: 4 | identifier: "alignn_train_100" 5 | reprocess: False 6 | parallel: True 7 | seed: 0 8 | save_dir: "." 9 | checkpoint_dir: "." 10 | write_output: True 11 | parallel: True 12 | # Training print out frequency (print per n number of epochs) 13 | verbosity: 1 14 | 15 | 16 | model: 17 | name: ALIGNN 18 | load_model: False 19 | save_model: True 20 | model_path: "alignn_model.pth" 21 | alignn_layers: 4 22 | gcn_layers: 4 23 | atom_input_features: 114 24 | edge_input_features: 50 25 | triplet_input_features: 40 26 | embedding_features: 64 27 | hidden_features: 256 28 | output_features: 1 29 | min_edge_distance: 0.0 30 | max_edge_distance: 8.0 31 | link: "identity" 32 | 33 | optim: 34 | max_epochs: 100 35 | lr: 0.001 36 | # Either custom or from torch.nn.functional library. If from torch, loss_type is TorchLossWrapper 37 | loss: 38 | loss_type: "TorchLossWrapper" 39 | loss_args: {"loss_fn": "mse_loss"} 40 | 41 | batch_size: 64 42 | 43 | optimizer: 44 | optimizer_type: "AdamW" 45 | optimizer_args: {"weight_decay": 0.00001} 46 | scheduler: 47 | scheduler_type: "OneCycleLR" 48 | # Look further into steps per epoch, for now hardcoded calculation from paper 49 | scheduler_args: {"max_lr": 0.001, "epochs": 300, "steps_per_epoch": 1} 50 | 51 | dataset: 52 | processed: False 53 | # Path to data files 54 | # src: "/global/cfs/projectdirs/m3641/Shared/Materials_datasets/MP_data_69K/raw/" 55 | src: "/storage/home/hhive1/sbaskaran31/scratch/MP_data_69K/raw/" 56 | # Path to target file within data_path 57 | # target_path: "/global/cfs/projectdirs/m3641/Shared/Materials_datasets/MP_data_69K/targets.csv" 58 | target_path: "/storage/home/hhive1/sbaskaran31/scratch/MP_data_69K/targets.csv" 59 | # Path to save processed data.pt file (a directory path not filepath) 60 | # pt_path: "/global/cfs/projectdirs/m3641/Sidharth/datasets/MP_data_69K/" 61 | pt_path: "/storage/home/hhive1/sbaskaran31/scratch/MP_data_69K/" 62 | transforms: 63 | - name: GetY 64 | args: 65 | index: 0 66 | otf: False 67 | - name: NumNodeTransform 68 | args: 69 | otf: False 70 | - name: LineGraphMod 71 | args: 72 | otf: False 73 | - name: ToFloat 74 | args: 75 | otf: False 76 | # Format of data files (limit to those supported by ASE) 77 | data_format: "json" 78 | # Method of obtaining atom idctionary: available:(onehot) 79 | node_representation: "onehot" 80 | additional_attributes: [] 81 | # Print out processing info 82 | verbose: True 83 | # Loading dataset params 84 | # Index of target column in targets.csv 85 | # graph specific settings 86 | cutoff_radius : 8.0 87 | n_neighbors : 12 88 | edge_steps : 50 89 | # Ratios for train/val/test split out of a total of 1 90 | train_ratio: 0.8 91 | val_ratio: 0.05 92 | test_ratio: 0.15 93 | -------------------------------------------------------------------------------- /configs/examples/config_graphite.yml: -------------------------------------------------------------------------------- 1 | 2 | trainer: property 3 | 4 | task: 5 | # run_mode: train 6 | identifier: "alignn_train_100" 7 | 8 | reprocess: False 9 | 10 | 11 | parallel: True 12 | seed: 0 13 | #seed=0 means random initalization 14 | 15 | 16 | write_output: True 17 | parallel: True 18 | #Training print out frequency (print per n number of epochs) 19 | verbosity: 1 20 | 21 | 22 | 23 | model: 24 | name: ALIGNN_GRAPHITE 25 | load_model: False 26 | save_model: True 27 | model_path: "alignn_graphite_model.pth" 28 | num_interactions: 4 29 | num_species: 3 30 | cutoff: 3.0 31 | dim: 64 32 | # min_angle: float = 0.0, 33 | # max_angle: float = torch.acos(torch.zeros(1)).item() * 2, 34 | link: "identity" 35 | 36 | optim: 37 | max_epochs: 103 38 | lr: 0.001 39 | #Either custom or from torch.nn.functional library. If from torch, loss_type is TorchLossWrapper 40 | loss: 41 | loss_type: "TorchLossWrapper" 42 | loss_args: {"loss_fn": "mse_loss"} 43 | 44 | batch_size: 64 45 | 46 | optimizer: 47 | optimizer_type: "AdamW" 48 | optimizer_args: {"weight_decay": 0.00001} 49 | scheduler: 50 | scheduler_type: "OneCycleLR" 51 | # Look further into steps per epoch, for now hardcoded calculation from paper 52 | scheduler_args: {"max_lr": 0.001, "epochs": 300, "steps_per_epoch": 1} 53 | 54 | dataset: 55 | processed: True # if False, need to preprocessor data and generate .pt file 56 | # Whether to use "inmemory" or "large" format for pytorch-geometric dataset. Reccomend inmemory unless the dataset is too large 57 | # dataset_type: "inmemory" 58 | #Path to data files 59 | src: "/global/cfs/projectdirs/m3641/Shared/Materials_datasets/MP_data_69K/raw/" 60 | #Path to target file within data_path 61 | target_path: "/global/cfs/projectdirs/m3641/Shared/Materials_datasets/MP_data_69K/targets.csv" 62 | #Path to save processed data.pt file (a directory path not filepath) 63 | pt_path: "/global/cfs/projectdirs/m3641/Sidharth/datasets/MP_data_69K/" 64 | transforms: 65 | - name: GetY 66 | args: 67 | index: 0 68 | otf: False 69 | - name: NumNodeTransform 70 | args: 71 | otf: False 72 | - name: LineGraphMod 73 | args: 74 | otf: False 75 | - name: ToFloat 76 | args: 77 | otf: False 78 | #Format of data files (limit to those supported by ASE) 79 | data_format: "json" 80 | #Method of obtaining atom idctionary: available:(onehot) 81 | node_representation: "onehot" 82 | additional_attributes: [] 83 | #Print out processing info 84 | verbose: True 85 | 86 | #Loading dataset params 87 | #Index of target column in targets.csv 88 | target_index: 0 89 | 90 | #graph specific settings 91 | cutoff_radius : 8.0 92 | n_neighbors : 12 93 | edge_steps : 50 94 | 95 | #Ratios for train/val/test split out of a total of 1 96 | train_ratio: 0.8 97 | val_ratio: 0.05 98 | test_ratio: 0.15 99 | -------------------------------------------------------------------------------- /configs/examples/config_mpnn.yml: -------------------------------------------------------------------------------- 1 | trainer: property 2 | 3 | task: 4 | identifier: "mpnn_train_250" 5 | reprocess: False 6 | parallel: True 7 | seed: 0 8 | write_output: True 9 | parallel: True 10 | verbosity: 5 11 | 12 | model: 13 | name: MPNN 14 | load_model: False 15 | save_model: True 16 | model_path: "mpnn_model.pth" 17 | edge_steps: 50 18 | self_loop: True 19 | # model attributes 20 | dim1: 100 21 | dim2: 100 22 | dim3: 100 23 | pre_fc_count: 1 24 | gc_count: 4 25 | post_fc_count: 3 26 | pool: "global_mean_pool" 27 | pool_order: "early" 28 | batch_norm: True 29 | batch_track_stats: True 30 | act: "relu" 31 | dropout_rate: 0.0 32 | 33 | optim: 34 | max_epochs: 250 35 | max_checkpoint_epochs: 0 36 | lr: 0.001 37 | # Either custom or from torch.nn.functional library. If from torch, loss_type is TorchLossWrapper 38 | loss: 39 | loss_type: "TorchLossWrapper" 40 | loss_args: {"loss_fn": "l1_loss"} 41 | 42 | batch_size: 100 43 | optimizer: 44 | optimizer_type: "AdamW" 45 | optimizer_args: {} 46 | scheduler: 47 | scheduler_type: "ReduceLROnPlateau" 48 | scheduler_args: {"mode":"min", "factor":0.8, "patience":10, "min_lr":0.00001, "threshold":0.0002} 49 | 50 | dataset: 51 | processed: False 52 | # Path to data files 53 | src: "data/test_data/raw/" 54 | target_path: "data/test_data/targets.csv" 55 | pt_path: "data/test_data/processed/" 56 | 57 | transforms: 58 | - name: GetY 59 | args: 60 | index: 0 61 | otf: False # Optional parameter, default is False 62 | # Format of data files (limit to those supported by ASE) 63 | data_format: "json" 64 | # Method of obtaining atom idctionary: available:(onehot) 65 | node_representation: "onehot" 66 | additional_attributes: [] 67 | # Print out processing info 68 | verbose: True 69 | # Index of target column in targets.csv 70 | # graph specific settings 71 | cutoff_radius : 8.0 72 | n_neighbors : 12 73 | edge_steps : 50 74 | # Ratios for train/val/test split out of a total of 1 75 | train_ratio: 0.8 76 | val_ratio: 0.05 77 | test_ratio: 0.15 78 | -------------------------------------------------------------------------------- /data/test_data/README.md: -------------------------------------------------------------------------------- 1 | Description: 2 | 3 | This is a collection of datasets intended to test basic functionality of the package on several core tasks: 4 | 5 | 1. Graph level prediction of scalar properties with data_graph_scalar.json. The property being predicted is energy in units of electron volts. 6 | 7 | 2. Graph level prediction of vector quantities with data_graph_vector.json. The property being predicted is average absolute forces in x, y, and z directions. 8 | 9 | 3. Node level prediction of scalar quantities with data_node_scalar.json. The property being predicted is average absolute force per atom. 10 | 11 | 4. Node level prediction of vector quantities with data_node_vector.json. The property being predicted is force in x, y, and z directions per atom. 12 | 13 | 5. Prediction on a dataset with periodic and non-periodic structures with data_graph_scalar_cell_mixed.json. Half the dataset contains the cell parameter and the other half does not. 14 | 15 | 6. Prediction on a dataset stored as individual .cif structure files and graph level target properties in targets.csv. 16 | 17 | 7. Prediction on a dataset with manual training, validation, testing, and prediction splits, stored as separate files in raw_graph_scalar_manual_split 18 | 19 | Note: These datasets are too small to be used to evaluate the performance of a GNN model. They are intended to be used for development purposes or testing a successful installation. 20 | 21 | Reference(s): 22 | Source: Data generated within Fung Group. -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/0.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.31258 0.56928 0.70807 1.0000 27 | Pt Pt2 1.0 0.44990 0.44699 0.63337 1.0000 28 | Pt Pt3 1.0 0.34186 0.58136 0.48299 1.0000 29 | Pt Pt4 1.0 0.35030 0.69592 0.30755 1.0000 30 | Pt Pt5 1.0 0.45880 0.33371 0.59537 1.0000 31 | Pt Pt6 1.0 0.34797 0.54564 0.26191 1.0000 32 | Pt Pt7 1.0 0.44868 0.54308 0.33163 1.0000 33 | Pt Pt8 1.0 0.41058 0.53820 0.59128 1.0000 34 | Pt Pt9 1.0 0.72623 0.53229 0.58446 1.0000 35 | Pt Pt10 1.0 0.73307 0.57193 0.39711 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/1.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.31614 0.56853 0.70424 1.0000 27 | Pt Pt2 1.0 0.46962 0.41768 0.66160 1.0000 28 | Pt Pt3 1.0 0.34415 0.58240 0.47811 1.0000 29 | Pt Pt4 1.0 0.35081 0.68961 0.30781 1.0000 30 | Pt Pt5 1.0 0.46128 0.31192 0.58933 1.0000 31 | Pt Pt6 1.0 0.33010 0.55030 0.25037 1.0000 32 | Pt Pt7 1.0 0.46411 0.54454 0.34665 1.0000 33 | Pt Pt8 1.0 0.38487 0.58925 0.57413 1.0000 34 | Pt Pt9 1.0 0.72625 0.53327 0.57967 1.0000 35 | Pt Pt10 1.0 0.73266 0.57090 0.40183 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/10.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32094 0.56705 0.70157 1.0000 27 | Pt Pt2 1.0 0.45553 0.44152 0.64834 1.0000 28 | Pt Pt3 1.0 0.34708 0.58544 0.45820 1.0000 29 | Pt Pt4 1.0 0.35293 0.67621 0.31151 1.0000 30 | Pt Pt5 1.0 0.46121 0.31749 0.59079 1.0000 31 | Pt Pt6 1.0 0.33955 0.55607 0.25966 1.0000 32 | Pt Pt7 1.0 0.44723 0.55120 0.34555 1.0000 33 | Pt Pt8 1.0 0.39753 0.55939 0.59675 1.0000 34 | Pt Pt9 1.0 0.72637 0.53589 0.56686 1.0000 35 | Pt Pt10 1.0 0.73161 0.56816 0.41449 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/11.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32116 0.56683 0.70220 1.0000 27 | Pt Pt2 1.0 0.45477 0.44117 0.64763 1.0000 28 | Pt Pt3 1.0 0.34914 0.58573 0.45576 1.0000 29 | Pt Pt4 1.0 0.35358 0.67495 0.31349 1.0000 30 | Pt Pt5 1.0 0.46143 0.31838 0.59139 1.0000 31 | Pt Pt6 1.0 0.33911 0.55551 0.25916 1.0000 32 | Pt Pt7 1.0 0.44566 0.55263 0.34719 1.0000 33 | Pt Pt8 1.0 0.39737 0.55917 0.59560 1.0000 34 | Pt Pt9 1.0 0.72642 0.53666 0.56312 1.0000 35 | Pt Pt10 1.0 0.73134 0.56737 0.41820 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/12.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32161 0.56639 0.70342 1.0000 27 | Pt Pt2 1.0 0.45329 0.44050 0.64625 1.0000 28 | Pt Pt3 1.0 0.35316 0.58629 0.45099 1.0000 29 | Pt Pt4 1.0 0.35486 0.67252 0.31733 1.0000 30 | Pt Pt5 1.0 0.46184 0.32013 0.59254 1.0000 31 | Pt Pt6 1.0 0.33826 0.55443 0.25820 1.0000 32 | Pt Pt7 1.0 0.44262 0.55541 0.35038 1.0000 33 | Pt Pt8 1.0 0.39705 0.55875 0.59338 1.0000 34 | Pt Pt9 1.0 0.72650 0.53816 0.55584 1.0000 35 | Pt Pt10 1.0 0.73080 0.56582 0.42540 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/13.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32154 0.56646 0.70324 1.0000 27 | Pt Pt2 1.0 0.45352 0.44060 0.64647 1.0000 28 | Pt Pt3 1.0 0.35254 0.58621 0.45173 1.0000 29 | Pt Pt4 1.0 0.35466 0.67290 0.31673 1.0000 30 | Pt Pt5 1.0 0.46178 0.31986 0.59236 1.0000 31 | Pt Pt6 1.0 0.33839 0.55460 0.25835 1.0000 32 | Pt Pt7 1.0 0.44309 0.55498 0.34989 1.0000 33 | Pt Pt8 1.0 0.39710 0.55882 0.59372 1.0000 34 | Pt Pt9 1.0 0.72649 0.53793 0.55697 1.0000 35 | Pt Pt10 1.0 0.73088 0.56606 0.42428 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/14.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32128 0.56636 0.70402 1.0000 27 | Pt Pt2 1.0 0.45302 0.44146 0.64649 1.0000 28 | Pt Pt3 1.0 0.35270 0.58648 0.45291 1.0000 29 | Pt Pt4 1.0 0.35487 0.67456 0.31834 1.0000 30 | Pt Pt5 1.0 0.46194 0.31932 0.59221 1.0000 31 | Pt Pt6 1.0 0.33753 0.55257 0.25670 1.0000 32 | Pt Pt7 1.0 0.44413 0.55479 0.34997 1.0000 33 | Pt Pt8 1.0 0.39722 0.55889 0.59186 1.0000 34 | Pt Pt9 1.0 0.72647 0.53800 0.55659 1.0000 35 | Pt Pt10 1.0 0.73083 0.56599 0.42464 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/15.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32081 0.56620 0.70543 1.0000 27 | Pt Pt2 1.0 0.45214 0.44299 0.64654 1.0000 28 | Pt Pt3 1.0 0.35298 0.58697 0.45503 1.0000 29 | Pt Pt4 1.0 0.35525 0.67754 0.32124 1.0000 30 | Pt Pt5 1.0 0.46223 0.31834 0.59194 1.0000 31 | Pt Pt6 1.0 0.33599 0.54892 0.25374 1.0000 32 | Pt Pt7 1.0 0.44600 0.55446 0.35011 1.0000 33 | Pt Pt8 1.0 0.39743 0.55901 0.58854 1.0000 34 | Pt Pt9 1.0 0.72644 0.53812 0.55590 1.0000 35 | Pt Pt10 1.0 0.73073 0.56585 0.42528 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/16.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32309 0.56497 0.70458 1.0000 27 | Pt Pt2 1.0 0.44940 0.44422 0.64562 1.0000 28 | Pt Pt3 1.0 0.35497 0.58832 0.45749 1.0000 29 | Pt Pt4 1.0 0.35608 0.67417 0.32553 1.0000 30 | Pt Pt5 1.0 0.46282 0.31889 0.59262 1.0000 31 | Pt Pt6 1.0 0.33655 0.54852 0.25363 1.0000 32 | Pt Pt7 1.0 0.44519 0.55555 0.34867 1.0000 33 | Pt Pt8 1.0 0.39508 0.55980 0.58453 1.0000 34 | Pt Pt9 1.0 0.72626 0.53795 0.55646 1.0000 35 | Pt Pt10 1.0 0.73057 0.56601 0.42462 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/17.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32644 0.56310 0.70350 1.0000 27 | Pt Pt2 1.0 0.44517 0.44628 0.64425 1.0000 28 | Pt Pt3 1.0 0.35800 0.59042 0.46148 1.0000 29 | Pt Pt4 1.0 0.35737 0.66956 0.33240 1.0000 30 | Pt Pt5 1.0 0.46374 0.31956 0.59360 1.0000 31 | Pt Pt6 1.0 0.33715 0.54739 0.25304 1.0000 32 | Pt Pt7 1.0 0.44425 0.55714 0.34653 1.0000 33 | Pt Pt8 1.0 0.39158 0.56101 0.57803 1.0000 34 | Pt Pt9 1.0 0.72599 0.53771 0.55719 1.0000 35 | Pt Pt10 1.0 0.73030 0.56623 0.42371 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/18.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32375 0.56460 0.70436 1.0000 27 | Pt Pt2 1.0 0.44856 0.44463 0.64535 1.0000 28 | Pt Pt3 1.0 0.35557 0.58874 0.45828 1.0000 29 | Pt Pt4 1.0 0.35633 0.67326 0.32690 1.0000 30 | Pt Pt5 1.0 0.46300 0.31902 0.59281 1.0000 31 | Pt Pt6 1.0 0.33667 0.54830 0.25352 1.0000 32 | Pt Pt7 1.0 0.44500 0.55587 0.34824 1.0000 33 | Pt Pt8 1.0 0.39438 0.56004 0.58324 1.0000 34 | Pt Pt9 1.0 0.72621 0.53791 0.55660 1.0000 35 | Pt Pt10 1.0 0.73051 0.56606 0.42443 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/19.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32506 0.56386 0.70371 1.0000 27 | Pt Pt2 1.0 0.44715 0.44511 0.64492 1.0000 28 | Pt Pt3 1.0 0.35604 0.58954 0.45755 1.0000 29 | Pt Pt4 1.0 0.35639 0.67190 0.32854 1.0000 30 | Pt Pt5 1.0 0.46323 0.31955 0.59323 1.0000 31 | Pt Pt6 1.0 0.33680 0.54839 0.25340 1.0000 32 | Pt Pt7 1.0 0.44491 0.55606 0.34796 1.0000 33 | Pt Pt8 1.0 0.39384 0.56005 0.58346 1.0000 34 | Pt Pt9 1.0 0.72614 0.53791 0.55645 1.0000 35 | Pt Pt10 1.0 0.73042 0.56605 0.42452 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/2.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.31552 0.56866 0.70491 1.0000 27 | Pt Pt2 1.0 0.46615 0.42283 0.65664 1.0000 28 | Pt Pt3 1.0 0.34375 0.58222 0.47897 1.0000 29 | Pt Pt4 1.0 0.35072 0.69072 0.30777 1.0000 30 | Pt Pt5 1.0 0.46084 0.31575 0.59039 1.0000 31 | Pt Pt6 1.0 0.33324 0.54948 0.25240 1.0000 32 | Pt Pt7 1.0 0.46140 0.54429 0.34401 1.0000 33 | Pt Pt8 1.0 0.38939 0.58029 0.57714 1.0000 34 | Pt Pt9 1.0 0.72625 0.53310 0.58051 1.0000 35 | Pt Pt10 1.0 0.73273 0.57108 0.40100 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/20.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32717 0.56266 0.70266 1.0000 27 | Pt Pt2 1.0 0.44489 0.44588 0.64422 1.0000 28 | Pt Pt3 1.0 0.35681 0.59084 0.45638 1.0000 29 | Pt Pt4 1.0 0.35649 0.66970 0.33117 1.0000 30 | Pt Pt5 1.0 0.46361 0.32039 0.59389 1.0000 31 | Pt Pt6 1.0 0.33700 0.54854 0.25320 1.0000 32 | Pt Pt7 1.0 0.44476 0.55636 0.34752 1.0000 33 | Pt Pt8 1.0 0.39296 0.56007 0.58383 1.0000 34 | Pt Pt9 1.0 0.72603 0.53792 0.55621 1.0000 35 | Pt Pt10 1.0 0.73027 0.56603 0.42466 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/21.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32840 0.56153 0.70289 1.0000 27 | Pt Pt2 1.0 0.44315 0.44587 0.64399 1.0000 28 | Pt Pt3 1.0 0.35705 0.59162 0.45598 1.0000 29 | Pt Pt4 1.0 0.35589 0.66915 0.33254 1.0000 30 | Pt Pt5 1.0 0.46392 0.32121 0.59452 1.0000 31 | Pt Pt6 1.0 0.33695 0.54872 0.25268 1.0000 32 | Pt Pt7 1.0 0.44576 0.55563 0.34726 1.0000 33 | Pt Pt8 1.0 0.39282 0.56074 0.58310 1.0000 34 | Pt Pt9 1.0 0.72593 0.53792 0.55605 1.0000 35 | Pt Pt10 1.0 0.73013 0.56602 0.42473 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/22.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.33208 0.55811 0.70357 1.0000 27 | Pt Pt2 1.0 0.43791 0.44584 0.64328 1.0000 28 | Pt Pt3 1.0 0.35778 0.59396 0.45478 1.0000 29 | Pt Pt4 1.0 0.35409 0.66747 0.33665 1.0000 30 | Pt Pt5 1.0 0.46484 0.32366 0.59639 1.0000 31 | Pt Pt6 1.0 0.33678 0.54925 0.25113 1.0000 32 | Pt Pt7 1.0 0.44873 0.55343 0.34649 1.0000 33 | Pt Pt8 1.0 0.39240 0.56278 0.58093 1.0000 34 | Pt Pt9 1.0 0.72564 0.53791 0.55556 1.0000 35 | Pt Pt10 1.0 0.72974 0.56600 0.42496 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/23.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.33341 0.55653 0.70413 1.0000 27 | Pt Pt2 1.0 0.43568 0.44641 0.64357 1.0000 28 | Pt Pt3 1.0 0.35787 0.59411 0.45492 1.0000 29 | Pt Pt4 1.0 0.35336 0.66740 0.33685 1.0000 30 | Pt Pt5 1.0 0.46533 0.32391 0.59685 1.0000 31 | Pt Pt6 1.0 0.33711 0.54971 0.25094 1.0000 32 | Pt Pt7 1.0 0.44943 0.55257 0.34604 1.0000 33 | Pt Pt8 1.0 0.39270 0.56387 0.58003 1.0000 34 | Pt Pt9 1.0 0.72551 0.53784 0.55564 1.0000 35 | Pt Pt10 1.0 0.72958 0.56605 0.42478 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/24.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.33739 0.55178 0.70580 1.0000 27 | Pt Pt2 1.0 0.42902 0.44811 0.64445 1.0000 28 | Pt Pt3 1.0 0.35815 0.59457 0.45534 1.0000 29 | Pt Pt4 1.0 0.35116 0.66718 0.33745 1.0000 30 | Pt Pt5 1.0 0.46680 0.32466 0.59822 1.0000 31 | Pt Pt6 1.0 0.33808 0.55109 0.25036 1.0000 32 | Pt Pt7 1.0 0.45154 0.55002 0.34470 1.0000 33 | Pt Pt8 1.0 0.39361 0.56714 0.57731 1.0000 34 | Pt Pt9 1.0 0.72514 0.53766 0.55588 1.0000 35 | Pt Pt10 1.0 0.72911 0.56619 0.42424 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/25.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34127 0.54693 0.70691 1.0000 27 | Pt Pt2 1.0 0.42284 0.44885 0.64571 1.0000 28 | Pt Pt3 1.0 0.35764 0.59427 0.45355 1.0000 29 | Pt Pt4 1.0 0.34955 0.66721 0.33646 1.0000 30 | Pt Pt5 1.0 0.46794 0.32605 0.59968 1.0000 31 | Pt Pt6 1.0 0.33964 0.55258 0.25043 1.0000 32 | Pt Pt7 1.0 0.45188 0.54842 0.34369 1.0000 33 | Pt Pt8 1.0 0.39582 0.57028 0.57749 1.0000 34 | Pt Pt9 1.0 0.72478 0.53754 0.55588 1.0000 35 | Pt Pt10 1.0 0.72863 0.56628 0.42394 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/26.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34200 0.54543 0.70793 1.0000 27 | Pt Pt2 1.0 0.42153 0.44478 0.64553 1.0000 28 | Pt Pt3 1.0 0.35677 0.59214 0.45089 1.0000 29 | Pt Pt4 1.0 0.34949 0.66838 0.33372 1.0000 30 | Pt Pt5 1.0 0.46778 0.32896 0.60122 1.0000 31 | Pt Pt6 1.0 0.34115 0.55313 0.25062 1.0000 32 | Pt Pt7 1.0 0.44960 0.54894 0.34403 1.0000 33 | Pt Pt8 1.0 0.39884 0.57290 0.58018 1.0000 34 | Pt Pt9 1.0 0.72455 0.53759 0.55522 1.0000 35 | Pt Pt10 1.0 0.72828 0.56617 0.42439 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/27.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34219 0.54499 0.70811 1.0000 27 | Pt Pt2 1.0 0.42065 0.44478 0.64561 1.0000 28 | Pt Pt3 1.0 0.35676 0.59090 0.45100 1.0000 29 | Pt Pt4 1.0 0.34959 0.66924 0.33266 1.0000 30 | Pt Pt5 1.0 0.46819 0.32875 0.60136 1.0000 31 | Pt Pt6 1.0 0.34143 0.55300 0.25018 1.0000 32 | Pt Pt7 1.0 0.44883 0.54928 0.34450 1.0000 33 | Pt Pt8 1.0 0.39975 0.57374 0.58079 1.0000 34 | Pt Pt9 1.0 0.72445 0.53755 0.55522 1.0000 35 | Pt Pt10 1.0 0.72815 0.56618 0.42431 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/28.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34248 0.54433 0.70838 1.0000 27 | Pt Pt2 1.0 0.41936 0.44477 0.64573 1.0000 28 | Pt Pt3 1.0 0.35675 0.58909 0.45118 1.0000 29 | Pt Pt4 1.0 0.34974 0.67051 0.33111 1.0000 30 | Pt Pt5 1.0 0.46878 0.32843 0.60155 1.0000 31 | Pt Pt6 1.0 0.34183 0.55281 0.24952 1.0000 32 | Pt Pt7 1.0 0.44769 0.54978 0.34519 1.0000 33 | Pt Pt8 1.0 0.40110 0.57499 0.58168 1.0000 34 | Pt Pt9 1.0 0.72430 0.53750 0.55522 1.0000 35 | Pt Pt10 1.0 0.72796 0.56619 0.42419 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/29.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34231 0.54463 0.70851 1.0000 27 | Pt Pt2 1.0 0.41921 0.44485 0.64525 1.0000 28 | Pt Pt3 1.0 0.35695 0.58898 0.45162 1.0000 29 | Pt Pt4 1.0 0.34996 0.67024 0.33143 1.0000 30 | Pt Pt5 1.0 0.46906 0.32807 0.60159 1.0000 31 | Pt Pt6 1.0 0.34170 0.55274 0.24902 1.0000 32 | Pt Pt7 1.0 0.44761 0.55000 0.34540 1.0000 33 | Pt Pt8 1.0 0.40110 0.57522 0.58157 1.0000 34 | Pt Pt9 1.0 0.72422 0.53746 0.55530 1.0000 35 | Pt Pt10 1.0 0.72788 0.56621 0.42406 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/3.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.31405 0.56897 0.70649 1.0000 27 | Pt Pt2 1.0 0.45803 0.43491 0.64501 1.0000 28 | Pt Pt3 1.0 0.34281 0.58179 0.48098 1.0000 29 | Pt Pt4 1.0 0.35051 0.69332 0.30766 1.0000 30 | Pt Pt5 1.0 0.45982 0.32473 0.59288 1.0000 31 | Pt Pt6 1.0 0.34061 0.54756 0.25715 1.0000 32 | Pt Pt7 1.0 0.45504 0.54368 0.33782 1.0000 33 | Pt Pt8 1.0 0.39999 0.55924 0.58421 1.0000 34 | Pt Pt9 1.0 0.72624 0.53269 0.58249 1.0000 35 | Pt Pt10 1.0 0.73290 0.57151 0.39905 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/30.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34192 0.54554 0.70869 1.0000 27 | Pt Pt2 1.0 0.41866 0.44501 0.64357 1.0000 28 | Pt Pt3 1.0 0.35750 0.58867 0.45283 1.0000 29 | Pt Pt4 1.0 0.35070 0.66913 0.33247 1.0000 30 | Pt Pt5 1.0 0.46988 0.32714 0.60185 1.0000 31 | Pt Pt6 1.0 0.34145 0.55262 0.24750 1.0000 32 | Pt Pt7 1.0 0.44720 0.55077 0.34589 1.0000 33 | Pt Pt8 1.0 0.40111 0.57591 0.58174 1.0000 34 | Pt Pt9 1.0 0.72396 0.53737 0.55537 1.0000 35 | Pt Pt10 1.0 0.72760 0.56625 0.42381 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/31.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34194 0.54617 0.70835 1.0000 27 | Pt Pt2 1.0 0.41812 0.44493 0.64191 1.0000 28 | Pt Pt3 1.0 0.35779 0.58855 0.45337 1.0000 29 | Pt Pt4 1.0 0.35143 0.66771 0.33340 1.0000 30 | Pt Pt5 1.0 0.47043 0.32685 0.60231 1.0000 31 | Pt Pt6 1.0 0.34155 0.55273 0.24650 1.0000 32 | Pt Pt7 1.0 0.44652 0.55149 0.34594 1.0000 33 | Pt Pt8 1.0 0.40118 0.57639 0.58294 1.0000 34 | Pt Pt9 1.0 0.72372 0.53737 0.55509 1.0000 35 | Pt Pt10 1.0 0.72732 0.56621 0.42393 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/32.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34195 0.54648 0.70818 1.0000 27 | Pt Pt2 1.0 0.41786 0.44490 0.64112 1.0000 28 | Pt Pt3 1.0 0.35793 0.58849 0.45363 1.0000 29 | Pt Pt4 1.0 0.35177 0.66703 0.33383 1.0000 30 | Pt Pt5 1.0 0.47070 0.32671 0.60253 1.0000 31 | Pt Pt6 1.0 0.34159 0.55279 0.24602 1.0000 32 | Pt Pt7 1.0 0.44619 0.55183 0.34596 1.0000 33 | Pt Pt8 1.0 0.40121 0.57663 0.58352 1.0000 34 | Pt Pt9 1.0 0.72360 0.53737 0.55495 1.0000 35 | Pt Pt10 1.0 0.72718 0.56619 0.42399 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/33.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34218 0.54679 0.70792 1.0000 27 | Pt Pt2 1.0 0.41631 0.44434 0.63809 1.0000 28 | Pt Pt3 1.0 0.35835 0.58776 0.45651 1.0000 29 | Pt Pt4 1.0 0.35258 0.66529 0.33476 1.0000 30 | Pt Pt5 1.0 0.47168 0.32662 0.60371 1.0000 31 | Pt Pt6 1.0 0.34206 0.55309 0.24390 1.0000 32 | Pt Pt7 1.0 0.44553 0.55237 0.34526 1.0000 33 | Pt Pt8 1.0 0.40171 0.57869 0.58498 1.0000 34 | Pt Pt9 1.0 0.72302 0.53725 0.55474 1.0000 35 | Pt Pt10 1.0 0.72657 0.56619 0.42386 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/34.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34223 0.54686 0.70787 1.0000 27 | Pt Pt2 1.0 0.41596 0.44422 0.63740 1.0000 28 | Pt Pt3 1.0 0.35844 0.58759 0.45717 1.0000 29 | Pt Pt4 1.0 0.35277 0.66489 0.33498 1.0000 30 | Pt Pt5 1.0 0.47191 0.32660 0.60399 1.0000 31 | Pt Pt6 1.0 0.34216 0.55317 0.24341 1.0000 32 | Pt Pt7 1.0 0.44538 0.55249 0.34510 1.0000 33 | Pt Pt8 1.0 0.40183 0.57917 0.58531 1.0000 34 | Pt Pt9 1.0 0.72289 0.53723 0.55469 1.0000 35 | Pt Pt10 1.0 0.72642 0.56620 0.42383 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/35.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34238 0.54647 0.70804 1.0000 27 | Pt Pt2 1.0 0.41501 0.44439 0.63639 1.0000 28 | Pt Pt3 1.0 0.35876 0.58729 0.45772 1.0000 29 | Pt Pt4 1.0 0.35269 0.66448 0.33528 1.0000 30 | Pt Pt5 1.0 0.47238 0.32648 0.60449 1.0000 31 | Pt Pt6 1.0 0.34245 0.55338 0.24248 1.0000 32 | Pt Pt7 1.0 0.44520 0.55229 0.34492 1.0000 33 | Pt Pt8 1.0 0.40237 0.58025 0.58606 1.0000 34 | Pt Pt9 1.0 0.72261 0.53714 0.55474 1.0000 35 | Pt Pt10 1.0 0.72615 0.56624 0.42361 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/36.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34282 0.54539 0.70854 1.0000 27 | Pt Pt2 1.0 0.41232 0.44488 0.63356 1.0000 28 | Pt Pt3 1.0 0.35965 0.58644 0.45929 1.0000 29 | Pt Pt4 1.0 0.35246 0.66333 0.33614 1.0000 30 | Pt Pt5 1.0 0.47371 0.32613 0.60590 1.0000 31 | Pt Pt6 1.0 0.34327 0.55399 0.23987 1.0000 32 | Pt Pt7 1.0 0.44469 0.55171 0.34439 1.0000 33 | Pt Pt8 1.0 0.40388 0.58329 0.58817 1.0000 34 | Pt Pt9 1.0 0.72183 0.53689 0.55489 1.0000 35 | Pt Pt10 1.0 0.72537 0.56637 0.42299 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/37.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34292 0.54471 0.70904 1.0000 27 | Pt Pt2 1.0 0.41153 0.44464 0.63230 1.0000 28 | Pt Pt3 1.0 0.36043 0.58622 0.45935 1.0000 29 | Pt Pt4 1.0 0.35200 0.66283 0.33644 1.0000 30 | Pt Pt5 1.0 0.47391 0.32659 0.60666 1.0000 31 | Pt Pt6 1.0 0.34382 0.55449 0.23902 1.0000 32 | Pt Pt7 1.0 0.44431 0.55116 0.34431 1.0000 33 | Pt Pt8 1.0 0.40455 0.58457 0.58896 1.0000 34 | Pt Pt9 1.0 0.72149 0.53684 0.55463 1.0000 35 | Pt Pt10 1.0 0.72502 0.56636 0.42303 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/38.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34311 0.54343 0.70998 1.0000 27 | Pt Pt2 1.0 0.41005 0.44419 0.62993 1.0000 28 | Pt Pt3 1.0 0.36191 0.58579 0.45946 1.0000 29 | Pt Pt4 1.0 0.35114 0.66189 0.33700 1.0000 30 | Pt Pt5 1.0 0.47430 0.32746 0.60808 1.0000 31 | Pt Pt6 1.0 0.34485 0.55544 0.23742 1.0000 32 | Pt Pt7 1.0 0.44361 0.55013 0.34416 1.0000 33 | Pt Pt8 1.0 0.40580 0.58698 0.59044 1.0000 34 | Pt Pt9 1.0 0.72084 0.53677 0.55416 1.0000 35 | Pt Pt10 1.0 0.72437 0.56633 0.42311 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/39.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34352 0.54245 0.71009 1.0000 27 | Pt Pt2 1.0 0.40937 0.44477 0.62887 1.0000 28 | Pt Pt3 1.0 0.36333 0.58575 0.45988 1.0000 29 | Pt Pt4 1.0 0.35032 0.66141 0.33711 1.0000 30 | Pt Pt5 1.0 0.47432 0.32805 0.60884 1.0000 31 | Pt Pt6 1.0 0.34559 0.55621 0.23686 1.0000 32 | Pt Pt7 1.0 0.44316 0.54924 0.34407 1.0000 33 | Pt Pt8 1.0 0.40589 0.58751 0.59096 1.0000 34 | Pt Pt9 1.0 0.72047 0.53670 0.55394 1.0000 35 | Pt Pt10 1.0 0.72401 0.56633 0.42311 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/4.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.31331 0.56912 0.70728 1.0000 27 | Pt Pt2 1.0 0.45396 0.44095 0.63919 1.0000 28 | Pt Pt3 1.0 0.34234 0.58158 0.48199 1.0000 29 | Pt Pt4 1.0 0.35040 0.69462 0.30761 1.0000 30 | Pt Pt5 1.0 0.45931 0.32922 0.59412 1.0000 31 | Pt Pt6 1.0 0.34429 0.54660 0.25953 1.0000 32 | Pt Pt7 1.0 0.45186 0.54338 0.33472 1.0000 33 | Pt Pt8 1.0 0.40529 0.54872 0.58775 1.0000 34 | Pt Pt9 1.0 0.72624 0.53249 0.58348 1.0000 35 | Pt Pt10 1.0 0.73299 0.57172 0.39808 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/40.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34468 0.53965 0.71041 1.0000 27 | Pt Pt2 1.0 0.40746 0.44640 0.62586 1.0000 28 | Pt Pt3 1.0 0.36737 0.58562 0.46109 1.0000 29 | Pt Pt4 1.0 0.34799 0.66003 0.33742 1.0000 30 | Pt Pt5 1.0 0.47437 0.32973 0.61100 1.0000 31 | Pt Pt6 1.0 0.34768 0.55840 0.23526 1.0000 32 | Pt Pt7 1.0 0.44187 0.54671 0.34381 1.0000 33 | Pt Pt8 1.0 0.40614 0.58900 0.59243 1.0000 34 | Pt Pt9 1.0 0.71942 0.53653 0.55332 1.0000 35 | Pt Pt10 1.0 0.72301 0.56633 0.42313 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/41.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34487 0.53882 0.71104 1.0000 27 | Pt Pt2 1.0 0.40746 0.44632 0.62395 1.0000 28 | Pt Pt3 1.0 0.36959 0.58579 0.46148 1.0000 29 | Pt Pt4 1.0 0.34695 0.65914 0.33821 1.0000 30 | Pt Pt5 1.0 0.47401 0.33094 0.61209 1.0000 31 | Pt Pt6 1.0 0.34865 0.55939 0.23401 1.0000 32 | Pt Pt7 1.0 0.44127 0.54546 0.34378 1.0000 33 | Pt Pt8 1.0 0.40592 0.58979 0.59309 1.0000 34 | Pt Pt9 1.0 0.71881 0.53628 0.55356 1.0000 35 | Pt Pt10 1.0 0.72246 0.56647 0.42254 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/42.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34486 0.53883 0.71103 1.0000 27 | Pt Pt2 1.0 0.40746 0.44632 0.62398 1.0000 28 | Pt Pt3 1.0 0.36956 0.58579 0.46147 1.0000 29 | Pt Pt4 1.0 0.34697 0.65916 0.33820 1.0000 30 | Pt Pt5 1.0 0.47402 0.33092 0.61207 1.0000 31 | Pt Pt6 1.0 0.34864 0.55937 0.23403 1.0000 32 | Pt Pt7 1.0 0.44128 0.54548 0.34378 1.0000 33 | Pt Pt8 1.0 0.40593 0.58978 0.59308 1.0000 34 | Pt Pt9 1.0 0.71882 0.53628 0.55356 1.0000 35 | Pt Pt10 1.0 0.72246 0.56646 0.42255 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/43.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34489 0.53876 0.71121 1.0000 27 | Pt Pt2 1.0 0.40757 0.44686 0.62332 1.0000 28 | Pt Pt3 1.0 0.37036 0.58597 0.46148 1.0000 29 | Pt Pt4 1.0 0.34680 0.65854 0.33901 1.0000 30 | Pt Pt5 1.0 0.47410 0.33073 0.61235 1.0000 31 | Pt Pt6 1.0 0.34897 0.55972 0.23320 1.0000 32 | Pt Pt7 1.0 0.44108 0.54510 0.34363 1.0000 33 | Pt Pt8 1.0 0.40556 0.59006 0.59360 1.0000 34 | Pt Pt9 1.0 0.71850 0.53617 0.55355 1.0000 35 | Pt Pt10 1.0 0.72217 0.56650 0.42239 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/44.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34490 0.53870 0.71133 1.0000 27 | Pt Pt2 1.0 0.40764 0.44723 0.62286 1.0000 28 | Pt Pt3 1.0 0.37092 0.58609 0.46149 1.0000 29 | Pt Pt4 1.0 0.34669 0.65811 0.33958 1.0000 30 | Pt Pt5 1.0 0.47416 0.33060 0.61255 1.0000 31 | Pt Pt6 1.0 0.34921 0.55997 0.23262 1.0000 32 | Pt Pt7 1.0 0.44093 0.54483 0.34353 1.0000 33 | Pt Pt8 1.0 0.40530 0.59025 0.59397 1.0000 34 | Pt Pt9 1.0 0.71827 0.53610 0.55354 1.0000 35 | Pt Pt10 1.0 0.72196 0.56652 0.42227 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/45.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34482 0.53871 0.71152 1.0000 27 | Pt Pt2 1.0 0.40802 0.44742 0.62238 1.0000 28 | Pt Pt3 1.0 0.37153 0.58611 0.46201 1.0000 29 | Pt Pt4 1.0 0.34666 0.65746 0.34012 1.0000 30 | Pt Pt5 1.0 0.47414 0.33045 0.61273 1.0000 31 | Pt Pt6 1.0 0.34954 0.56040 0.23196 1.0000 32 | Pt Pt7 1.0 0.44081 0.54453 0.34313 1.0000 33 | Pt Pt8 1.0 0.40489 0.59080 0.59424 1.0000 34 | Pt Pt9 1.0 0.71793 0.53603 0.55326 1.0000 35 | Pt Pt10 1.0 0.72163 0.56650 0.42238 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/46.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34475 0.53871 0.71168 1.0000 27 | Pt Pt2 1.0 0.40834 0.44758 0.62196 1.0000 28 | Pt Pt3 1.0 0.37206 0.58612 0.46246 1.0000 29 | Pt Pt4 1.0 0.34664 0.65690 0.34060 1.0000 30 | Pt Pt5 1.0 0.47413 0.33031 0.61289 1.0000 31 | Pt Pt6 1.0 0.34984 0.56077 0.23139 1.0000 32 | Pt Pt7 1.0 0.44070 0.54428 0.34278 1.0000 33 | Pt Pt8 1.0 0.40453 0.59128 0.59448 1.0000 34 | Pt Pt9 1.0 0.71764 0.53598 0.55302 1.0000 35 | Pt Pt10 1.0 0.72135 0.56647 0.42247 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/47.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34479 0.53839 0.71133 1.0000 27 | Pt Pt2 1.0 0.40934 0.44778 0.62207 1.0000 28 | Pt Pt3 1.0 0.37268 0.58530 0.46320 1.0000 29 | Pt Pt4 1.0 0.34683 0.65567 0.34063 1.0000 30 | Pt Pt5 1.0 0.47380 0.33027 0.61297 1.0000 31 | Pt Pt6 1.0 0.35043 0.56190 0.23074 1.0000 32 | Pt Pt7 1.0 0.44046 0.54407 0.34206 1.0000 33 | Pt Pt8 1.0 0.40404 0.59273 0.59563 1.0000 34 | Pt Pt9 1.0 0.71693 0.53572 0.55302 1.0000 35 | Pt Pt10 1.0 0.72069 0.56657 0.42209 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/48.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34470 0.53812 0.71129 1.0000 27 | Pt Pt2 1.0 0.40977 0.44827 0.62229 1.0000 28 | Pt Pt3 1.0 0.37289 0.58474 0.46331 1.0000 29 | Pt Pt4 1.0 0.34687 0.65540 0.34076 1.0000 30 | Pt Pt5 1.0 0.47369 0.33008 0.61291 1.0000 31 | Pt Pt6 1.0 0.35058 0.56229 0.23019 1.0000 32 | Pt Pt7 1.0 0.44053 0.54395 0.34205 1.0000 33 | Pt Pt8 1.0 0.40400 0.59335 0.59599 1.0000 34 | Pt Pt9 1.0 0.71659 0.53562 0.55289 1.0000 35 | Pt Pt10 1.0 0.72036 0.56658 0.42206 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/49.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34455 0.53765 0.71121 1.0000 27 | Pt Pt2 1.0 0.41049 0.44909 0.62267 1.0000 28 | Pt Pt3 1.0 0.37325 0.58380 0.46350 1.0000 29 | Pt Pt4 1.0 0.34694 0.65495 0.34099 1.0000 30 | Pt Pt5 1.0 0.47350 0.32978 0.61281 1.0000 31 | Pt Pt6 1.0 0.35083 0.56295 0.22930 1.0000 32 | Pt Pt7 1.0 0.44064 0.54375 0.34202 1.0000 33 | Pt Pt8 1.0 0.40393 0.59438 0.59659 1.0000 34 | Pt Pt9 1.0 0.71604 0.53546 0.55266 1.0000 35 | Pt Pt10 1.0 0.71981 0.56660 0.42200 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/5.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.31376 0.56903 0.70680 1.0000 27 | Pt Pt2 1.0 0.45644 0.43727 0.64273 1.0000 28 | Pt Pt3 1.0 0.34262 0.58171 0.48137 1.0000 29 | Pt Pt4 1.0 0.35047 0.69383 0.30764 1.0000 30 | Pt Pt5 1.0 0.45962 0.32649 0.59337 1.0000 31 | Pt Pt6 1.0 0.34205 0.54718 0.25808 1.0000 32 | Pt Pt7 1.0 0.45379 0.54356 0.33661 1.0000 33 | Pt Pt8 1.0 0.40206 0.55513 0.58560 1.0000 34 | Pt Pt9 1.0 0.72624 0.53261 0.58287 1.0000 35 | Pt Pt10 1.0 0.73294 0.57159 0.39867 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/50.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34438 0.53751 0.71131 1.0000 27 | Pt Pt2 1.0 0.41101 0.44928 0.62277 1.0000 28 | Pt Pt3 1.0 0.37342 0.58336 0.46362 1.0000 29 | Pt Pt4 1.0 0.34696 0.65475 0.34115 1.0000 30 | Pt Pt5 1.0 0.47331 0.32982 0.61274 1.0000 31 | Pt Pt6 1.0 0.35101 0.56324 0.22894 1.0000 32 | Pt Pt7 1.0 0.44067 0.54366 0.34198 1.0000 33 | Pt Pt8 1.0 0.40391 0.59479 0.59670 1.0000 34 | Pt Pt9 1.0 0.71578 0.53537 0.55256 1.0000 35 | Pt Pt10 1.0 0.71954 0.56661 0.42196 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/51.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34387 0.53708 0.71159 1.0000 27 | Pt Pt2 1.0 0.41255 0.44986 0.62306 1.0000 28 | Pt Pt3 1.0 0.37394 0.58205 0.46399 1.0000 29 | Pt Pt4 1.0 0.34702 0.65417 0.34162 1.0000 30 | Pt Pt5 1.0 0.47274 0.32992 0.61256 1.0000 31 | Pt Pt6 1.0 0.35153 0.56412 0.22789 1.0000 32 | Pt Pt7 1.0 0.44076 0.54339 0.34188 1.0000 33 | Pt Pt8 1.0 0.40386 0.59605 0.59704 1.0000 34 | Pt Pt9 1.0 0.71500 0.53511 0.55227 1.0000 35 | Pt Pt10 1.0 0.71873 0.56664 0.42183 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/52.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34369 0.53701 0.71157 1.0000 27 | Pt Pt2 1.0 0.41339 0.45037 0.62317 1.0000 28 | Pt Pt3 1.0 0.37423 0.58142 0.46417 1.0000 29 | Pt Pt4 1.0 0.34703 0.65377 0.34195 1.0000 30 | Pt Pt5 1.0 0.47242 0.33000 0.61242 1.0000 31 | Pt Pt6 1.0 0.35197 0.56460 0.22763 1.0000 32 | Pt Pt7 1.0 0.44068 0.54327 0.34167 1.0000 33 | Pt Pt8 1.0 0.40370 0.59633 0.59728 1.0000 34 | Pt Pt9 1.0 0.71458 0.53496 0.55218 1.0000 35 | Pt Pt10 1.0 0.71829 0.56668 0.42170 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/53.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34263 0.53659 0.71143 1.0000 27 | Pt Pt2 1.0 0.41830 0.45336 0.62382 1.0000 28 | Pt Pt3 1.0 0.37596 0.57772 0.46522 1.0000 29 | Pt Pt4 1.0 0.34708 0.65139 0.34391 1.0000 30 | Pt Pt5 1.0 0.47056 0.33049 0.61158 1.0000 31 | Pt Pt6 1.0 0.35455 0.56740 0.22608 1.0000 32 | Pt Pt7 1.0 0.44026 0.54258 0.34049 1.0000 33 | Pt Pt8 1.0 0.40280 0.59796 0.59869 1.0000 34 | Pt Pt9 1.0 0.71214 0.53403 0.55162 1.0000 35 | Pt Pt10 1.0 0.71570 0.56687 0.42089 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/54.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34251 0.53662 0.71106 1.0000 27 | Pt Pt2 1.0 0.41956 0.45475 0.62412 1.0000 28 | Pt Pt3 1.0 0.37660 0.57654 0.46572 1.0000 29 | Pt Pt4 1.0 0.34673 0.65079 0.34499 1.0000 30 | Pt Pt5 1.0 0.47017 0.33038 0.61116 1.0000 31 | Pt Pt6 1.0 0.35552 0.56837 0.22552 1.0000 32 | Pt Pt7 1.0 0.44058 0.54193 0.34021 1.0000 33 | Pt Pt8 1.0 0.40235 0.59840 0.59896 1.0000 34 | Pt Pt9 1.0 0.71123 0.53378 0.55104 1.0000 35 | Pt Pt10 1.0 0.71473 0.56685 0.42097 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/55.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34251 0.53662 0.71105 1.0000 27 | Pt Pt2 1.0 0.41959 0.45478 0.62413 1.0000 28 | Pt Pt3 1.0 0.37661 0.57652 0.46573 1.0000 29 | Pt Pt4 1.0 0.34672 0.65077 0.34501 1.0000 30 | Pt Pt5 1.0 0.47016 0.33038 0.61115 1.0000 31 | Pt Pt6 1.0 0.35554 0.56839 0.22551 1.0000 32 | Pt Pt7 1.0 0.44059 0.54191 0.34020 1.0000 33 | Pt Pt8 1.0 0.40234 0.59841 0.59896 1.0000 34 | Pt Pt9 1.0 0.71121 0.53378 0.55102 1.0000 35 | Pt Pt10 1.0 0.71471 0.56685 0.42097 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/56.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34240 0.53686 0.71082 1.0000 27 | Pt Pt2 1.0 0.42069 0.45521 0.62422 1.0000 28 | Pt Pt3 1.0 0.37728 0.57549 0.46599 1.0000 29 | Pt Pt4 1.0 0.34627 0.65008 0.34619 1.0000 30 | Pt Pt5 1.0 0.46982 0.33066 0.61073 1.0000 31 | Pt Pt6 1.0 0.35648 0.56935 0.22524 1.0000 32 | Pt Pt7 1.0 0.44106 0.54124 0.34016 1.0000 33 | Pt Pt8 1.0 0.40190 0.59916 0.59889 1.0000 34 | Pt Pt9 1.0 0.71031 0.53349 0.55059 1.0000 35 | Pt Pt10 1.0 0.71377 0.56686 0.42091 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/57.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34230 0.53706 0.71063 1.0000 27 | Pt Pt2 1.0 0.42163 0.45558 0.62430 1.0000 28 | Pt Pt3 1.0 0.37785 0.57462 0.46621 1.0000 29 | Pt Pt4 1.0 0.34588 0.64948 0.34719 1.0000 30 | Pt Pt5 1.0 0.46953 0.33091 0.61037 1.0000 31 | Pt Pt6 1.0 0.35729 0.57016 0.22500 1.0000 32 | Pt Pt7 1.0 0.44146 0.54066 0.34013 1.0000 33 | Pt Pt8 1.0 0.40153 0.59980 0.59882 1.0000 34 | Pt Pt9 1.0 0.70953 0.53325 0.55023 1.0000 35 | Pt Pt10 1.0 0.71297 0.56687 0.42085 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/58.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34236 0.53762 0.71001 1.0000 27 | Pt Pt2 1.0 0.42337 0.45685 0.62447 1.0000 28 | Pt Pt3 1.0 0.37956 0.57213 0.46635 1.0000 29 | Pt Pt4 1.0 0.34519 0.64715 0.34949 1.0000 30 | Pt Pt5 1.0 0.46905 0.33141 0.60932 1.0000 31 | Pt Pt6 1.0 0.35952 0.57252 0.22523 1.0000 32 | Pt Pt7 1.0 0.44216 0.53971 0.34024 1.0000 33 | Pt Pt8 1.0 0.40058 0.60153 0.59873 1.0000 34 | Pt Pt9 1.0 0.70737 0.53237 0.55000 1.0000 35 | Pt Pt10 1.0 0.71082 0.56711 0.41989 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/59.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34244 0.53839 0.70918 1.0000 27 | Pt Pt2 1.0 0.42575 0.45858 0.62470 1.0000 28 | Pt Pt3 1.0 0.38190 0.56873 0.46653 1.0000 29 | Pt Pt4 1.0 0.34424 0.64397 0.35263 1.0000 30 | Pt Pt5 1.0 0.46841 0.33210 0.60789 1.0000 31 | Pt Pt6 1.0 0.36258 0.57575 0.22555 1.0000 32 | Pt Pt7 1.0 0.44311 0.53841 0.34039 1.0000 33 | Pt Pt8 1.0 0.39928 0.60390 0.59861 1.0000 34 | Pt Pt9 1.0 0.70442 0.53117 0.54969 1.0000 35 | Pt Pt10 1.0 0.70787 0.56742 0.41858 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/6.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.31852 0.56784 0.70219 1.0000 27 | Pt Pt2 1.0 0.45948 0.44826 0.65709 1.0000 28 | Pt Pt3 1.0 0.33874 0.58575 0.46249 1.0000 29 | Pt Pt4 1.0 0.35142 0.68568 0.30844 1.0000 30 | Pt Pt5 1.0 0.46113 0.30392 0.58450 1.0000 31 | Pt Pt6 1.0 0.33499 0.55221 0.25457 1.0000 32 | Pt Pt7 1.0 0.45749 0.54635 0.34450 1.0000 33 | Pt Pt8 1.0 0.39954 0.56425 0.59851 1.0000 34 | Pt Pt9 1.0 0.72629 0.53390 0.57663 1.0000 35 | Pt Pt10 1.0 0.73240 0.57024 0.40483 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/60.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34239 0.53788 0.70973 1.0000 27 | Pt Pt2 1.0 0.42417 0.45743 0.62454 1.0000 28 | Pt Pt3 1.0 0.38035 0.57099 0.46641 1.0000 29 | Pt Pt4 1.0 0.34487 0.64609 0.35054 1.0000 30 | Pt Pt5 1.0 0.46884 0.33164 0.60884 1.0000 31 | Pt Pt6 1.0 0.36055 0.57361 0.22534 1.0000 32 | Pt Pt7 1.0 0.44248 0.53927 0.34029 1.0000 33 | Pt Pt8 1.0 0.40014 0.60232 0.59869 1.0000 34 | Pt Pt9 1.0 0.70638 0.53196 0.54989 1.0000 35 | Pt Pt10 1.0 0.70982 0.56721 0.41945 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/61.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34247 0.53805 0.70954 1.0000 27 | Pt Pt2 1.0 0.42459 0.45809 0.62451 1.0000 28 | Pt Pt3 1.0 0.38105 0.56991 0.46681 1.0000 29 | Pt Pt4 1.0 0.34466 0.64519 0.35117 1.0000 30 | Pt Pt5 1.0 0.46873 0.33183 0.60843 1.0000 31 | Pt Pt6 1.0 0.36135 0.57447 0.22546 1.0000 32 | Pt Pt7 1.0 0.44277 0.53905 0.34033 1.0000 33 | Pt Pt8 1.0 0.39983 0.60289 0.59862 1.0000 34 | Pt Pt9 1.0 0.70555 0.53168 0.54961 1.0000 35 | Pt Pt10 1.0 0.70897 0.56724 0.41927 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/62.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34328 0.53958 0.70785 1.0000 27 | Pt Pt2 1.0 0.42837 0.46405 0.62423 1.0000 28 | Pt Pt3 1.0 0.38743 0.56023 0.47039 1.0000 29 | Pt Pt4 1.0 0.34280 0.63715 0.35677 1.0000 30 | Pt Pt5 1.0 0.46776 0.33353 0.60473 1.0000 31 | Pt Pt6 1.0 0.36857 0.58226 0.22653 1.0000 32 | Pt Pt7 1.0 0.44541 0.53701 0.34061 1.0000 33 | Pt Pt8 1.0 0.39697 0.60795 0.59794 1.0000 34 | Pt Pt9 1.0 0.69809 0.52913 0.54702 1.0000 35 | Pt Pt10 1.0 0.70130 0.56750 0.41766 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/63.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34436 0.54163 0.70560 1.0000 27 | Pt Pt2 1.0 0.43341 0.47199 0.62385 1.0000 28 | Pt Pt3 1.0 0.39593 0.54732 0.47517 1.0000 29 | Pt Pt4 1.0 0.34032 0.62643 0.36425 1.0000 30 | Pt Pt5 1.0 0.46647 0.33580 0.59980 1.0000 31 | Pt Pt6 1.0 0.37819 0.59265 0.22795 1.0000 32 | Pt Pt7 1.0 0.44893 0.53430 0.34098 1.0000 33 | Pt Pt8 1.0 0.39316 0.61470 0.59703 1.0000 34 | Pt Pt9 1.0 0.68814 0.52573 0.54358 1.0000 35 | Pt Pt10 1.0 0.69107 0.56784 0.41552 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/64.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34437 0.54168 0.70556 1.0000 27 | Pt Pt2 1.0 0.43353 0.47215 0.62382 1.0000 28 | Pt Pt3 1.0 0.39612 0.54703 0.47528 1.0000 29 | Pt Pt4 1.0 0.34026 0.62619 0.36442 1.0000 30 | Pt Pt5 1.0 0.46644 0.33587 0.59969 1.0000 31 | Pt Pt6 1.0 0.37841 0.59288 0.22799 1.0000 32 | Pt Pt7 1.0 0.44901 0.53425 0.34100 1.0000 33 | Pt Pt8 1.0 0.39308 0.61486 0.59701 1.0000 34 | Pt Pt9 1.0 0.68792 0.52566 0.54350 1.0000 35 | Pt Pt10 1.0 0.69085 0.56785 0.41547 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/65.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34442 0.54182 0.70544 1.0000 27 | Pt Pt2 1.0 0.43388 0.47263 0.62374 1.0000 28 | Pt Pt3 1.0 0.39668 0.54616 0.47559 1.0000 29 | Pt Pt4 1.0 0.34010 0.62547 0.36492 1.0000 30 | Pt Pt5 1.0 0.46634 0.33608 0.59938 1.0000 31 | Pt Pt6 1.0 0.37905 0.59357 0.22809 1.0000 32 | Pt Pt7 1.0 0.44925 0.53407 0.34103 1.0000 33 | Pt Pt8 1.0 0.39284 0.61531 0.59695 1.0000 34 | Pt Pt9 1.0 0.68726 0.52543 0.54327 1.0000 35 | Pt Pt10 1.0 0.69016 0.56787 0.41533 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/66.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34451 0.54211 0.70521 1.0000 27 | Pt Pt2 1.0 0.43459 0.47357 0.62357 1.0000 28 | Pt Pt3 1.0 0.39782 0.54442 0.47622 1.0000 29 | Pt Pt4 1.0 0.33978 0.62403 0.36593 1.0000 30 | Pt Pt5 1.0 0.46615 0.33650 0.59874 1.0000 31 | Pt Pt6 1.0 0.38032 0.59494 0.22828 1.0000 32 | Pt Pt7 1.0 0.44973 0.53372 0.34111 1.0000 33 | Pt Pt8 1.0 0.39236 0.61621 0.59683 1.0000 34 | Pt Pt9 1.0 0.68593 0.52498 0.54280 1.0000 35 | Pt Pt10 1.0 0.68879 0.56791 0.41505 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/67.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34469 0.54268 0.70475 1.0000 27 | Pt Pt2 1.0 0.43601 0.47547 0.62322 1.0000 28 | Pt Pt3 1.0 0.40008 0.54095 0.47748 1.0000 29 | Pt Pt4 1.0 0.33915 0.62115 0.36794 1.0000 30 | Pt Pt5 1.0 0.46577 0.33734 0.59748 1.0000 31 | Pt Pt6 1.0 0.38288 0.59769 0.22868 1.0000 32 | Pt Pt7 1.0 0.45070 0.53302 0.34125 1.0000 33 | Pt Pt8 1.0 0.39140 0.61802 0.59659 1.0000 34 | Pt Pt9 1.0 0.68326 0.52407 0.54187 1.0000 35 | Pt Pt10 1.0 0.68604 0.56799 0.41448 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/68.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34466 0.54273 0.70478 1.0000 27 | Pt Pt2 1.0 0.43612 0.47548 0.62308 1.0000 28 | Pt Pt3 1.0 0.40021 0.54076 0.47755 1.0000 29 | Pt Pt4 1.0 0.33913 0.62097 0.36805 1.0000 30 | Pt Pt5 1.0 0.46574 0.33750 0.59743 1.0000 31 | Pt Pt6 1.0 0.38302 0.59784 0.22874 1.0000 32 | Pt Pt7 1.0 0.45076 0.53300 0.34129 1.0000 33 | Pt Pt8 1.0 0.39138 0.61812 0.59656 1.0000 34 | Pt Pt9 1.0 0.68310 0.52402 0.54181 1.0000 35 | Pt Pt10 1.0 0.68587 0.56799 0.41445 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/69.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34455 0.54286 0.70487 1.0000 27 | Pt Pt2 1.0 0.43645 0.47551 0.62267 1.0000 28 | Pt Pt3 1.0 0.40059 0.54017 0.47777 1.0000 29 | Pt Pt4 1.0 0.33908 0.62042 0.36838 1.0000 30 | Pt Pt5 1.0 0.46564 0.33798 0.59728 1.0000 31 | Pt Pt6 1.0 0.38344 0.59828 0.22893 1.0000 32 | Pt Pt7 1.0 0.45094 0.53293 0.34138 1.0000 33 | Pt Pt8 1.0 0.39130 0.61840 0.59646 1.0000 34 | Pt Pt9 1.0 0.68263 0.52386 0.54164 1.0000 35 | Pt Pt10 1.0 0.68537 0.56800 0.41436 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/7.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.31644 0.56836 0.70420 1.0000 27 | Pt Pt2 1.0 0.45815 0.44347 0.65082 1.0000 28 | Pt Pt3 1.0 0.34044 0.58399 0.47073 1.0000 29 | Pt Pt4 1.0 0.35100 0.68924 0.30809 1.0000 30 | Pt Pt5 1.0 0.46047 0.31377 0.58837 1.0000 31 | Pt Pt6 1.0 0.33807 0.55001 0.25610 1.0000 32 | Pt Pt7 1.0 0.45587 0.54514 0.34105 1.0000 33 | Pt Pt8 1.0 0.40064 0.56026 0.59287 1.0000 34 | Pt Pt9 1.0 0.72627 0.53334 0.57936 1.0000 35 | Pt Pt10 1.0 0.73263 0.57083 0.40214 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/70.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34433 0.54314 0.70506 1.0000 27 | Pt Pt2 1.0 0.43712 0.47557 0.62184 1.0000 28 | Pt Pt3 1.0 0.40135 0.53900 0.47820 1.0000 29 | Pt Pt4 1.0 0.33898 0.61932 0.36903 1.0000 30 | Pt Pt5 1.0 0.46543 0.33893 0.59698 1.0000 31 | Pt Pt6 1.0 0.38428 0.59916 0.22931 1.0000 32 | Pt Pt7 1.0 0.45131 0.53278 0.34158 1.0000 33 | Pt Pt8 1.0 0.39115 0.61896 0.59625 1.0000 34 | Pt Pt9 1.0 0.68167 0.52354 0.54130 1.0000 35 | Pt Pt10 1.0 0.68436 0.56801 0.41418 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/71.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34390 0.54368 0.70543 1.0000 27 | Pt Pt2 1.0 0.43844 0.47569 0.62019 1.0000 28 | Pt Pt3 1.0 0.40288 0.53665 0.47907 1.0000 29 | Pt Pt4 1.0 0.33879 0.61712 0.37035 1.0000 30 | Pt Pt5 1.0 0.46502 0.34084 0.59638 1.0000 31 | Pt Pt6 1.0 0.38596 0.60091 0.23007 1.0000 32 | Pt Pt7 1.0 0.45204 0.53250 0.34196 1.0000 33 | Pt Pt8 1.0 0.39084 0.62008 0.59585 1.0000 34 | Pt Pt9 1.0 0.67976 0.52291 0.54062 1.0000 35 | Pt Pt10 1.0 0.68235 0.56802 0.41381 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/72.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34304 0.54476 0.70618 1.0000 27 | Pt Pt2 1.0 0.44110 0.47594 0.61689 1.0000 28 | Pt Pt3 1.0 0.40593 0.53197 0.48080 1.0000 29 | Pt Pt4 1.0 0.33840 0.61271 0.37298 1.0000 30 | Pt Pt5 1.0 0.46420 0.34466 0.59520 1.0000 31 | Pt Pt6 1.0 0.38931 0.60443 0.23159 1.0000 32 | Pt Pt7 1.0 0.45351 0.53193 0.34273 1.0000 33 | Pt Pt8 1.0 0.39023 0.62233 0.59505 1.0000 34 | Pt Pt9 1.0 0.67595 0.52163 0.53925 1.0000 35 | Pt Pt10 1.0 0.67832 0.56805 0.41307 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/73.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34336 0.54435 0.70590 1.0000 27 | Pt Pt2 1.0 0.44009 0.47585 0.61814 1.0000 28 | Pt Pt3 1.0 0.40478 0.53374 0.48015 1.0000 29 | Pt Pt4 1.0 0.33855 0.61438 0.37199 1.0000 30 | Pt Pt5 1.0 0.46451 0.34322 0.59565 1.0000 31 | Pt Pt6 1.0 0.38804 0.60310 0.23101 1.0000 32 | Pt Pt7 1.0 0.45296 0.53215 0.34244 1.0000 33 | Pt Pt8 1.0 0.39046 0.62148 0.59535 1.0000 34 | Pt Pt9 1.0 0.67739 0.52211 0.53977 1.0000 35 | Pt Pt10 1.0 0.67984 0.56804 0.41335 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/74.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34349 0.54443 0.70571 1.0000 27 | Pt Pt2 1.0 0.43994 0.47624 0.61740 1.0000 28 | Pt Pt3 1.0 0.40508 0.53337 0.48035 1.0000 29 | Pt Pt4 1.0 0.33867 0.61373 0.37221 1.0000 30 | Pt Pt5 1.0 0.46450 0.34382 0.59555 1.0000 31 | Pt Pt6 1.0 0.38837 0.60337 0.23172 1.0000 32 | Pt Pt7 1.0 0.45326 0.53221 0.34272 1.0000 33 | Pt Pt8 1.0 0.39059 0.62128 0.59524 1.0000 34 | Pt Pt9 1.0 0.67685 0.52193 0.53962 1.0000 35 | Pt Pt10 1.0 0.67924 0.56802 0.41322 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/75.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34386 0.54465 0.70513 1.0000 27 | Pt Pt2 1.0 0.43949 0.47743 0.61518 1.0000 28 | Pt Pt3 1.0 0.40600 0.53227 0.48096 1.0000 29 | Pt Pt4 1.0 0.33902 0.61179 0.37289 1.0000 30 | Pt Pt5 1.0 0.46448 0.34565 0.59525 1.0000 31 | Pt Pt6 1.0 0.38935 0.60418 0.23382 1.0000 32 | Pt Pt7 1.0 0.45418 0.53240 0.34358 1.0000 33 | Pt Pt8 1.0 0.39095 0.62069 0.59491 1.0000 34 | Pt Pt9 1.0 0.67524 0.52139 0.53918 1.0000 35 | Pt Pt10 1.0 0.67742 0.56797 0.41283 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/76.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34460 0.54511 0.70398 1.0000 27 | Pt Pt2 1.0 0.43859 0.47980 0.61075 1.0000 28 | Pt Pt3 1.0 0.40783 0.53006 0.48219 1.0000 29 | Pt Pt4 1.0 0.33973 0.60790 0.37424 1.0000 30 | Pt Pt5 1.0 0.46444 0.34929 0.59467 1.0000 31 | Pt Pt6 1.0 0.39131 0.60579 0.23803 1.0000 32 | Pt Pt7 1.0 0.45602 0.53279 0.34529 1.0000 33 | Pt Pt8 1.0 0.39169 0.61951 0.59424 1.0000 34 | Pt Pt9 1.0 0.67201 0.52030 0.53829 1.0000 35 | Pt Pt10 1.0 0.67379 0.56785 0.41206 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/77.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34438 0.54498 0.70431 1.0000 27 | Pt Pt2 1.0 0.43885 0.47911 0.61203 1.0000 28 | Pt Pt3 1.0 0.40730 0.53070 0.48183 1.0000 29 | Pt Pt4 1.0 0.33952 0.60903 0.37385 1.0000 30 | Pt Pt5 1.0 0.46445 0.34823 0.59484 1.0000 31 | Pt Pt6 1.0 0.39074 0.60532 0.23681 1.0000 32 | Pt Pt7 1.0 0.45548 0.53268 0.34480 1.0000 33 | Pt Pt8 1.0 0.39147 0.61986 0.59444 1.0000 34 | Pt Pt9 1.0 0.67294 0.52061 0.53855 1.0000 35 | Pt Pt10 1.0 0.67485 0.56788 0.41228 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/78.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34482 0.54478 0.70381 1.0000 27 | Pt Pt2 1.0 0.43798 0.48002 0.61163 1.0000 28 | Pt Pt3 1.0 0.40741 0.53072 0.48087 1.0000 29 | Pt Pt4 1.0 0.33932 0.60832 0.37446 1.0000 30 | Pt Pt5 1.0 0.46491 0.34846 0.59466 1.0000 31 | Pt Pt6 1.0 0.39102 0.60548 0.23816 1.0000 32 | Pt Pt7 1.0 0.45708 0.53264 0.34578 1.0000 33 | Pt Pt8 1.0 0.39197 0.61995 0.59406 1.0000 34 | Pt Pt9 1.0 0.67193 0.52031 0.53827 1.0000 35 | Pt Pt10 1.0 0.67354 0.56774 0.41205 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/79.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34599 0.54425 0.70246 1.0000 27 | Pt Pt2 1.0 0.43570 0.48240 0.61056 1.0000 28 | Pt Pt3 1.0 0.40772 0.53076 0.47832 1.0000 29 | Pt Pt4 1.0 0.33877 0.60645 0.37606 1.0000 30 | Pt Pt5 1.0 0.46613 0.34905 0.59419 1.0000 31 | Pt Pt6 1.0 0.39174 0.60592 0.24172 1.0000 32 | Pt Pt7 1.0 0.46131 0.53253 0.34837 1.0000 33 | Pt Pt8 1.0 0.39328 0.62019 0.59307 1.0000 34 | Pt Pt9 1.0 0.66924 0.51951 0.53756 1.0000 35 | Pt Pt10 1.0 0.67009 0.56735 0.41143 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/8.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.31847 0.56777 0.70301 1.0000 27 | Pt Pt2 1.0 0.45697 0.44259 0.64970 1.0000 28 | Pt Pt3 1.0 0.34344 0.58464 0.46507 1.0000 29 | Pt Pt4 1.0 0.35187 0.68334 0.30964 1.0000 30 | Pt Pt5 1.0 0.46081 0.31545 0.58947 1.0000 31 | Pt Pt6 1.0 0.33874 0.55275 0.25771 1.0000 32 | Pt Pt7 1.0 0.45197 0.54788 0.34309 1.0000 33 | Pt Pt8 1.0 0.39923 0.55987 0.59462 1.0000 34 | Pt Pt9 1.0 0.72632 0.53449 0.57371 1.0000 35 | Pt Pt10 1.0 0.73217 0.56962 0.40773 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/80.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34616 0.54414 0.70229 1.0000 27 | Pt Pt2 1.0 0.43526 0.48206 0.61026 1.0000 28 | Pt Pt3 1.0 0.40770 0.53090 0.47797 1.0000 29 | Pt Pt4 1.0 0.33868 0.60580 0.37646 1.0000 30 | Pt Pt5 1.0 0.46663 0.34958 0.59405 1.0000 31 | Pt Pt6 1.0 0.39199 0.60597 0.24275 1.0000 32 | Pt Pt7 1.0 0.46302 0.53285 0.34912 1.0000 33 | Pt Pt8 1.0 0.39374 0.62078 0.59240 1.0000 34 | Pt Pt9 1.0 0.66820 0.51919 0.53733 1.0000 35 | Pt Pt10 1.0 0.66859 0.56714 0.41112 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/81.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34667 0.54380 0.70175 1.0000 27 | Pt Pt2 1.0 0.43395 0.48102 0.60938 1.0000 28 | Pt Pt3 1.0 0.40764 0.53132 0.47691 1.0000 29 | Pt Pt4 1.0 0.33840 0.60385 0.37769 1.0000 30 | Pt Pt5 1.0 0.46813 0.35117 0.59366 1.0000 31 | Pt Pt6 1.0 0.39272 0.60613 0.24581 1.0000 32 | Pt Pt7 1.0 0.46816 0.53380 0.35134 1.0000 33 | Pt Pt8 1.0 0.39512 0.62256 0.59039 1.0000 34 | Pt Pt9 1.0 0.66508 0.51824 0.53664 1.0000 35 | Pt Pt10 1.0 0.66411 0.56651 0.41016 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/82.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34768 0.54314 0.70068 1.0000 27 | Pt Pt2 1.0 0.43132 0.47894 0.60762 1.0000 28 | Pt Pt3 1.0 0.40750 0.53215 0.47481 1.0000 29 | Pt Pt4 1.0 0.33785 0.59997 0.38013 1.0000 30 | Pt Pt5 1.0 0.47113 0.35435 0.59288 1.0000 31 | Pt Pt6 1.0 0.39420 0.60646 0.25195 1.0000 32 | Pt Pt7 1.0 0.47845 0.53570 0.35579 1.0000 33 | Pt Pt8 1.0 0.39788 0.62612 0.58636 1.0000 34 | Pt Pt9 1.0 0.65883 0.51633 0.53526 1.0000 35 | Pt Pt10 1.0 0.65513 0.56524 0.40826 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/83.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34778 0.54315 0.70054 1.0000 27 | Pt Pt2 1.0 0.43103 0.47886 0.60741 1.0000 28 | Pt Pt3 1.0 0.40755 0.53217 0.47489 1.0000 29 | Pt Pt4 1.0 0.33773 0.59964 0.38031 1.0000 30 | Pt Pt5 1.0 0.47151 0.35454 0.59278 1.0000 31 | Pt Pt6 1.0 0.39438 0.60649 0.25248 1.0000 32 | Pt Pt7 1.0 0.47962 0.53598 0.35619 1.0000 33 | Pt Pt8 1.0 0.39814 0.62638 0.58600 1.0000 34 | Pt Pt9 1.0 0.65817 0.51613 0.53510 1.0000 35 | Pt Pt10 1.0 0.65408 0.56507 0.40804 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/84.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34808 0.54317 0.70010 1.0000 27 | Pt Pt2 1.0 0.43017 0.47862 0.60678 1.0000 28 | Pt Pt3 1.0 0.40767 0.53224 0.47515 1.0000 29 | Pt Pt4 1.0 0.33737 0.59865 0.38082 1.0000 30 | Pt Pt5 1.0 0.47262 0.35510 0.59249 1.0000 31 | Pt Pt6 1.0 0.39494 0.60656 0.25407 1.0000 32 | Pt Pt7 1.0 0.48314 0.53682 0.35739 1.0000 33 | Pt Pt8 1.0 0.39892 0.62715 0.58491 1.0000 34 | Pt Pt9 1.0 0.65619 0.51554 0.53463 1.0000 35 | Pt Pt10 1.0 0.65090 0.56456 0.40739 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/85.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34866 0.54322 0.69924 1.0000 27 | Pt Pt2 1.0 0.42845 0.47814 0.60551 1.0000 28 | Pt Pt3 1.0 0.40792 0.53237 0.47568 1.0000 29 | Pt Pt4 1.0 0.33665 0.59666 0.38184 1.0000 30 | Pt Pt5 1.0 0.47485 0.35622 0.59192 1.0000 31 | Pt Pt6 1.0 0.39604 0.60670 0.25726 1.0000 32 | Pt Pt7 1.0 0.49017 0.53849 0.35979 1.0000 33 | Pt Pt8 1.0 0.40048 0.62871 0.58274 1.0000 34 | Pt Pt9 1.0 0.65222 0.51435 0.53368 1.0000 35 | Pt Pt10 1.0 0.64454 0.56354 0.40608 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/86.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34984 0.54331 0.69751 1.0000 27 | Pt Pt2 1.0 0.42500 0.47719 0.60298 1.0000 28 | Pt Pt3 1.0 0.40843 0.53263 0.47672 1.0000 29 | Pt Pt4 1.0 0.33521 0.59270 0.38388 1.0000 30 | Pt Pt5 1.0 0.47930 0.35846 0.59077 1.0000 31 | Pt Pt6 1.0 0.39826 0.60698 0.26363 1.0000 32 | Pt Pt7 1.0 0.50424 0.54184 0.36460 1.0000 33 | Pt Pt8 1.0 0.40360 0.63181 0.57839 1.0000 34 | Pt Pt9 1.0 0.64427 0.51199 0.53178 1.0000 35 | Pt Pt10 1.0 0.63183 0.56151 0.40348 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/87.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34919 0.54326 0.69846 1.0000 27 | Pt Pt2 1.0 0.42690 0.47772 0.60438 1.0000 28 | Pt Pt3 1.0 0.40815 0.53249 0.47614 1.0000 29 | Pt Pt4 1.0 0.33601 0.59489 0.38275 1.0000 30 | Pt Pt5 1.0 0.47684 0.35722 0.59141 1.0000 31 | Pt Pt6 1.0 0.39704 0.60682 0.26011 1.0000 32 | Pt Pt7 1.0 0.49647 0.53999 0.36194 1.0000 33 | Pt Pt8 1.0 0.40188 0.63010 0.58079 1.0000 34 | Pt Pt9 1.0 0.64866 0.51330 0.53283 1.0000 35 | Pt Pt10 1.0 0.63885 0.56263 0.40492 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/88.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34952 0.54329 0.69799 1.0000 27 | Pt Pt2 1.0 0.42595 0.47745 0.60368 1.0000 28 | Pt Pt3 1.0 0.40829 0.53256 0.47643 1.0000 29 | Pt Pt4 1.0 0.33561 0.59379 0.38332 1.0000 30 | Pt Pt5 1.0 0.47807 0.35784 0.59109 1.0000 31 | Pt Pt6 1.0 0.39765 0.60690 0.26187 1.0000 32 | Pt Pt7 1.0 0.50036 0.54092 0.36327 1.0000 33 | Pt Pt8 1.0 0.40274 0.63095 0.57959 1.0000 34 | Pt Pt9 1.0 0.64647 0.51264 0.53231 1.0000 35 | Pt Pt10 1.0 0.63534 0.56207 0.40420 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/89.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34950 0.54380 0.69777 1.0000 27 | Pt Pt2 1.0 0.42566 0.47798 0.60350 1.0000 28 | Pt Pt3 1.0 0.40903 0.53226 0.47679 1.0000 29 | Pt Pt4 1.0 0.33466 0.59390 0.38315 1.0000 30 | Pt Pt5 1.0 0.47887 0.35734 0.59090 1.0000 31 | Pt Pt6 1.0 0.39835 0.60668 0.26232 1.0000 32 | Pt Pt7 1.0 0.50149 0.54154 0.36341 1.0000 33 | Pt Pt8 1.0 0.40284 0.63076 0.57978 1.0000 34 | Pt Pt9 1.0 0.64566 0.51240 0.53206 1.0000 35 | Pt Pt10 1.0 0.63393 0.56174 0.40407 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/9.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.32169 0.56683 0.70113 1.0000 27 | Pt Pt2 1.0 0.45510 0.44119 0.64793 1.0000 28 | Pt Pt3 1.0 0.34819 0.58568 0.45611 1.0000 29 | Pt Pt4 1.0 0.35325 0.67403 0.31208 1.0000 30 | Pt Pt5 1.0 0.46134 0.31811 0.59120 1.0000 31 | Pt Pt6 1.0 0.33979 0.55708 0.26025 1.0000 32 | Pt Pt7 1.0 0.44579 0.55221 0.34630 1.0000 33 | Pt Pt8 1.0 0.39701 0.55924 0.59739 1.0000 34 | Pt Pt9 1.0 0.72639 0.53632 0.56478 1.0000 35 | Pt Pt10 1.0 0.73144 0.56771 0.41656 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/90.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34948 0.54489 0.69731 1.0000 27 | Pt Pt2 1.0 0.42506 0.47909 0.60313 1.0000 28 | Pt Pt3 1.0 0.41059 0.53163 0.47754 1.0000 29 | Pt Pt4 1.0 0.33265 0.59413 0.38278 1.0000 30 | Pt Pt5 1.0 0.48055 0.35629 0.59050 1.0000 31 | Pt Pt6 1.0 0.39984 0.60623 0.26327 1.0000 32 | Pt Pt7 1.0 0.50386 0.54286 0.36371 1.0000 33 | Pt Pt8 1.0 0.40306 0.63036 0.58018 1.0000 34 | Pt Pt9 1.0 0.64396 0.51188 0.53154 1.0000 35 | Pt Pt10 1.0 0.63094 0.56104 0.40379 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/91.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34920 0.54604 0.69720 1.0000 27 | Pt Pt2 1.0 0.42539 0.47914 0.60330 1.0000 28 | Pt Pt3 1.0 0.41174 0.53146 0.47685 1.0000 29 | Pt Pt4 1.0 0.33118 0.59450 0.38273 1.0000 30 | Pt Pt5 1.0 0.48139 0.35587 0.59029 1.0000 31 | Pt Pt6 1.0 0.40119 0.60564 0.26374 1.0000 32 | Pt Pt7 1.0 0.50329 0.54368 0.36312 1.0000 33 | Pt Pt8 1.0 0.40290 0.62978 0.58106 1.0000 34 | Pt Pt9 1.0 0.64315 0.51156 0.53131 1.0000 35 | Pt Pt10 1.0 0.63055 0.56075 0.40415 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/92.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34836 0.54947 0.69688 1.0000 27 | Pt Pt2 1.0 0.42640 0.47928 0.60378 1.0000 28 | Pt Pt3 1.0 0.41520 0.53095 0.47480 1.0000 29 | Pt Pt4 1.0 0.32678 0.59559 0.38257 1.0000 30 | Pt Pt5 1.0 0.48391 0.35460 0.58965 1.0000 31 | Pt Pt6 1.0 0.40525 0.60386 0.26515 1.0000 32 | Pt Pt7 1.0 0.50156 0.54614 0.36135 1.0000 33 | Pt Pt8 1.0 0.40243 0.62801 0.58371 1.0000 34 | Pt Pt9 1.0 0.64072 0.51062 0.53063 1.0000 35 | Pt Pt10 1.0 0.62938 0.55988 0.40523 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/93.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34668 0.55633 0.69624 1.0000 27 | Pt Pt2 1.0 0.42841 0.47957 0.60475 1.0000 28 | Pt Pt3 1.0 0.42213 0.52994 0.47069 1.0000 29 | Pt Pt4 1.0 0.31798 0.59777 0.38226 1.0000 30 | Pt Pt5 1.0 0.48896 0.35207 0.58838 1.0000 31 | Pt Pt6 1.0 0.41335 0.60032 0.26798 1.0000 32 | Pt Pt7 1.0 0.49810 0.55105 0.35780 1.0000 33 | Pt Pt8 1.0 0.40150 0.62448 0.58899 1.0000 34 | Pt Pt9 1.0 0.63584 0.50873 0.52927 1.0000 35 | Pt Pt10 1.0 0.62704 0.55814 0.40738 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/94.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34779 0.55177 0.69666 1.0000 27 | Pt Pt2 1.0 0.42708 0.47938 0.60411 1.0000 28 | Pt Pt3 1.0 0.41753 0.53061 0.47342 1.0000 29 | Pt Pt4 1.0 0.32383 0.59632 0.38247 1.0000 30 | Pt Pt5 1.0 0.48561 0.35375 0.58922 1.0000 31 | Pt Pt6 1.0 0.40797 0.60267 0.26610 1.0000 32 | Pt Pt7 1.0 0.50040 0.54779 0.36016 1.0000 33 | Pt Pt8 1.0 0.40212 0.62683 0.58548 1.0000 34 | Pt Pt9 1.0 0.63908 0.50998 0.53017 1.0000 35 | Pt Pt10 1.0 0.62860 0.55930 0.40595 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/95.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34765 0.55234 0.69661 1.0000 27 | Pt Pt2 1.0 0.42724 0.47940 0.60419 1.0000 28 | Pt Pt3 1.0 0.41811 0.53053 0.47308 1.0000 29 | Pt Pt4 1.0 0.32309 0.59650 0.38244 1.0000 30 | Pt Pt5 1.0 0.48603 0.35354 0.58912 1.0000 31 | Pt Pt6 1.0 0.40864 0.60238 0.26634 1.0000 32 | Pt Pt7 1.0 0.50011 0.54820 0.35986 1.0000 33 | Pt Pt8 1.0 0.40204 0.62653 0.58592 1.0000 34 | Pt Pt9 1.0 0.63867 0.50983 0.53006 1.0000 35 | Pt Pt10 1.0 0.62840 0.55915 0.40613 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/96.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34712 0.55330 0.69676 1.0000 27 | Pt Pt2 1.0 0.42865 0.47820 0.60440 1.0000 28 | Pt Pt3 1.0 0.41801 0.53175 0.47171 1.0000 29 | Pt Pt4 1.0 0.32267 0.59655 0.38271 1.0000 30 | Pt Pt5 1.0 0.48634 0.35470 0.58901 1.0000 31 | Pt Pt6 1.0 0.40898 0.60168 0.26741 1.0000 32 | Pt Pt7 1.0 0.49983 0.54879 0.35874 1.0000 33 | Pt Pt8 1.0 0.40193 0.62536 0.58614 1.0000 34 | Pt Pt9 1.0 0.63772 0.50878 0.53127 1.0000 35 | Pt Pt10 1.0 0.62873 0.55930 0.40559 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/97.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34669 0.55407 0.69688 1.0000 27 | Pt Pt2 1.0 0.42979 0.47722 0.60457 1.0000 28 | Pt Pt3 1.0 0.41794 0.53273 0.47061 1.0000 29 | Pt Pt4 1.0 0.32234 0.59658 0.38293 1.0000 30 | Pt Pt5 1.0 0.48658 0.35563 0.58893 1.0000 31 | Pt Pt6 1.0 0.40926 0.60111 0.26826 1.0000 32 | Pt Pt7 1.0 0.49961 0.54926 0.35784 1.0000 33 | Pt Pt8 1.0 0.40184 0.62442 0.58632 1.0000 34 | Pt Pt9 1.0 0.63695 0.50794 0.53225 1.0000 35 | Pt Pt10 1.0 0.62900 0.55943 0.40515 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/98.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34636 0.55443 0.69683 1.0000 27 | Pt Pt2 1.0 0.43066 0.47786 0.60467 1.0000 28 | Pt Pt3 1.0 0.41723 0.53451 0.47005 1.0000 29 | Pt Pt4 1.0 0.32206 0.59663 0.38325 1.0000 30 | Pt Pt5 1.0 0.48747 0.35627 0.58870 1.0000 31 | Pt Pt6 1.0 0.40806 0.60082 0.26881 1.0000 32 | Pt Pt7 1.0 0.50134 0.54925 0.35727 1.0000 33 | Pt Pt8 1.0 0.40188 0.62259 0.58594 1.0000 34 | Pt Pt9 1.0 0.63540 0.50680 0.53306 1.0000 35 | Pt Pt10 1.0 0.62952 0.55926 0.40516 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/99.cif: -------------------------------------------------------------------------------- 1 | data_image0 2 | _chemical_formula_structural Pt10 3 | _chemical_formula_sum "Pt10" 4 | _cell_length_a 17.1 5 | _cell_length_b 17.2 6 | _cell_length_c 17.3 7 | _cell_angle_alpha 90 8 | _cell_angle_beta 90 9 | _cell_angle_gamma 90 10 | 11 | _space_group_name_H-M_alt "P 1" 12 | _space_group_IT_number 1 13 | 14 | loop_ 15 | _space_group_symop_operation_xyz 16 | 'x, y, z' 17 | 18 | loop_ 19 | _atom_site_type_symbol 20 | _atom_site_label 21 | _atom_site_symmetry_multiplicity 22 | _atom_site_fract_x 23 | _atom_site_fract_y 24 | _atom_site_fract_z 25 | _atom_site_occupancy 26 | Pt Pt1 1.0 0.34581 0.55504 0.69675 1.0000 27 | Pt Pt2 1.0 0.43215 0.47895 0.60484 1.0000 28 | Pt Pt3 1.0 0.41603 0.53753 0.46909 1.0000 29 | Pt Pt4 1.0 0.32158 0.59671 0.38380 1.0000 30 | Pt Pt5 1.0 0.48899 0.35735 0.58830 1.0000 31 | Pt Pt6 1.0 0.40601 0.60032 0.26975 1.0000 32 | Pt Pt7 1.0 0.50430 0.54922 0.35629 1.0000 33 | Pt Pt8 1.0 0.40196 0.61946 0.58530 1.0000 34 | Pt Pt9 1.0 0.63275 0.50486 0.53445 1.0000 35 | Pt Pt10 1.0 0.63042 0.55898 0.40517 1.0000 36 | -------------------------------------------------------------------------------- /data/test_data/raw_graph_scalar/targets.csv: -------------------------------------------------------------------------------- 1 | 0,-19.35436351 2 | 1,-18.9844944 3 | 2,-20.93898117 4 | 3,-24.67622051 5 | 4,-24.67165804 6 | 5,-24.97555553 7 | 6,-26.92273571 8 | 7,-27.43597668 9 | 8,-28.7465543 10 | 9,-29.55543212 11 | 10,-29.58356808 12 | 11,-30.2318998 13 | 12,-30.81330577 14 | 13,-30.81887107 15 | 14,-31.23236098 16 | 15,-31.44845096 17 | 16,-31.74074414 18 | 17,-31.48794536 19 | 18,-31.773368 20 | 19,-31.87893429 21 | 20,-31.95845628 22 | 21,-32.03527133 23 | 22,-32.15413635 24 | 23,-32.23658519 25 | 24,-32.37143479 26 | 25,-32.54489507 27 | 26,-32.75569248 28 | 27,-32.80603697 29 | 28,-32.83240265 30 | 29,-32.84646749 31 | 30,-32.87446387 32 | 31,-32.8985284 33 | 32,-32.90255216 34 | 33,-32.93644736 35 | 34,-32.93825321 36 | 35,-32.9588517 37 | 36,-32.99022779 38 | 37,-33.01952483 39 | 38,-33.04803363 40 | 39,-33.07851576 41 | 40,-33.11673813 42 | 41,-33.13419624 43 | 42,-33.1342005 44 | 43,-33.14287256 45 | 44,-33.14461101 46 | 45,-33.15152461 47 | 46,-33.15425667 48 | 47,-33.16533329 49 | 48,-33.17153701 50 | 49,-33.17650078 51 | 50,-33.18084428 52 | 51,-33.18694375 53 | 52,-33.19331727 54 | 53,-33.21167541 55 | 54,-33.21880734 56 | 55,-33.21872427 57 | 56,-33.22608871 58 | 57,-33.22792525 59 | 58,-33.24252893 60 | 59,-33.23577305 61 | 60,-33.24396519 62 | 61,-33.25158031 63 | 62,-33.28490368 64 | 63,-33.30658593 65 | 64,-33.30870604 66 | 65,-33.31472961 67 | 66,-33.32476116 68 | 67,-33.33739647 69 | 68,-33.35078997 70 | 69,-33.38863545 71 | 70,-33.45506922 72 | 71,-33.54960467 73 | 72,-33.58407772 74 | 73,-33.5964698 75 | 74,-33.6414416 76 | 75,-33.74986291 77 | 76,-33.81260654 78 | 77,-33.81960319 79 | 78,-33.89556068 80 | 79,-33.96149595 81 | 80,-34.01206489 82 | 81,-34.11238365 83 | 82,-34.17818422 84 | 83,-34.22756309 85 | 84,-34.39567754 86 | 85,-34.79065989 87 | 86,-35.09499844 88 | 87,-35.1142099 89 | 88,-35.20566953 90 | 89,-35.34468659 91 | 90,-35.45637482 92 | 91,-35.65777422 93 | 92,-36.11427052 94 | 93,-35.90733117 95 | 94,-36.24748259 96 | 95,-36.252923 97 | 96,-36.39195962 98 | 97,-36.42681209 99 | 98,-36.54730574 100 | 99,-36.63814853 101 | -------------------------------------------------------------------------------- /env.common.yaml: -------------------------------------------------------------------------------- 1 | name: matdeeplearn 2 | channels: 3 | - pytorch 4 | - conda-forge 5 | - defaults 6 | dependencies: 7 | - python=3.9.* 8 | - pip 9 | - pytorch=2.0.1 10 | - pip: 11 | - pre-commit 12 | - numpy 13 | - scipy 14 | - ase==3.21.* 15 | - black 16 | - pandas 17 | -------------------------------------------------------------------------------- /env.cpu.yaml: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - cpuonly 3 | - pip: 4 | - -f https://data.pyg.org/whl/torch-2.0.1+cpu.html 5 | - torch-scatter 6 | - torch-sparse 7 | - torch-cluster 8 | - torch-geometric 9 | -------------------------------------------------------------------------------- /env.gpu.yaml: -------------------------------------------------------------------------------- 1 | channels: 2 | - nvidia 3 | dependencies: 4 | - pytorch-cuda=11.7 5 | - cudatoolkit=11.7 6 | - pip: 7 | - -f https://data.pyg.org/whl/torch-2.0.1+cu117.html 8 | - torch-scatter 9 | - torch-sparse 10 | - torch-cluster 11 | - torch-geometric 12 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import pprint 3 | import os 4 | import sys 5 | import shutil 6 | from datetime import datetime 7 | from torch import distributed as dist 8 | from matdeeplearn.common.config.build_config import build_config 9 | from matdeeplearn.common.config.flags import flags 10 | from matdeeplearn.common.trainer_context import new_trainer_context 11 | from matdeeplearn.preprocessor.processor import process_data 12 | 13 | # import submitit 14 | 15 | # from matdeeplearn.common.utils import setup_logging 16 | 17 | 18 | class Runner: # submitit.helpers.Checkpointable): 19 | def __init__(self): 20 | self.config = None 21 | 22 | def __call__(self, config): 23 | 24 | with new_trainer_context(args=args, config=config) as ctx: 25 | self.config = ctx.config 26 | self.task = ctx.task 27 | self.trainer = ctx.trainer 28 | 29 | self.task.setup(self.trainer) 30 | 31 | # Print settings for job 32 | logging.debug("Settings: ") 33 | logging.debug(pprint.pformat(self.config)) 34 | 35 | self.task.run() 36 | 37 | shutil.move('log_'+config["task"]["log_id"]+'.txt', os.path.join(self.trainer.save_dir, "results", self.trainer.timestamp_id, "log.txt")) 38 | 39 | def checkpoint(self, *args, **kwargs): 40 | # new_runner = Runner() 41 | self.trainer.save(checkpoint_file="checkpoint.pt", training_state=True) 42 | self.config["checkpoint"] = self.task.chkpt_path 43 | self.config["timestamp_id"] = self.trainer.timestamp_id 44 | if self.trainer.logger is not None: 45 | self.trainer.logger.mark_preempting() 46 | # return submitit.helpers.DelayedSubmission(new_runner, self.config) 47 | 48 | 49 | if __name__ == "__main__": 50 | 51 | 52 | # setup_logging() 53 | local_rank = os.environ.get('LOCAL_RANK', None) 54 | if local_rank == None or int(local_rank) == 0: 55 | root_logger = logging.getLogger() 56 | root_logger.setLevel(logging.DEBUG) 57 | 58 | timestamp = datetime.now().timestamp() 59 | timestamp_id = datetime.fromtimestamp(timestamp).strftime( 60 | "%Y-%m-%d-%H-%M-%S-%f" 61 | )[:-3] 62 | fh = logging.FileHandler('log_'+timestamp_id+'.txt', 'w+') 63 | fh.setLevel(logging.DEBUG) 64 | root_logger.addHandler(fh) 65 | 66 | sh = logging.StreamHandler(sys.stdout) 67 | sh.setLevel(logging.DEBUG) 68 | root_logger.addHandler(sh) 69 | 70 | parser = flags.get_parser() 71 | args, override_args = parser.parse_known_args() 72 | config = build_config(args, override_args) 73 | config["task"]["log_id"] = timestamp_id 74 | 75 | if not config["dataset"]["processed"]: 76 | process_data(config["dataset"]) 77 | 78 | if args.submit: # Run on cluster 79 | # TODO: add setup to submit to cluster 80 | pass 81 | 82 | else: # Run locally 83 | Runner()(config) 84 | 85 | -------------------------------------------------------------------------------- /matdeeplearn/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fung-Lab/MatDeepLearn_dev/23f5141fc8ca594ef1d99350966c47e4dc1f37cb/matdeeplearn/README.md -------------------------------------------------------------------------------- /matdeeplearn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fung-Lab/MatDeepLearn_dev/23f5141fc8ca594ef1d99350966c47e4dc1f37cb/matdeeplearn/__init__.py -------------------------------------------------------------------------------- /matdeeplearn/common/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fung-Lab/MatDeepLearn_dev/23f5141fc8ca594ef1d99350966c47e4dc1f37cb/matdeeplearn/common/__init__.py -------------------------------------------------------------------------------- /matdeeplearn/common/graph_data.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from torch_geometric.data import Data 4 | from torch_geometric.typing import OptTensor 5 | from typing import Optional 6 | 7 | 8 | class CustomData(Data): 9 | """ 10 | Custom graph data object which performs correct batching 11 | Args: 12 | Data (torch_geometric.data.Data): data object to wrap and perform correct batching 13 | """ 14 | 15 | def __init__( 16 | self, 17 | pos: OptTensor = None, 18 | cell: OptTensor = None, 19 | cell2: OptTensor = None, 20 | y: OptTensor = None, 21 | z: OptTensor = None, 22 | u: OptTensor = None, 23 | x: OptTensor = None, 24 | edge_index: OptTensor = None, 25 | edge_attr: OptTensor = None, 26 | edge_index_rr: OptTensor = None, 27 | edge_attr_rr: OptTensor = None, 28 | edge_index_rv: OptTensor = None, 29 | edge_attr_rv: OptTensor = None, 30 | edge_index_vv: OptTensor = None, 31 | edge_attr_vv: OptTensor = None, 32 | edge_index_vr: OptTensor = None, 33 | edge_attr_vr: OptTensor = None, 34 | edge_vec: OptTensor = None, 35 | cell_offsets: OptTensor = None, 36 | distances: OptTensor = None, 37 | structure_id: Optional[list] = None, 38 | n_atoms: OptTensor = None, 39 | o_pos: OptTensor = None, 40 | o_z: OptTensor = None, 41 | ): 42 | super().__init__() 43 | 44 | self.n_atoms: OptTensor = n_atoms 45 | self.pos: OptTensor = pos 46 | self.cell: OptTensor = cell 47 | self.cell2: OptTensor = cell2 48 | self.y: OptTensor = y 49 | self.z: OptTensor = z 50 | self.u: OptTensor = u 51 | self.x: OptTensor = x 52 | 53 | # set edges 54 | self.edge_index = edge_index 55 | self.edge_attr = edge_attr 56 | self.edge_index_rr = edge_index_rr 57 | self.edge_attr_rr = edge_attr_rr 58 | self.edge_index_rv = edge_index_rv 59 | self.edge_attr_rv = edge_attr_rv 60 | self.edge_index_vv = edge_index_vv 61 | self.edge_attr_vv = edge_attr_vv 62 | self.edge_index_vr = edge_index_vr 63 | self.edge_attr_vr = edge_attr_vr 64 | 65 | self.edge_vec: OptTensor = edge_vec 66 | self.cell_offsets: OptTensor = cell_offsets 67 | self.distances: OptTensor = distances 68 | self.structure_id: list = structure_id 69 | self.o_pos: OptTensor = o_pos 70 | self.o_z: OptTensor = o_z 71 | 72 | def __inc__(self, key, value, *args, **kwargs) -> int: 73 | if 'index' in key: 74 | return self.n_atoms 75 | else: 76 | return 0 -------------------------------------------------------------------------------- /matdeeplearn/models/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fung-Lab/MatDeepLearn_dev/23f5141fc8ca594ef1d99350966c47e4dc1f37cb/matdeeplearn/models/README.md -------------------------------------------------------------------------------- /matdeeplearn/models/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ["BaseModel", "CGCNN", "MPNN", "SchNet", "TorchMD_ET", "TorchMD_ET_early"] 2 | 3 | from .base_model import BaseModel 4 | from .cgcnn import CGCNN 5 | from .mpnn import MPNN 6 | from .schnet import SchNet 7 | from .torchmd_et import TorchMD_ET 8 | from .torchmd_etEarly import TorchMD_ET_Early 9 | -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/escn/Jd.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fung-Lab/MatDeepLearn_dev/23f5141fc8ca594ef1d99350966c47e4dc1f37cb/matdeeplearn/models/in_progress/escn/Jd.pt -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/gemnet/initializers.py: -------------------------------------------------------------------------------- 1 | """ 2 | Copyright (c) Facebook, Inc. and its affiliates. 3 | 4 | This source code is licensed under the MIT license found in the 5 | LICENSE file in the root directory of this source tree. 6 | """ 7 | 8 | import torch 9 | 10 | 11 | def _standardize(kernel): 12 | """ 13 | Makes sure that N*Var(W) = 1 and E[W] = 0 14 | """ 15 | eps = 1e-6 16 | 17 | if len(kernel.shape) == 3: 18 | axis = [0, 1] # last dimension is output dimension 19 | else: 20 | axis = 1 21 | 22 | var, mean = torch.var_mean(kernel, dim=axis, unbiased=True, keepdim=True) 23 | kernel = (kernel - mean) / (var + eps) ** 0.5 24 | return kernel 25 | 26 | 27 | def he_orthogonal_init(tensor): 28 | """ 29 | Generate a weight matrix with variance according to He (Kaiming) initialization. 30 | Based on a random (semi-)orthogonal matrix neural networks 31 | are expected to learn better when features are decorrelated 32 | (stated by eg. "Reducing overfitting in deep networks by decorrelating representations", 33 | "Dropout: a simple way to prevent neural networks from overfitting", 34 | "Exact solutions to the nonlinear dynamics of learning in deep linear neural networks") 35 | """ 36 | tensor = torch.nn.init.orthogonal_(tensor) 37 | 38 | if len(tensor.shape) == 3: 39 | fan_in = tensor.shape[:-1].numel() 40 | else: 41 | fan_in = tensor.shape[1] 42 | 43 | with torch.no_grad(): 44 | tensor.data = _standardize(tensor.data) 45 | tensor.data *= (1 / fan_in) ** 0.5 46 | 47 | return tensor 48 | -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/gemnet/layers/base_layers.py: -------------------------------------------------------------------------------- 1 | """ 2 | Copyright (c) Facebook, Inc. and its affiliates. 3 | 4 | This source code is licensed under the MIT license found in the 5 | LICENSE file in the root directory of this source tree. 6 | """ 7 | 8 | import math 9 | 10 | import torch 11 | 12 | from ..initializers import he_orthogonal_init 13 | 14 | 15 | class Dense(torch.nn.Module): 16 | """ 17 | Combines dense layer with scaling for swish activation. 18 | 19 | Parameters 20 | ---------- 21 | units: int 22 | Output embedding size. 23 | activation: str 24 | Name of the activation function to use. 25 | bias: bool 26 | True if use bias. 27 | """ 28 | 29 | def __init__(self, in_features, out_features, bias=False, activation=None): 30 | super().__init__() 31 | 32 | self.linear = torch.nn.Linear(in_features, out_features, bias=bias) 33 | self.reset_parameters() 34 | 35 | if isinstance(activation, str): 36 | activation = activation.lower() 37 | if activation in ["swish", "silu"]: 38 | self._activation = ScaledSiLU() 39 | elif activation == "siqu": 40 | self._activation = SiQU() 41 | elif activation is None: 42 | self._activation = torch.nn.Identity() 43 | else: 44 | raise NotImplementedError( 45 | "Activation function not implemented for GemNet (yet)." 46 | ) 47 | 48 | def reset_parameters(self, initializer=he_orthogonal_init): 49 | initializer(self.linear.weight) 50 | if self.linear.bias is not None: 51 | self.linear.bias.data.fill_(0) 52 | 53 | def forward(self, x): 54 | x = self.linear(x) 55 | x = self._activation(x) 56 | return x 57 | 58 | 59 | class ScaledSiLU(torch.nn.Module): 60 | def __init__(self): 61 | super().__init__() 62 | self.scale_factor = 1 / 0.6 63 | self._activation = torch.nn.SiLU() 64 | 65 | def forward(self, x): 66 | return self._activation(x) * self.scale_factor 67 | 68 | 69 | class SiQU(torch.nn.Module): 70 | def __init__(self): 71 | super().__init__() 72 | self._activation = torch.nn.SiLU() 73 | 74 | def forward(self, x): 75 | return x * self._activation(x) 76 | 77 | 78 | class ResidualLayer(torch.nn.Module): 79 | """ 80 | Residual block with output scaled by 1/sqrt(2). 81 | 82 | Parameters 83 | ---------- 84 | units: int 85 | Output embedding size. 86 | nLayers: int 87 | Number of dense layers. 88 | layer_kwargs: str 89 | Keyword arguments for initializing the layers. 90 | """ 91 | 92 | def __init__( 93 | self, units: int, nLayers: int = 2, layer=Dense, **layer_kwargs 94 | ): 95 | super().__init__() 96 | self.dense_mlp = torch.nn.Sequential( 97 | *[ 98 | layer( 99 | in_features=units, 100 | out_features=units, 101 | bias=False, 102 | **layer_kwargs 103 | ) 104 | for _ in range(nLayers) 105 | ] 106 | ) 107 | self.inv_sqrt_2 = 1 / math.sqrt(2) 108 | 109 | def forward(self, input): 110 | x = self.dense_mlp(input) 111 | x = input + x 112 | x = x * self.inv_sqrt_2 113 | return x 114 | -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/gemnet/layers/compat.py: -------------------------------------------------------------------------------- 1 | import json 2 | import logging 3 | from pathlib import Path 4 | from typing import Dict, Optional, Union 5 | 6 | import torch 7 | import torch.nn as nn 8 | 9 | from .scale_factor import ScaleFactor 10 | 11 | ScaleDict = Union[Dict[str, float], Dict[str, torch.Tensor]] 12 | 13 | 14 | def _load_scale_dict(scale_file: Optional[Union[str, ScaleDict]]): 15 | """ 16 | Loads scale factors from either: 17 | - a JSON file mapping scale factor names to scale values 18 | - a python dictionary pickled object (loaded using `torch.load`) mapping scale factor names to scale values 19 | - a dictionary mapping scale factor names to scale values 20 | """ 21 | if not scale_file: 22 | return None 23 | 24 | if isinstance(scale_file, dict): 25 | if not scale_file: 26 | logging.warning("Empty scale dictionary provided to model.") 27 | return scale_file 28 | 29 | path = Path(scale_file) 30 | if not path.exists(): 31 | raise ValueError(f"Scale file {path} does not exist.") 32 | 33 | scale_dict: Optional[ScaleDict] = None 34 | if path.suffix == ".pt": 35 | scale_dict = torch.load(path) 36 | elif path.suffix == ".json": 37 | with open(path, "r") as f: 38 | scale_dict = json.load(f) 39 | 40 | if isinstance(scale_dict, dict): 41 | # old json scale factors have a comment field that has the model name 42 | scale_dict.pop("comment", None) 43 | else: 44 | raise ValueError(f"Unsupported scale file extension: {path.suffix}") 45 | 46 | if not scale_dict: 47 | return None 48 | 49 | return scale_dict 50 | 51 | 52 | def load_scales_compat( 53 | module: nn.Module, scale_file: Optional[Union[str, ScaleDict]] 54 | ): 55 | scale_dict = _load_scale_dict(scale_file) 56 | if not scale_dict: 57 | return 58 | 59 | scale_factors = { 60 | module.name or name: (module, name) 61 | for name, module in module.named_modules() 62 | if isinstance(module, ScaleFactor) 63 | } 64 | logging.debug( 65 | f"Found the following scale factors: {[(k, name) for k, (_, name) in scale_factors.items()]}" 66 | ) 67 | for name, scale in scale_dict.items(): 68 | if name not in scale_factors: 69 | logging.warning(f"Scale factor {name} not found in model") 70 | continue 71 | 72 | scale_module, module_name = scale_factors[name] 73 | logging.debug( 74 | f"Loading scale factor {scale} for ({name} => {module_name})" 75 | ) 76 | scale_module.set_(scale) -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/gemnet/layers/embedding_block.py: -------------------------------------------------------------------------------- 1 | """ 2 | Copyright (c) Facebook, Inc. and its affiliates. 3 | 4 | This source code is licensed under the MIT license found in the 5 | LICENSE file in the root directory of this source tree. 6 | """ 7 | 8 | import numpy as np 9 | import torch 10 | 11 | from .base_layers import Dense 12 | 13 | 14 | class AtomEmbedding(torch.nn.Module): 15 | """ 16 | Initial atom embeddings based on the atom type 17 | 18 | Parameters 19 | ---------- 20 | emb_size: int 21 | Atom embeddings size 22 | """ 23 | 24 | def __init__(self, emb_size, num_elements): 25 | super().__init__() 26 | self.emb_size = emb_size 27 | 28 | self.embeddings = torch.nn.Embedding(num_elements, emb_size) 29 | # init by uniform distribution 30 | torch.nn.init.uniform_( 31 | self.embeddings.weight, a=-np.sqrt(3), b=np.sqrt(3) 32 | ) 33 | 34 | def forward(self, Z): 35 | """ 36 | Returns 37 | ------- 38 | h: torch.Tensor, shape=(nAtoms, emb_size) 39 | Atom embeddings. 40 | """ 41 | h = self.embeddings(Z - 1) # -1 because Z.min()=1 (==Hydrogen) 42 | return h 43 | 44 | 45 | class EdgeEmbedding(torch.nn.Module): 46 | """ 47 | Edge embedding based on the concatenation of atom embeddings and subsequent dense layer. 48 | 49 | Parameters 50 | ---------- 51 | emb_size: int 52 | Embedding size after the dense layer. 53 | activation: str 54 | Activation function used in the dense layer. 55 | """ 56 | 57 | def __init__( 58 | self, 59 | atom_features, 60 | edge_features, 61 | out_features, 62 | activation=None, 63 | ): 64 | super().__init__() 65 | in_features = 2 * atom_features + edge_features 66 | self.dense = Dense( 67 | in_features, out_features, activation=activation, bias=False 68 | ) 69 | 70 | def forward( 71 | self, 72 | h, 73 | m_rbf, 74 | idx_s, 75 | idx_t, 76 | ): 77 | """ 78 | 79 | Arguments 80 | --------- 81 | h 82 | m_rbf: shape (nEdges, nFeatures) 83 | in embedding block: m_rbf = rbf ; In interaction block: m_rbf = m_st 84 | idx_s 85 | idx_t 86 | 87 | Returns 88 | ------- 89 | m_st: torch.Tensor, shape=(nEdges, emb_size) 90 | Edge embeddings. 91 | """ 92 | h_s = h[idx_s] # shape=(nEdges, emb_size) 93 | h_t = h[idx_t] # shape=(nEdges, emb_size) 94 | 95 | m_st = torch.cat( 96 | [h_s, h_t, m_rbf], dim=-1 97 | ) # (nEdges, 2*emb_size+nFeatures) 98 | m_st = self.dense(m_st) # (nEdges, emb_size) 99 | return m_st 100 | -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/gemnet/layers/spherical_basis.py: -------------------------------------------------------------------------------- 1 | """ 2 | Copyright (c) Facebook, Inc. and its affiliates. 3 | 4 | This source code is licensed under the MIT license found in the 5 | LICENSE file in the root directory of this source tree. 6 | """ 7 | 8 | import sympy as sym 9 | import torch 10 | from torch_geometric.nn.models.schnet import GaussianSmearing 11 | 12 | from .basis_utils import real_sph_harm 13 | from .radial_basis import RadialBasis 14 | 15 | 16 | class CircularBasisLayer(torch.nn.Module): 17 | """ 18 | 2D Fourier Bessel Basis 19 | 20 | Parameters 21 | ---------- 22 | num_spherical: int 23 | Controls maximum frequency. 24 | radial_basis: RadialBasis 25 | Radial basis functions 26 | cbf: dict 27 | Name and hyperparameters of the cosine basis function 28 | efficient: bool 29 | Whether to use the "efficient" summation order 30 | """ 31 | 32 | def __init__( 33 | self, 34 | num_spherical: int, 35 | radial_basis: RadialBasis, 36 | cbf: str, 37 | efficient: bool = False, 38 | ): 39 | super().__init__() 40 | 41 | self.radial_basis = radial_basis 42 | self.efficient = efficient 43 | 44 | cbf_name = cbf["name"].lower() 45 | cbf_hparams = cbf.copy() 46 | del cbf_hparams["name"] 47 | 48 | if cbf_name == "gaussian": 49 | self.cosφ_basis = GaussianSmearing( 50 | start=-1, stop=1, num_gaussians=num_spherical, **cbf_hparams 51 | ) 52 | elif cbf_name == "spherical_harmonics": 53 | Y_lm = real_sph_harm( 54 | num_spherical, use_theta=False, zero_m_only=True 55 | ) 56 | sph_funcs = [] # (num_spherical,) 57 | 58 | # convert to tensorflow functions 59 | z = sym.symbols("z") 60 | modules = {"sin": torch.sin, "cos": torch.cos, "sqrt": torch.sqrt} 61 | m_order = 0 # only single angle 62 | for l_degree in range(len(Y_lm)): # num_spherical 63 | if ( 64 | l_degree == 0 65 | ): # Y_00 is only a constant -> function returns value and not tensor 66 | first_sph = sym.lambdify( 67 | [z], Y_lm[l_degree][m_order], modules 68 | ) 69 | sph_funcs.append( 70 | lambda z: torch.zeros_like(z) + first_sph(z) 71 | ) 72 | else: 73 | sph_funcs.append( 74 | sym.lambdify([z], Y_lm[l_degree][m_order], modules) 75 | ) 76 | self.cosφ_basis = lambda cosφ: torch.stack( 77 | [f(cosφ) for f in sph_funcs], dim=1 78 | ) 79 | else: 80 | raise ValueError(f"Unknown cosine basis function '{cbf_name}'.") 81 | 82 | def forward(self, D_ca, cosφ_cab, id3_ca): 83 | rbf = self.radial_basis(D_ca) # (num_edges, num_radial) 84 | cbf = self.cosφ_basis(cosφ_cab) # (num_triplets, num_spherical) 85 | 86 | if not self.efficient: 87 | rbf = rbf[id3_ca] # (num_triplets, num_radial) 88 | out = (rbf[:, None, :] * cbf[:, :, None]).view( 89 | -1, rbf.shape[-1] * cbf.shape[-1] 90 | ) 91 | return (out,) 92 | # (num_triplets, num_radial * num_spherical) 93 | else: 94 | return (rbf[None, :, :], cbf) 95 | # (1, num_edges, num_radial), (num_edges, num_spherical) 96 | -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/gemnet_oc/initializers.py: -------------------------------------------------------------------------------- 1 | """ 2 | Copyright (c) Facebook, Inc. and its affiliates. 3 | This source code is licensed under the MIT license found in the 4 | LICENSE file in the root directory of this source tree. 5 | """ 6 | 7 | from functools import partial 8 | 9 | import torch 10 | 11 | 12 | def _standardize(kernel): 13 | """ 14 | Makes sure that N*Var(W) = 1 and E[W] = 0 15 | """ 16 | eps = 1e-6 17 | 18 | if len(kernel.shape) == 3: 19 | axis = [0, 1] # last dimension is output dimension 20 | else: 21 | axis = 1 22 | 23 | var, mean = torch.var_mean(kernel, dim=axis, unbiased=True, keepdim=True) 24 | kernel = (kernel - mean) / (var + eps) ** 0.5 25 | return kernel 26 | 27 | 28 | def he_orthogonal_init(tensor): 29 | """ 30 | Generate a weight matrix with variance according to He (Kaiming) initialization. 31 | Based on a random (semi-)orthogonal matrix neural networks 32 | are expected to learn better when features are decorrelated 33 | (stated by eg. "Reducing overfitting in deep networks by decorrelating representations", 34 | "Dropout: a simple way to prevent neural networks from overfitting", 35 | "Exact solutions to the nonlinear dynamics of learning in deep linear neural networks") 36 | """ 37 | tensor = torch.nn.init.orthogonal_(tensor) 38 | 39 | if len(tensor.shape) == 3: 40 | fan_in = tensor.shape[:-1].numel() 41 | else: 42 | fan_in = tensor.shape[1] 43 | 44 | with torch.no_grad(): 45 | tensor.data = _standardize(tensor.data) 46 | tensor.data *= (1 / fan_in) ** 0.5 47 | 48 | return tensor 49 | 50 | 51 | def grid_init(tensor, start=-1, end=1): 52 | """ 53 | Generate a weight matrix so that each input value corresponds to one value on a regular grid between start and end. 54 | """ 55 | fan_in = tensor.shape[1] 56 | 57 | with torch.no_grad(): 58 | data = torch.linspace( 59 | start, end, fan_in, device=tensor.device, dtype=tensor.dtype 60 | ).expand_as(tensor) 61 | tensor.copy_(data) 62 | 63 | return tensor 64 | 65 | 66 | def log_grid_init(tensor, start=-4, end=0): 67 | """ 68 | Generate a weight matrix so that each input value corresponds to one value on a regular logarithmic grid between 10^start and 10^end. 69 | """ 70 | fan_in = tensor.shape[1] 71 | 72 | with torch.no_grad(): 73 | data = torch.logspace( 74 | start, end, fan_in, device=tensor.device, dtype=tensor.dtype 75 | ).expand_as(tensor) 76 | tensor.copy_(data) 77 | 78 | return tensor 79 | 80 | 81 | def get_initializer(name, **init_kwargs): 82 | name = name.lower() 83 | if name == "heorthogonal": 84 | initializer = he_orthogonal_init 85 | elif name == "zeros": 86 | initializer = torch.nn.init.zeros_ 87 | elif name == "grid": 88 | initializer = grid_init 89 | elif name == "loggrid": 90 | initializer = log_grid_init 91 | else: 92 | raise UserWarning(f"Unknown initializer: {name}") 93 | 94 | initializer = partial(initializer, **init_kwargs) 95 | return initializer 96 | -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/gemnet_oc/layers/base_layers.py: -------------------------------------------------------------------------------- 1 | """ 2 | Copyright (c) Facebook, Inc. and its affiliates. 3 | This source code is licensed under the MIT license found in the 4 | LICENSE file in the root directory of this source tree. 5 | """ 6 | 7 | import math 8 | 9 | import torch 10 | 11 | from ..initializers import he_orthogonal_init 12 | 13 | 14 | class Dense(torch.nn.Module): 15 | """ 16 | Combines dense layer with scaling for silu activation. 17 | 18 | Arguments 19 | --------- 20 | in_features: int 21 | Input embedding size. 22 | out_features: int 23 | Output embedding size. 24 | bias: bool 25 | True if use bias. 26 | activation: str 27 | Name of the activation function to use. 28 | """ 29 | 30 | def __init__(self, in_features, out_features, bias=False, activation=None): 31 | super().__init__() 32 | 33 | self.linear = torch.nn.Linear(in_features, out_features, bias=bias) 34 | self.reset_parameters() 35 | 36 | if isinstance(activation, str): 37 | activation = activation.lower() 38 | if activation in ["silu", "swish"]: 39 | self._activation = ScaledSiLU() 40 | elif activation is None: 41 | self._activation = torch.nn.Identity() 42 | else: 43 | raise NotImplementedError( 44 | "Activation function not implemented for GemNet (yet)." 45 | ) 46 | 47 | def reset_parameters(self, initializer=he_orthogonal_init): 48 | initializer(self.linear.weight) 49 | if self.linear.bias is not None: 50 | self.linear.bias.data.fill_(0) 51 | 52 | def forward(self, x): 53 | x = self.linear(x) 54 | x = self._activation(x) 55 | return x 56 | 57 | 58 | class ScaledSiLU(torch.nn.Module): 59 | def __init__(self): 60 | super().__init__() 61 | self.scale_factor = 1 / 0.6 62 | self._activation = torch.nn.SiLU() 63 | 64 | def forward(self, x): 65 | return self._activation(x) * self.scale_factor 66 | 67 | 68 | class ResidualLayer(torch.nn.Module): 69 | """ 70 | Residual block with output scaled by 1/sqrt(2). 71 | 72 | Arguments 73 | --------- 74 | units: int 75 | Input and output embedding size. 76 | nLayers: int 77 | Number of dense layers. 78 | layer: torch.nn.Module 79 | Class for the layers inside the residual block. 80 | layer_kwargs: str 81 | Keyword arguments for initializing the layers. 82 | """ 83 | 84 | def __init__( 85 | self, units: int, nLayers: int = 2, layer=Dense, **layer_kwargs 86 | ): 87 | super().__init__() 88 | self.dense_mlp = torch.nn.Sequential( 89 | *[ 90 | layer( 91 | in_features=units, 92 | out_features=units, 93 | bias=False, 94 | **layer_kwargs 95 | ) 96 | for _ in range(nLayers) 97 | ] 98 | ) 99 | self.inv_sqrt_2 = 1 / math.sqrt(2) 100 | 101 | def forward(self, input): 102 | x = self.dense_mlp(input) 103 | x = input + x 104 | x = x * self.inv_sqrt_2 105 | return x 106 | -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/gemnet_oc/layers/embedding_block.py: -------------------------------------------------------------------------------- 1 | """ 2 | Copyright (c) Facebook, Inc. and its affiliates. 3 | This source code is licensed under the MIT license found in the 4 | LICENSE file in the root directory of this source tree. 5 | """ 6 | 7 | import numpy as np 8 | import torch 9 | 10 | from .base_layers import Dense 11 | 12 | 13 | class AtomEmbedding(torch.nn.Module): 14 | """ 15 | Initial atom embeddings based on the atom type 16 | 17 | Arguments 18 | --------- 19 | emb_size: int 20 | Atom embeddings size 21 | """ 22 | 23 | def __init__(self, emb_size, num_elements): 24 | super().__init__() 25 | self.emb_size = emb_size 26 | 27 | self.embeddings = torch.nn.Embedding(num_elements, emb_size) 28 | # init by uniform distribution 29 | torch.nn.init.uniform_( 30 | self.embeddings.weight, a=-np.sqrt(3), b=np.sqrt(3) 31 | ) 32 | 33 | def forward(self, Z): 34 | """ 35 | Returns 36 | ------- 37 | h: torch.Tensor, shape=(nAtoms, emb_size) 38 | Atom embeddings. 39 | """ 40 | h = self.embeddings(Z - 1) # -1 because Z.min()=1 (==Hydrogen) 41 | return h 42 | 43 | 44 | class EdgeEmbedding(torch.nn.Module): 45 | """ 46 | Edge embedding based on the concatenation of atom embeddings 47 | and a subsequent dense layer. 48 | 49 | Arguments 50 | --------- 51 | atom_features: int 52 | Embedding size of the atom embedding. 53 | edge_features: int 54 | Embedding size of the input edge embedding. 55 | out_features: int 56 | Embedding size after the dense layer. 57 | activation: str 58 | Activation function used in the dense layer. 59 | """ 60 | 61 | def __init__( 62 | self, 63 | atom_features, 64 | edge_features, 65 | out_features, 66 | activation=None, 67 | ): 68 | super().__init__() 69 | in_features = 2 * atom_features + edge_features 70 | self.dense = Dense( 71 | in_features, out_features, activation=activation, bias=False 72 | ) 73 | 74 | def forward( 75 | self, 76 | h, 77 | m, 78 | edge_index, 79 | ): 80 | """ 81 | Arguments 82 | --------- 83 | h: torch.Tensor, shape (num_atoms, atom_features) 84 | Atom embeddings. 85 | m: torch.Tensor, shape (num_edges, edge_features) 86 | Radial basis in embedding block, 87 | edge embedding in interaction block. 88 | 89 | Returns 90 | ------- 91 | m_st: torch.Tensor, shape=(nEdges, emb_size) 92 | Edge embeddings. 93 | """ 94 | h_s = h[edge_index[0]] # shape=(nEdges, emb_size) 95 | h_t = h[edge_index[1]] # shape=(nEdges, emb_size) 96 | 97 | m_st = torch.cat( 98 | [h_s, h_t, m], dim=-1 99 | ) # (nEdges, 2*emb_size+nFeatures) 100 | m_st = self.dense(m_st) # (nEdges, emb_size) 101 | return m_st 102 | -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/gemnet_oc/layers/force_scaler.py: -------------------------------------------------------------------------------- 1 | """ 2 | Copyright (c) Facebook, Inc. and its affiliates. 3 | This source code is licensed under the MIT license found in the 4 | LICENSE file in the root directory of this source tree. 5 | """ 6 | 7 | import logging 8 | 9 | import torch 10 | 11 | 12 | class ForceScaler: 13 | """ 14 | Scales up the energy and then scales down the forces 15 | to prevent NaNs and infs in calculations using AMP. 16 | Inspired by torch.cuda.amp.GradScaler. 17 | """ 18 | 19 | def __init__( 20 | self, 21 | init_scale=2.0**8, 22 | growth_factor=2.0, 23 | backoff_factor=0.5, 24 | growth_interval=2000, 25 | max_force_iters=50, 26 | enabled=True, 27 | ): 28 | self.scale_factor = init_scale 29 | self.growth_factor = growth_factor 30 | self.backoff_factor = backoff_factor 31 | self.growth_interval = growth_interval 32 | self.max_force_iters = max_force_iters 33 | self.enabled = enabled 34 | self.finite_force_results = 0 35 | 36 | def scale(self, energy): 37 | return energy * self.scale_factor if self.enabled else energy 38 | 39 | def unscale(self, forces): 40 | return forces / self.scale_factor if self.enabled else forces 41 | 42 | def calc_forces(self, energy, pos): 43 | energy_scaled = self.scale(energy) 44 | forces_scaled = -torch.autograd.grad( 45 | energy_scaled, 46 | pos, 47 | grad_outputs=torch.ones_like(energy_scaled), 48 | create_graph=True, 49 | )[0] 50 | # (nAtoms, 3) 51 | forces = self.unscale(forces_scaled) 52 | return forces 53 | 54 | def calc_forces_and_update(self, energy, pos): 55 | if self.enabled: 56 | found_nans_or_infs = True 57 | force_iters = 0 58 | 59 | # Re-calculate forces until everything is nice and finite. 60 | while found_nans_or_infs: 61 | forces = self.calc_forces(energy, pos) 62 | 63 | found_nans_or_infs = not torch.all(forces.isfinite()) 64 | if found_nans_or_infs: 65 | self.finite_force_results = 0 66 | 67 | # Prevent infinite loop 68 | force_iters += 1 69 | if force_iters == self.max_force_iters: 70 | logging.warning( 71 | "Too many non-finite force results in a batch. " 72 | "Breaking scaling loop." 73 | ) 74 | break 75 | else: 76 | # Delete graph to save memory 77 | del forces 78 | else: 79 | self.finite_force_results += 1 80 | self.update() 81 | else: 82 | forces = self.calc_forces(energy, pos) 83 | return forces 84 | 85 | def update(self): 86 | if self.finite_force_results == 0: 87 | self.scale_factor *= self.backoff_factor 88 | 89 | if self.finite_force_results == self.growth_interval: 90 | self.scale_factor *= self.growth_factor 91 | self.finite_force_results = 0 92 | 93 | logging.info(f"finite force step count: {self.finite_force_results}") 94 | logging.info(f"scaling factor: {self.scale_factor}") 95 | -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/matformer/__init__.py: -------------------------------------------------------------------------------- 1 | """Graph neural network implementations.""" 2 | -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/ocpbase.py: -------------------------------------------------------------------------------- 1 | 2 | import logging 3 | 4 | import torch 5 | import torch.nn as nn 6 | from torch_geometric.nn import radius_graph 7 | 8 | from matdeeplearn.models.utils import ( 9 | compute_neighbors, 10 | conditional_grad, 11 | get_pbc_distances, 12 | radius_graph_pbc, 13 | ) 14 | 15 | 16 | class BaseModel(nn.Module): 17 | def __init__(self, num_atoms=None, bond_feat_dim=None, num_targets=None): 18 | super(BaseModel, self).__init__() 19 | self.num_atoms = num_atoms 20 | self.bond_feat_dim = bond_feat_dim 21 | self.num_targets = num_targets 22 | 23 | def forward(self, data): 24 | raise NotImplementedError 25 | 26 | def generate_graph( 27 | self, 28 | data, 29 | cutoff=None, 30 | max_neighbors=None, 31 | use_pbc=None, 32 | otf_graph=None, 33 | ): 34 | cutoff = cutoff or self.cutoff 35 | max_neighbors = max_neighbors or self.max_neighbors 36 | use_pbc = use_pbc or self.use_pbc 37 | otf_graph = otf_graph or self.otf_graph 38 | 39 | if not otf_graph: 40 | try: 41 | edge_index = data.edge_index 42 | 43 | if use_pbc: 44 | cell_offsets = data.cell_offsets 45 | neighbors = data.neighbors 46 | 47 | except AttributeError: 48 | logging.warning( 49 | "Turning otf_graph=True as required attributes not present in data object" 50 | ) 51 | otf_graph = True 52 | 53 | if use_pbc: 54 | if otf_graph: 55 | edge_index, cell_offsets, neighbors = radius_graph_pbc( 56 | data, cutoff, max_neighbors 57 | ) 58 | 59 | out = get_pbc_distances( 60 | data.pos, 61 | edge_index, 62 | data.cell, 63 | cell_offsets, 64 | neighbors, 65 | return_offsets=True, 66 | return_distance_vec=True, 67 | ) 68 | 69 | edge_index = out["edge_index"] 70 | edge_dist = out["distances"] 71 | cell_offset_distances = out["offsets"] 72 | distance_vec = out["distance_vec"] 73 | else: 74 | if otf_graph: 75 | edge_index = radius_graph( 76 | data.pos, 77 | r=cutoff, 78 | batch=data.batch, 79 | max_num_neighbors=max_neighbors, 80 | ) 81 | 82 | j, i = edge_index 83 | distance_vec = data.pos[j] - data.pos[i] 84 | 85 | edge_dist = distance_vec.norm(dim=-1) 86 | cell_offsets = torch.zeros( 87 | edge_index.shape[1], 3, device=data.pos.device 88 | ) 89 | cell_offset_distances = torch.zeros_like( 90 | cell_offsets, device=data.pos.device 91 | ) 92 | neighbors = compute_neighbors(data, data.edge_index) 93 | 94 | return ( 95 | edge_index, 96 | edge_dist, 97 | distance_vec, 98 | cell_offsets, 99 | cell_offset_distances, 100 | neighbors, 101 | ) 102 | 103 | @property 104 | def num_params(self): 105 | return sum(p.numel() for p in self.parameters()) 106 | @property 107 | def target_attr(self): 108 | return "y" -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/scn/Jd.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fung-Lab/MatDeepLearn_dev/23f5141fc8ca594ef1d99350966c47e4dc1f37cb/matdeeplearn/models/in_progress/scn/Jd.pt -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/scn/README.md: -------------------------------------------------------------------------------- 1 | # Spherical Channels for Modeling Atomic Interactions 2 | 3 | C. Lawrence Zitnick, Abhishek Das, Adeesh Kolluru, Janice Lan, Muhammed Shuaibi, Anuroop Sriram, Zachary Ulissi, Brandon Wood 4 | 5 | [[`arXiv:2206.14331`](https://arxiv.org/abs/2206.14331)] 6 | 7 | To run the Spherical Channel Network (SCN), install [e3nn](https://github.com/e3nn/e3nn/) with `pip install e3nn==0.2.6`. 8 | 9 | SCN was developed with e3nn v0.2.6, and might run slower with later versions [[1](https://github.com/Open-Catalyst-Project/ocp/issues/397), [2](https://github.com/Open-Catalyst-Project/ocp/pull/402)]. 10 | 11 | ## Citing 12 | 13 | If you use SCN in your work, please consider citing: 14 | 15 | ```bibtex 16 | @inproceedings{zitnick_scn_2022, 17 | title = {{Spherical Channels for Modeling Atomic Interactions}}, 18 | author = {Zitnick, C. Lawrence and Das, Abhishek and Kolluru, Adeesh and Lan, Janice and Shuaibi, Muhammed and Sriram, Anuroop and Ulissi, Zachary and Wood, Brandon}, 19 | booktitle = {Advances in Neural Information Processing Systems (NeurIPS)}, 20 | year = {2022}, 21 | } 22 | ``` 23 | -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/scn/sampling.py: -------------------------------------------------------------------------------- 1 | """ 2 | Copyright (c) Facebook, Inc. and its affiliates. 3 | 4 | This source code is licensed under the MIT license found in the 5 | LICENSE file in the root directory of this source tree. 6 | """ 7 | import math 8 | 9 | import torch 10 | 11 | ### Methods for sample points on a sphere 12 | 13 | 14 | def CalcSpherePoints(num_points, device): 15 | goldenRatio = (1 + 5**0.5) / 2 16 | i = torch.arange(num_points, device=device).view(-1, 1) 17 | theta = 2 * math.pi * i / goldenRatio 18 | phi = torch.arccos(1 - 2 * (i + 0.5) / num_points) 19 | points = torch.cat( 20 | [ 21 | torch.cos(theta) * torch.sin(phi), 22 | torch.sin(theta) * torch.sin(phi), 23 | torch.cos(phi), 24 | ], 25 | dim=1, 26 | ) 27 | 28 | # weight the points by their density 29 | pt_cross = points.view(1, -1, 3) - points.view(-1, 1, 3) 30 | pt_cross = torch.sum(pt_cross**2, dim=2) 31 | pt_cross = torch.exp(-pt_cross / (0.5 * 0.3)) 32 | scalar = 1.0 / torch.sum(pt_cross, dim=1) 33 | scalar = num_points * scalar / torch.sum(scalar) 34 | return points * (scalar.view(-1, 1)) 35 | 36 | 37 | def CalcSpherePointsRandom(num_points, device): 38 | pts = 2.0 * (torch.rand(num_points, 3, device=device) - 0.5) 39 | radius = torch.sum(pts**2, dim=1) 40 | while torch.max(radius) > 1.0: 41 | replace_pts = 2.0 * (torch.rand(num_points, 3, device=device) - 0.5) 42 | replace_mask = radius.gt(0.99) 43 | pts.masked_scatter_(replace_mask.view(-1, 1).repeat(1, 3), replace_pts) 44 | radius = torch.sum(pts**2, dim=1) 45 | 46 | return pts / radius.view(-1, 1) 47 | -------------------------------------------------------------------------------- /matdeeplearn/models/in_progress/scn/smearing.py: -------------------------------------------------------------------------------- 1 | """ 2 | Copyright (c) Facebook, Inc. and its affiliates. 3 | 4 | This source code is licensed under the MIT license found in the 5 | LICENSE file in the root directory of this source tree. 6 | """ 7 | 8 | import torch 9 | import torch.nn as nn 10 | 11 | 12 | # Different encodings for the atom distance embeddings 13 | class GaussianSmearing(torch.nn.Module): 14 | def __init__( 15 | self, start=-5.0, stop=5.0, num_gaussians=50, basis_width_scalar=1.0 16 | ): 17 | super(GaussianSmearing, self).__init__() 18 | self.num_output = num_gaussians 19 | offset = torch.linspace(start, stop, num_gaussians) 20 | self.coeff = ( 21 | -0.5 / (basis_width_scalar * (offset[1] - offset[0])).item() ** 2 22 | ) 23 | self.register_buffer("offset", offset) 24 | 25 | def forward(self, dist): 26 | dist = dist.view(-1, 1) - self.offset.view(1, -1) 27 | return torch.exp(self.coeff * torch.pow(dist, 2)) 28 | 29 | 30 | class SigmoidSmearing(torch.nn.Module): 31 | def __init__( 32 | self, start=-5.0, stop=5.0, num_sigmoid=50, basis_width_scalar=1.0 33 | ): 34 | super(SigmoidSmearing, self).__init__() 35 | self.num_output = num_sigmoid 36 | offset = torch.linspace(start, stop, num_sigmoid) 37 | self.coeff = (basis_width_scalar / (offset[1] - offset[0])).item() 38 | self.register_buffer("offset", offset) 39 | 40 | def forward(self, dist): 41 | exp_dist = self.coeff * (dist.view(-1, 1) - self.offset.view(1, -1)) 42 | return torch.sigmoid(exp_dist) 43 | 44 | 45 | class LinearSigmoidSmearing(torch.nn.Module): 46 | def __init__( 47 | self, start=-5.0, stop=5.0, num_sigmoid=50, basis_width_scalar=1.0 48 | ): 49 | super(LinearSigmoidSmearing, self).__init__() 50 | self.num_output = num_sigmoid 51 | offset = torch.linspace(start, stop, num_sigmoid) 52 | self.coeff = (basis_width_scalar / (offset[1] - offset[0])).item() 53 | self.register_buffer("offset", offset) 54 | 55 | def forward(self, dist): 56 | exp_dist = self.coeff * (dist.view(-1, 1) - self.offset.view(1, -1)) 57 | x_dist = torch.sigmoid(exp_dist) + 0.001 * exp_dist 58 | return x_dist 59 | 60 | 61 | class SiLUSmearing(torch.nn.Module): 62 | def __init__( 63 | self, start=-5.0, stop=5.0, num_output=50, basis_width_scalar=1.0 64 | ): 65 | super(SiLUSmearing, self).__init__() 66 | self.num_output = num_output 67 | self.fc1 = nn.Linear(2, num_output) 68 | self.act = nn.SiLU() 69 | 70 | def forward(self, dist): 71 | x_dist = dist.view(-1, 1) 72 | x_dist = torch.cat([x_dist, torch.ones_like(x_dist)], dim=1) 73 | x_dist = self.act(self.fc1(x_dist)) 74 | return x_dist -------------------------------------------------------------------------------- /matdeeplearn/modules/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ["Evaluator", "DOSLoss", "TorchLossWrapper", "ForceLoss", "ForceStressLoss", "LRScheduler"] 2 | 3 | from .evaluator import Evaluator 4 | from .loss import DOSLoss, TorchLossWrapper, ForceLoss, ForceStressLoss 5 | from .scheduler import LRScheduler 6 | -------------------------------------------------------------------------------- /matdeeplearn/modules/evaluator.py: -------------------------------------------------------------------------------- 1 | # Torch imports 2 | import numpy as np 3 | import torch 4 | import torch.nn.functional as F 5 | 6 | 7 | class Evaluator: 8 | def __init__(self, task=None): 9 | self.task = task 10 | 11 | def eval(self, prediction, target, loss_method, prev_metrics={}): 12 | metrics = prev_metrics 13 | res = loss_method(prediction, target) 14 | 15 | metrics = self.update(type(loss_method).__name__, res.item(), prediction["output"].shape[0], metrics) 16 | 17 | return metrics 18 | 19 | def update(self, key, stat, count, metrics): 20 | if key not in metrics: 21 | metrics[key] = { 22 | "metric": None, 23 | "total": 0, 24 | "numel": 0, 25 | } 26 | ''' 27 | if isinstance(stat, dict): 28 | # If dictionary, we expect it to have `metric`, `total`, `numel`. 29 | metrics[key]["total"] += stat["total"] 30 | metrics[key]["numel"] += stat["numel"] 31 | metrics[key]["metric"] = metrics[key]["total"] / metrics[key]["numel"] 32 | elif isinstance(stat, float) or isinstance(stat, int): 33 | # If float or int, just add to the total and increment numel by 1. 34 | metrics[key]["total"] += stat 35 | metrics[key]["numel"] += 1 36 | metrics[key]["metric"] = metrics[key]["total"] / metrics[key]["numel"] 37 | elif torch.is_tensor(stat): 38 | raise NotImplementedError 39 | ''' 40 | metrics[key]["total"] += stat * count 41 | metrics[key]["numel"] += count 42 | metrics[key]["metric"] = metrics[key]["total"] / metrics[key]["numel"] 43 | 44 | return metrics 45 | -------------------------------------------------------------------------------- /matdeeplearn/modules/scheduler.py: -------------------------------------------------------------------------------- 1 | import torch 2 | 3 | 4 | class LRScheduler: 5 | """wrapper around torch.optim.lr_scheduler._LRScheduler""" 6 | 7 | def __init__(self, optimizer, scheduler_type, model_parameters): 8 | self.optimizer = optimizer 9 | self.scheduler_type = scheduler_type 10 | 11 | self.scheduler = getattr(torch.optim.lr_scheduler, self.scheduler_type)( 12 | optimizer, **model_parameters 13 | ) 14 | 15 | self.lr = self.optimizer.param_groups[0]["lr"] 16 | 17 | @classmethod 18 | def from_config(cls, optimizer, optim_config): 19 | scheduler_type = optim_config["scheduler_type"] 20 | scheduler_args = optim_config["scheduler_args"] 21 | return cls(optimizer, scheduler_type, **scheduler_args) 22 | 23 | def step(self, metrics=None, epoch=None): 24 | if self.scheduler_type == "Null": 25 | return 26 | if self.scheduler_type == "ReduceLROnPlateau": 27 | if metrics is None: 28 | raise Exception("Validation set required for ReduceLROnPlateau.") 29 | self.scheduler.step(metrics) 30 | else: 31 | self.scheduler.step() 32 | 33 | # update the learning rate attribute to current lr 34 | self.update_lr() 35 | 36 | def update_lr(self): 37 | for param_group in self.optimizer.param_groups: 38 | self.lr = param_group["lr"] 39 | -------------------------------------------------------------------------------- /matdeeplearn/preprocessor/__init__.py: -------------------------------------------------------------------------------- 1 | from .datasets import LargeStructureDataset, StructureDataset 2 | from .processor import DataProcessor 3 | from .transforms import * 4 | -------------------------------------------------------------------------------- /matdeeplearn/preprocessor/datasets.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | import torch 4 | from torch_geometric.data import InMemoryDataset 5 | 6 | 7 | class StructureDataset(InMemoryDataset): 8 | def __init__( 9 | self, 10 | root, 11 | processed_data_path, 12 | processed_file_name, 13 | transform=None, 14 | pre_transform=None, 15 | pre_filter=None, 16 | device=None, 17 | ): 18 | self.root = root 19 | self.processed_data_path = processed_data_path 20 | self.processed_file_name = processed_file_name 21 | super(StructureDataset, self).__init__( 22 | root, transform, pre_transform, pre_filter 23 | ) 24 | if not torch.cuda.is_available() or device == "cpu": 25 | self.data, self.slices = torch.load( 26 | self.processed_paths[0], map_location=torch.device("cpu") 27 | ) 28 | else: 29 | self.data, self.slices = torch.load(self.processed_paths[0], map_location=device) 30 | 31 | @property 32 | def raw_file_names(self): 33 | """ 34 | The name of the files in the self.raw_dir folder 35 | that must be present in order to skip downloading. 36 | """ 37 | return [] 38 | 39 | def download(self): 40 | """ 41 | Download required data files; to be implemented 42 | """ 43 | pass 44 | 45 | @property 46 | def processed_dir(self): 47 | return os.path.join(self.root, self.processed_data_path) 48 | 49 | @property 50 | def processed_file_names(self): 51 | """ 52 | The name of the files in the self.processed_dir 53 | folder that must be present in order to skip processing. 54 | """ 55 | return [self.processed_file_name] 56 | 57 | 58 | class LargeStructureDataset(InMemoryDataset): 59 | pass 60 | -------------------------------------------------------------------------------- /matdeeplearn/preprocessor/old/deprecated.py: -------------------------------------------------------------------------------- 1 | import itertools 2 | import os 3 | 4 | import ase 5 | import numpy as np 6 | import torch 7 | import torch.nn.functional as F 8 | from ase import io 9 | from scipy.stats import rankdata 10 | from torch_geometric.utils import degree 11 | 12 | 13 | def threshold_sort(matrix, threshold, neighbors, reverse=False, adj=False): 14 | mask = matrix > threshold 15 | distance_matrix_trimmed = np.ma.array(matrix, mask=mask) 16 | if not reverse: 17 | distance_matrix_trimmed = rankdata( 18 | distance_matrix_trimmed, method="ordinal", axis=1 19 | ) 20 | elif reverse: 21 | distance_matrix_trimmed = rankdata( 22 | distance_matrix_trimmed * -1, method="ordinal", axis=1 23 | ) 24 | distance_matrix_trimmed = np.nan_to_num( 25 | np.where(mask, np.nan, distance_matrix_trimmed) 26 | ) 27 | distance_matrix_trimmed[distance_matrix_trimmed > neighbors + 1] = 0 28 | 29 | if not adj: 30 | distance_matrix_trimmed = np.where( 31 | distance_matrix_trimmed == 0, distance_matrix_trimmed, matrix 32 | ) 33 | return distance_matrix_trimmed 34 | elif adj: 35 | adj_list = np.zeros((matrix.shape[0], neighbors + 1)) 36 | adj_attr = np.zeros((matrix.shape[0], neighbors + 1)) 37 | for i in range(0, matrix.shape[0]): 38 | temp = np.where(distance_matrix_trimmed[i] != 0)[0] 39 | adj_list[i, :] = np.pad( 40 | temp, 41 | pad_width=(0, neighbors + 1 - len(temp)), 42 | mode="constant", 43 | constant_values=0, 44 | ) 45 | adj_attr[i, :] = matrix[i, adj_list[i, :].astype(int)] 46 | distance_matrix_trimmed = np.where( 47 | distance_matrix_trimmed == 0, distance_matrix_trimmed, matrix 48 | ) 49 | return distance_matrix_trimmed, adj_list, adj_attr 50 | -------------------------------------------------------------------------------- /matdeeplearn/tasks/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fung-Lab/MatDeepLearn_dev/23f5141fc8ca594ef1d99350966c47e4dc1f37cb/matdeeplearn/tasks/README.md -------------------------------------------------------------------------------- /matdeeplearn/trainers/__init__.py: -------------------------------------------------------------------------------- 1 | # This source code is licensed under the MIT license found in the 2 | # LICENSE file in the root directory of this source tree. 3 | 4 | __all__ = ["BaseTrainer", "PropertyTrainer"] 5 | 6 | from .base_trainer import BaseTrainer 7 | from .property_trainer import PropertyTrainer 8 | -------------------------------------------------------------------------------- /scripts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fung-Lab/MatDeepLearn_dev/23f5141fc8ca594ef1d99350966c47e4dc1f37cb/scripts/__init__.py -------------------------------------------------------------------------------- /scripts/main.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import pprint 3 | import os 4 | import sys 5 | import shutil 6 | from datetime import datetime 7 | from torch import distributed as dist 8 | from matdeeplearn.common.config.build_config import build_config 9 | from matdeeplearn.common.config.flags import flags 10 | from matdeeplearn.common.trainer_context import new_trainer_context 11 | from matdeeplearn.preprocessor.processor import process_data 12 | 13 | # import submitit 14 | 15 | # from matdeeplearn.common.utils import setup_logging 16 | 17 | 18 | class Runner: # submitit.helpers.Checkpointable): 19 | def __init__(self): 20 | self.config = None 21 | 22 | def __call__(self, config): 23 | 24 | with new_trainer_context(args=args, config=config) as ctx: 25 | self.config = ctx.config 26 | self.task = ctx.task 27 | self.trainer = ctx.trainer 28 | 29 | self.task.setup(self.trainer) 30 | 31 | # Print settings for job 32 | logging.debug("Settings: ") 33 | logging.debug(pprint.pformat(self.config)) 34 | 35 | self.task.run() 36 | 37 | shutil.move('log_'+config["task"]["log_id"]+'.txt', os.path.join(self.trainer.save_dir, "results", self.trainer.timestamp_id, "log.txt")) 38 | 39 | def checkpoint(self, *args, **kwargs): 40 | # new_runner = Runner() 41 | self.trainer.save(checkpoint_file="checkpoint.pt", training_state=True) 42 | self.config["checkpoint"] = self.task.chkpt_path 43 | self.config["timestamp_id"] = self.trainer.timestamp_id 44 | if self.trainer.logger is not None: 45 | self.trainer.logger.mark_preempting() 46 | # return submitit.helpers.DelayedSubmission(new_runner, self.config) 47 | 48 | 49 | if __name__ == "__main__": 50 | 51 | 52 | # setup_logging() 53 | local_rank = os.environ.get('LOCAL_RANK', None) 54 | if local_rank == None or int(local_rank) == 0: 55 | root_logger = logging.getLogger() 56 | root_logger.setLevel(logging.DEBUG) 57 | 58 | timestamp = datetime.now().timestamp() 59 | timestamp_id = datetime.fromtimestamp(timestamp).strftime( 60 | "%Y-%m-%d-%H-%M-%S-%f" 61 | )[:-3] 62 | fh = logging.FileHandler('log_'+timestamp_id+'.txt', 'w+') 63 | fh.setLevel(logging.DEBUG) 64 | root_logger.addHandler(fh) 65 | 66 | sh = logging.StreamHandler(sys.stdout) 67 | sh.setLevel(logging.DEBUG) 68 | root_logger.addHandler(sh) 69 | 70 | parser = flags.get_parser() 71 | args, override_args = parser.parse_known_args() 72 | config = build_config(args, override_args) 73 | config["task"]["log_id"] = timestamp_id 74 | 75 | if not config["dataset"]["processed"]: 76 | process_data(config["dataset"]) 77 | 78 | if args.submit: # Run on cluster 79 | # TODO: add setup to submit to cluster 80 | pass 81 | 82 | else: # Run locally 83 | Runner()(config) 84 | 85 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import find_packages, setup 2 | 3 | setup( 4 | name="matdeeplearn", 5 | version="0.0.1", 6 | description="Machine Learning package for graph neural netowrks and other models in materials chemistry", 7 | url="https://github.com/Fung-Lab/MatDeepLearn", 8 | packages=find_packages(), 9 | include_package_data=True, 10 | ) 11 | -------------------------------------------------------------------------------- /test/saved_models/cgcnn.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fung-Lab/MatDeepLearn_dev/23f5141fc8ca594ef1d99350966c47e4dc1f37cb/test/saved_models/cgcnn.pt -------------------------------------------------------------------------------- /test/scripts/cpu/test_predict.py: -------------------------------------------------------------------------------- 1 | import yaml 2 | import pytest 3 | 4 | from matdeeplearn.preprocessor.processor import process_data 5 | 6 | from utils import trainer_property, trainer_context, assert_valid_predictions 7 | 8 | 9 | @pytest.fixture 10 | def params(): 11 | with open("test/configs/cpu/test_predict.yml", "r") as ymlfile: 12 | config = yaml.load(ymlfile, Loader=yaml.FullLoader) 13 | config["task"]["run_mode"] = "predict" 14 | return config 15 | 16 | def test_predict(params): 17 | process_data(params["dataset"]) 18 | 19 | trainers = [] 20 | trainers.append(trainer_property(params, False)) 21 | trainers.append(trainer_context(params, False)) 22 | 23 | for trainer in trainers: 24 | assert_valid_predictions(trainer, "predict_loader") 25 | -------------------------------------------------------------------------------- /test/scripts/cpu/test_training.py: -------------------------------------------------------------------------------- 1 | import yaml 2 | import pytest 3 | 4 | from matdeeplearn.preprocessor.processor import process_data 5 | 6 | from utils import trainer_property, trainer_context, assert_valid_predictions 7 | 8 | @pytest.fixture 9 | def params(): 10 | with open("test/configs/cpu/test_training.yml", "r") as ymlfile: 11 | config = yaml.load(ymlfile, Loader=yaml.FullLoader) 12 | config["task"]["run_mode"] = "train" 13 | return config 14 | 15 | @pytest.fixture 16 | def models(): 17 | return ["CGCNN", "SchNet"] 18 | 19 | def test_training(params, models): 20 | process_data(params["dataset"]) 21 | 22 | trainers = [] 23 | for model in models: 24 | params["model"]["name"] = model 25 | trainers.append(trainer_context(params, True)) 26 | trainers.append(trainer_property(params, True)) 27 | 28 | for trainer in trainers: 29 | assert_valid_predictions(trainer, "test_loader") 30 | -------------------------------------------------------------------------------- /test/scripts/cpu/utils.py: -------------------------------------------------------------------------------- 1 | from matdeeplearn.common.trainer_context import new_trainer_context 2 | from matdeeplearn.trainers.property_trainer import PropertyTrainer 3 | 4 | from numpy import floating, integer 5 | 6 | def trainer_context(config, train: bool): 7 | with new_trainer_context(args=None, config=config) as ctx: 8 | task = ctx.task 9 | trainer = ctx.trainer 10 | task.setup(trainer) 11 | if train: 12 | task.run() 13 | return trainer 14 | 15 | def trainer_property(config, train: bool): 16 | trainer = PropertyTrainer.from_config(config) 17 | if train: 18 | trainer.train() 19 | return trainer 20 | 21 | def assert_valid_predictions(trainer, load: str): 22 | try: 23 | out = trainer.predict(loader=trainer.data_loader[0][load], split="predict", write_output=False) 24 | assert isinstance(out["predict"][0][0], (floating, float, integer, int)) 25 | assert isinstance(out["ids"][0][0], str) 26 | if load != "predict_loader": 27 | assert isinstance(out["target"][0][0], (floating, float, integer, int)) 28 | except: 29 | assert False 30 | 31 | -------------------------------------------------------------------------------- /test/test_init.py: -------------------------------------------------------------------------------- 1 | from matdeeplearn.common.config.build_config import parse_value 2 | 3 | def test_true(): 4 | assert True 5 | -------------------------------------------------------------------------------- /tutorials/sample.cif: -------------------------------------------------------------------------------- 1 | 2 | #====================================================================== 3 | # CRYSTAL DATA 4 | #---------------------------------------------------------------------- 5 | data_VESTA_phase_1 6 | 7 | _chemical_name_common '"O8 As2 Y2"' 8 | _cell_length_a 5.988000 9 | _cell_length_b 5.988000 10 | _cell_length_c 5.988000 11 | _cell_angle_alpha 106.446999 12 | _cell_angle_beta 106.446999 13 | _cell_angle_gamma 115.706001 14 | _cell_volume 163.796489 15 | _space_group_name_H-M_alt 'P 1' 16 | _space_group_IT_number 1 17 | 18 | loop_ 19 | _space_group_symop_operation_xyz 20 | 'x, y, z' 21 | 22 | loop_ 23 | _atom_site_label 24 | _atom_site_occupancy 25 | _atom_site_fract_x 26 | _atom_site_fract_y 27 | _atom_site_fract_z 28 | _atom_site_adp_type 29 | _atom_site_U_iso_or_equiv 30 | _atom_site_type_symbol 31 | O1 1.0 0.302030 0.233080 0.431050 Uiso ? O 32 | O2 1.0 0.870990 0.302030 0.568950 Uiso ? O 33 | O3 1.0 0.233080 0.302030 0.931050 Uiso ? O 34 | O4 1.0 0.302030 0.870990 0.068950 Uiso ? O 35 | O5 1.0 0.129010 0.697970 0.431050 Uiso ? O 36 | O6 1.0 0.697970 0.766920 0.568950 Uiso ? O 37 | O7 1.0 0.697970 0.129010 0.931050 Uiso ? O 38 | O8 1.0 0.766920 0.697970 0.068950 Uiso ? O 39 | As1 1.0 0.875000 0.125000 0.750000 Uiso ? As 40 | As2 1.0 0.125000 0.875000 0.250000 Uiso ? As 41 | Y1 1.0 0.375000 0.625000 0.750000 Uiso ? Y 42 | Y2 1.0 0.625000 0.375000 0.250000 Uiso ? Y 43 | --------------------------------------------------------------------------------