|
8 | 8 |
|
9 | 9 | from mpds_client import MPDSDataRetrieval, APIError |
10 | 10 |
|
11 | | -from prediction import prop_semantics |
| 11 | +from prediction import prop_models |
12 | 12 | from struct_utils import detect_format, poscar_to_ase, symmetrize, get_formula, sgn_to_crsystem |
13 | 13 | from cif_utils import cif_to_ase |
| 14 | +from common import API_KEY, API_ENDPOINT |
14 | 15 |
|
15 | 16 |
|
16 | 17 | req = httplib2.Http() |
17 | | -client = MPDSDataRetrieval() |
| 18 | +client = MPDSDataRetrieval(api_key=API_KEY, endpoint=API_ENDPOINT) |
18 | 19 |
|
19 | 20 | def make_request(address, data={}, httpverb='POST', headers={}): |
20 | 21 |
|
@@ -59,29 +60,29 @@ def make_request(address, data={}, httpverb='POST', headers={}): |
59 | 60 | raise RuntimeError(answer['error']) |
60 | 61 |
|
61 | 62 | formulae_categ, lattices_categ = get_formula(ase_obj), sgn_to_crsystem(ase_obj.info['spacegroup'].no) |
62 | | - for prop_id, pdata in prop_semantics.items(): |
| 63 | + for prop_id, pdata in prop_models.items(): |
63 | 64 | try: |
64 | 65 | resp = client.get_dataframe({ |
65 | 66 | 'formulae': formulae_categ, |
66 | 67 | 'lattices': lattices_categ, |
67 | 68 | 'props': pdata['name'] |
68 | 69 | }) |
69 | 70 | except APIError as e: |
70 | | - prop_semantics[prop_id]['factual'] = None |
| 71 | + prop_models[prop_id]['factual'] = None |
71 | 72 | if e.code == 1: |
72 | 73 | continue |
73 | 74 | else: |
74 | 75 | raise |
75 | 76 |
|
76 | 77 | resp['Value'] = resp['Value'].astype('float64') # to treat values out of bounds given as str |
77 | 78 | resp = resp[resp['Units'] == pdata['units']] |
78 | | - prop_semantics[prop_id]['factual'] = np.median(resp['Value']) |
| 79 | + prop_models[prop_id]['factual'] = np.median(resp['Value']) |
79 | 80 |
|
80 | 81 | for prop_id, pdata in answer['prediction'].items(): |
81 | 82 | print("{0:40} = {1:6}, factual {2:8} (MAE = {3:4}), {4}".format( |
82 | | - prop_semantics[prop_id]['name'], |
83 | | - pdata['value'], |
84 | | - prop_semantics[prop_id]['factual'] or 'absent', |
| 83 | + prop_models[prop_id]['name'], |
| 84 | + 'conductor' if pdata['value'] == 0 and prop_id == 'w' else pdata['value'], |
| 85 | + prop_models[prop_id]['factual'] or 'absent', |
85 | 86 | pdata['mae'], |
86 | | - prop_semantics[prop_id]['units'] |
| 87 | + prop_models[prop_id]['units'] |
87 | 88 | )) |
0 commit comments