MaterSim / PyXtal

A code to generate atomic structure with symmetry
MIT License
258 stars 68 forks source link

Add the function to output the number of molecules according to vdw contact #169

Closed qzhu2017 closed 2 years ago

qzhu2017 commented 2 years ago

output

qzhu2017 commented 2 years ago
from pyxtal import pyxtal

c = pyxtal(molecular=True)
cif_path = 'pyxtal/database/cifs/'

for name in ["aspirin", "WEXBOS", "MERQIM", "LAGNAL", "YICMOP", "LUFHAW", \
             "coumarin", "HAHCOI", "JAPWIH", "AXOSOW01", "PAHYON01", \
             "xxvi", "resorcinol", 
             ]:

    c.from_seed(seed=cif_path+name+".cif", molecules=[name])
    #print(c)
    for f in [1.5]:
        for i in range(len(c.mol_sites)):
            ds, neighs = c.get_neighboring_molecules(i, f)
            print(name, 'site', i, 'factor', f, len(ds), min(ds), max(ds))

data = [
        ("DNNAPH.cif", 'C1=CC2=C(C=CC=C2[N+](=O)[O-])C(=C1)[N+](=O)[O-]'),
        ("HCLBNZ.cif", 'C1(=C(C(=C(C(=C1Cl)Cl)Cl)Cl)Cl)Cl'),
        ("ADAMAN08.cif", 'C1C2CC3CC1CC(C2)C3'),
        ("HXMTAM.cif", 'C1N2CN3CN1CN(C2)C3'),
        ("ACETYL02.cif", 'C#C'),
        ("ZZZWOU01.cif", 'C1(=C(C(=C(C(=C1N)N)N)N)N)N'),
        ("HCCYHB.cif", "C1(C(C(C(C(C1Cl)Cl)Cl)Cl)Cl)Cl"),
        ("CONGRS.cif", "C1C2CC3C4C1C5CC(C4)CC3C5C2"),
       ]

cif_path = 'pyxtal/database/packing-analysis/'
for d in data:
    (name, smi) = d
    try:
        c.from_seed(cif_path+name, [smi+'.smi'])
    except:
        c.from_seed(cif_path+name, [smi+'.smi'], add_H=True)
    #print(c)

    for f in [1.5]:
        ds, neighs = c.get_neighboring_molecules(0, f)
        if len(ds) > 0:
            print(name, 'factor', f, len(ds), min(ds), max(ds))
qzhu2017 commented 2 years ago