atomref-proatoms profile-table inspection¶
This notebook is a lightweight guide for inspecting generated profile, radii, and QA tables. It reads tables from data/; it does not run SCF calculations and does not define the production workflow.
The current generated data layer contains four dataset directories under data/profiles/, data/radii/, and data/qa/. The expected dataset-state row counts are 430 for x2c-QZVPall, 501 for dyall-v4z, 192 for x2c-QZVPall-s neutral/anion states, and 166 for dyall-av4z neutral/anion states. Basis-sensitivity data are under data/qa/basis_sensitivity/; the primary x2c-versus-dyall basis-family comparison is under data/qa/basis_comparisons/.
In [1]:
Copied!
import json
from pathlib import Path
import pandas as pd
qa_root = Path('../../data/qa')
summary = pd.read_csv(qa_root / 'qa_summary.csv')
summary
import json
from pathlib import Path
import pandas as pd
qa_root = Path('../../data/qa')
summary = pd.read_csv(qa_root / 'qa_summary.csv')
summary
Out[1]:
| dataset_id | basis_id | state_count | passed_count | failed_count | max_abs_electron_count_error_qa | max_rel_angular_sigma | linear_dependency_warning_count | |
|---|---|---|---|---|---|---|---|---|
| 0 | pbe0_sfx2c_x2cqzvpall_h-rn_spherical_v2 | x2c-QZVPall | 430 | 430 | 0 | 2.302158e-12 | 1.560673e-14 | 0 |
| 1 | pbe0_sfx2c_dyallv4z_h-lr_spherical_v2 | dyall-v4z | 501 | 501 | 0 | 2.430056e-12 | 3.750386e-15 | 266 |
| 2 | pbe0_sfx2c_x2cqzvpalls_h-rn_spherical_v2 | x2c-QZVPall-s | 192 | 192 | 0 | 2.330580e-12 | 3.826097e-15 | 38 |
| 3 | pbe0_sfx2c_dyallav4z_h-ba_hf-ra_spherical_v2 | dyall-av4z | 166 | 166 | 0 | 2.302158e-12 | 2.678425e-15 | 68 |
In [2]:
Copied!
basis_meta = json.loads((qa_root / 'basis_sensitivity' / 'metadata.json').read_text())
basis_meta['pair_outputs']
basis_meta = json.loads((qa_root / 'basis_sensitivity' / 'metadata.json').read_text())
basis_meta['pair_outputs']
Out[2]:
{'basis_sensitivity_dyall': {'output_dir': 'data/qa/basis_sensitivity/dyall-v4z',
'rows_csv': 'data/qa/basis_sensitivity/dyall-v4z/basis_sensitivity.csv',
'summary_csv': 'data/qa/basis_sensitivity/dyall-v4z/basis_sensitivity_summary.csv',
'outliers_csv': 'data/qa/basis_sensitivity/dyall-v4z/basis_sensitivity_outliers.csv',
'metric_distributions_csv': 'data/qa/basis_sensitivity/dyall-v4z/basis_sensitivity_metric_distributions.csv',
'row_count': '166',
'summary_count': '1',
'outlier_count': '14',
'metric_distribution_count': '198'},
'basis_sensitivity_x2c': {'output_dir': 'data/qa/basis_sensitivity/x2c-QZVPall',
'rows_csv': 'data/qa/basis_sensitivity/x2c-QZVPall/basis_sensitivity.csv',
'summary_csv': 'data/qa/basis_sensitivity/x2c-QZVPall/basis_sensitivity_summary.csv',
'outliers_csv': 'data/qa/basis_sensitivity/x2c-QZVPall/basis_sensitivity_outliers.csv',
'metric_distributions_csv': 'data/qa/basis_sensitivity/x2c-QZVPall/basis_sensitivity_metric_distributions.csv',
'row_count': '192',
'summary_count': '1',
'outlier_count': '0',
'metric_distribution_count': '176'}}
For release validation, prefer the command-line checker:
python scripts/check_profile_artifacts.py --require-generated