Predicted Properties

Certain entries can have predicted properties associated with their structures. These properties will have been generated by Computational Chemistry methods, for which there are a range of options in terms of levels of theory, basis sets, etc., but will only be linked to from the CSD once the workflows and methodologies have been through rigorous peer review and experimental verification.

The predicted_properties class inherits the attributes of the ccdc.entry class. Those entries that do not have predicted properties associated will return None:

>>> import ccdc
>>> Entry = ccdc.io.EntryReader("CSD")[0]
>>> print(Entry.identifier, Entry.predicted_properties)
AABHTZ None

Organic Semi Conductor Properties

The first set of such data to be accessible through the CSD python API is the dataset of Organic Semi Conductor relevant properties, created by A. Troisi, T. Nematiaram, and coworkers. The following papers describe the methodologies, please cite the relevant ones if you find them useful in your research: https://onlinelibrary.wiley.com/doi/10.1002/adfm.202001906 https://www.nature.com/articles/s41597-022-01142-7 https://pubs.aip.org/aip/jcp/article/152/19/190902/199058/Modeling-charge-transport-in-high-mobility (hole reorganisation energy) https://pubs.acs.org/doi/epdf/10.1021/acs.chemmater.2c00281 (transfer integral) https://pubs.rsc.org/en/content/articlelanding/2020/mh/d0mh01159b (dynamic disorder) https://pubs.rsc.org/en/content/articlelanding/2019/EE/C9EE01508F (singlet and triplet states, and oscillator strengths)

The semiconductor_properties class inherits the attributes of the ccdc.entry.predicted_properties class

The available fields are: ‘dynamic_disorder’, ‘homo_lumo_gap’, ‘hole_reorganization_energy’, ‘singlet_state_1_energy’, ‘singlet_state_1_oscillator_strength’, ‘singlet_state_2_energy’, ‘singlet_state_2_oscillator_strength’, ‘transfer_integral’, ‘triplet_state_1_energy’, ‘triplet_state_2_energy’

All values are given in kJ/mol, besides the oscillator strengths, which are unitless. A more thorough breakdown of the context for each field is available in the entry.py documentation. Accessing the data programmatically is then performed using the relevant functions of the class:

>>> import ccdc
>>> Entries = ccdc.io.EntryReader("semiconductor.sqlite") 
>>> print("%-20s%-20s" % ("Entry","Transfer_integral")) 
>>> for i, Entry in enumerate(Entries): 
...     d = Entry.predicted_properties.semiconductor_properties
...     print("%-20s% -20.4f" % (Entry.identifier,d.transfer_integral))
...     if i==4:
...         break
Entry               Transfer_integral
ABAKIZ               13.7166
ABEGIY               18.5574
ABEJIC              -12.6443
ABEKOK               10.9535
ABENED               10.0844

It is intended to include these properties with the database in the Q4 2024 data release, at which point they can be accessed via ‘EntryReader(“CSD”)’. If you would like access to this functionality before that release, please get in contact with support@ccdc.cam.ac.uk, and the small external database (semicondcutor.sqlite) can be transferred.