QDESCP

class qdescp(**kwargs)

Class containing all the functions from the QDESCP module

assign_atomic_properties(json_data, name_initial, atom_props, smarts_targets)

Assign atomic properties to the corresponding atoms

check_xtb_errors(name, file, file_check, xtb_passing)

Check if the initial calculation finished OK

cleanup(name, destination, xtb_passing, xtb_files_props, move_folder=False)

Removes files from the xTB calculations that are not relevant and place json files in the QDESCP folder

collect_morfeus_properties(xtb_files_props, json_data)

Add and/or update MORFEUS properties to JSON

collect_properties(name_initial, atom_props, smarts_targets, xtb_files_props)

Collects all xTB properties from the files and adds them into a JSON file

collect_xtb_properties(xtb_files_props, json_data)

Add and/or update xTB properties to JSON

combine_and_save_csvs(qdescp_csv, qdescp_denovo_csv, qdescp_interpret_csv, folder_raw)

AQME-ROBERT workflow Combines the descriptor data from qdescp CSVs with the input CSV and saves the result.

gather_files_and_run(destination, file, atom_props, smarts_targets, bar)

Run all the xTB calculations and collect the properties inside JSON files

get_boltz_props(json_files, name, boltz_dir, calc_type, descp_dict_indiv, smarts_targets, mol, all_prefixes_atoms)

Retrieves the properties from json files and gives Boltzmann averaged properties for rdkit, NMR and morfues descriptors.

initial_csearch_run(destination, qdescp_files)

Initial conformer generation for QDESCP runs that start with SMILES strings from CSV inputs

initial_xtb_check()

Check whether the user have chosen the "input" or "files" option (QDESCP will use "files" from this point on)

qdescp_nmr_workflow(boltz_dir)

Full NMR workflow in QDESCP for NMR prediction

qdescp_set_up()

Detects errors and updates variables before the QDESCP run

qdescp_xtb_workflow(boltz_dir, destination, smarts_targets)

Full xTB workflow in QDESCP for descriptor generation and collection

run_sp_xtb(file, xyz_file, charge, mult, name, destination)

Runs different types of single point xTB calculations

write_csv_boltz_data(destination, qdescp_csv, folder_raw, atom_props, all_prefixes_atoms, json_type='standard')

Concatenate the values for all calculations

Parameters

General

w_dir_mainstr, default=os.getcwd()

Working directory

destinationstr, default=None,

Directory to create the JSON file(s)

programstr, default=xtb

Program required to create the new descriptors. Current options: 'xtb', 'nmr'

nprocsint, default=None

Number of xTB jobs run in parallel with 1 proc each (1 proc for reproducibility in the results). Also, nprocs used in CSEARCH

qdescp_atomslist of str, default=[]

Type of atom or group to calculate atomic properties. This option admits atoms (i.e., qdescp_atoms=['P']) and SMART patterns (i.e., qdescp_atoms=['C=O'])

robertbool, default=True

Creates a database ready to use in an AQME-ROBERT machine learning workflow, combining the input CSV with SMILES/code_name and the calculated xTB/DBSTEP descriptors

xTB descriptors

files or input (both options are valid)list of str, default=''

Filenames of SDF/PDB/XYZ/CSV files to calculate xTB descriptors. If CSV is selected, a CSV with two columns is required (code_name and SMILES), since AQME will generate conformers from SMILES with CSEARCH before QDESCP generates descriptors.

chargeint, default=None

Charge of the calculations used in the following input files (charges from SDF files generated in CSEARCH are read automatically).

multint, default=None

Multiplicity of the calculations used in the following input files (multiplicities from SDF files generated in CSEARCH are read automatically).

gfn_versionint, default="2"

GFN version used in QDESCP to calculate descriptors.

qdescp_solventstr, default=None

Solvent used in the xTB property calculations (ALPB model)

qdescp_tempfloat, default=300

Temperature required for the xTB property calculations

qdescp_accfloat, default=0.2

Accuracy required for the xTB property calculations

qdescp_optstr, default='normal'

Convergence criteria required for the xTB property calculations

boltzbool, default=True

Calculation of Boltzmann averaged xTB properties and addition of RDKit molecular descriptors

xtb_optbool, default=True

Performs an initial xTB geometry optimization before calculating descriptors

NMR simulation

fileslist of str, default=''

Filenames of LOG files to retrieve NMR shifts from Gaussian calculations (*.log can be used to include all the log files in the working directory)

boltzbool, default=True

Calculation of Boltzmann averaged NMR shifts

nmr_atomslist of str, default=[6, 1]

List containing the atom types (as atomic numbers) to consider. For example, if the user wants to retrieve NMR shifts from C and H atoms nmr_atoms=[6, 1]

nmr_slopelist of float, default=[-1.0537, -1.0784]

List containing the slope to apply for the raw NMR shifts calculated with Gaussian. A slope needs to be provided for each atom type in the analysis (i.e., for C and H atoms, the nmr_slope=[-1.0537, -1.0784]). These values can be adjusted using the CHESHIRE repository.

nmr_interceptlist of float, default=[181.7815, 31.8723]

List containing the intercept to apply for the raw NMR shifts calculated with Gaussian. An intercept needs to be provided for each atom type in the analysis (i.e., for C and H atoms, the nmr_intercept=[-1.0537, -1.0784]). These values can be adjusted using the CHESHIRE repository.

nmr_experimstr, default=None

Filename of a CSV containing the experimental NMR shifts. Two columnds are needed: A) 'atom_idx' should contain the indexes of the atoms to study as seen in GaussView or other molecular visualizers (i.e., the first atom of the coordinates has index 1); B) 'experimental_ppm' should contain the experimental NMR shifts in ppm observed for the atoms.