Passed
Push — master ( c026c2...632976 )
by Daniel
06:58
created

regenerate_data.regen()   A

Complexity

Conditions 3

Size

Total Lines 13
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 10
dl 0
loc 13
rs 9.9
c 0
b 0
f 0
cc 3
nop 2
1
import os
2
import numpy as np
3
import amd
4
import pickle
5
6
7
root = r'tests/data'
8
9
def regen(name, generator):
10
11
    data = []
12
    for s in generator:
13
        pdd = amd.PDD(s, 100)
14
        data.append({'PeriodicSet': s, 'AMD100': amd.PDD_to_AMD(pdd), 'PDD100': pdd})
15
    
16
    with open(os.path.join(root, f'{name}.pkl'), 'wb') as f:
17
        pickle.dump(data, f)
18
19
    pdds = [d['PDD100'] for d in data]
20
    cdm = amd.PDD_pdist(pdds)
21
    np.savez_compressed(os.path.join(root, rf'{name}_cdm.npz'), cdm=cdm)
22
23
24
def regenerate_from_cifs():
25
26
    filenames = ['cubic', 'T2_experimental']
27
28
    for name in filenames:
29
        path = os.path.join(root, name)
30
        regen(name, amd.CifReader(path + '.cif', show_warnings=False))
31
32
33
def regenerate_CSD_families():
34
35
    name = 'CSD_families'
36
    csd_families = ['DEBXIT', 'GLYCIN', 'HXACAN', 'ACSALA']
37
    generator = amd.CSDReader(csd_families, families=True, show_warnings=False)
38
    regen(name, generator)
39
40
41
if __name__ == '__main__':
42
    # pass
43
    regenerate_CSD_families()