Skip to content

Removal of conversion functions, slight Server rework

Compare
Choose a tag to compare
@tjkessler tjkessler released this 11 Jun 00:30
· 161 commits to master since this release
1e317c2

1.) The following conversions have been removed from ECNet:

  • get_smiles
  • smiles_to_descriptors
  • smiles_to_mdl
  • mdl_to_descriptors

*Note: these were adding clutter, and were not within the main scope of ECNet.

2.) PaDEL-Descriptor is no longer bundled into ECNet

*Note: with the removal of conversion functions, this is no longer needed.

3.) Database creation functions now rely on two separate packages:

*Note: it made sense to create separate packages for interfacing with these software, a Python interface for generating QSPR descriptors is generally quite handy.

4.) ecnet.tools.database.create_db's arguments have been changed:

>>> ecnet.tools.database.create_db(['CC', 'CCC'], 'my_database.csv', targets=[13, 47])

Construct using alvaDesc:

>>> ecnet.tools.database.create_db(['CC', 'CCC'], 'my_database.csv', targets=[13, 47], backend='alvadesc')

*Note: supplying SMILES strings and targets using lists makes more sense than requiring the user to create a separate file - this change allows the user to choose where the data comes from.

5.) ecnet.tools.project.predict's arguments have been changed:

>>> results = ecnet.tools.project.predict(['CC', 'CCC'], 'my_project.prj')
>>> print(results)
[[13], [47]]

*Note: similar to why we switched to lists as inputs in database creation, makes more sense

6.) ecnet.Server has been rearranged a bit:

  • project training has been moved to a separate function at ecnet.tasks.training.train_project
  • various functions have been moved to ecnet.utils.server_utils:
    • creating a project folder structure
    • saving a project as a .prj file
    • opening a .prj file to use
  • task-specific logging messages have been moved to their respective functions in ecnet.tasks

*Note: ecnet.Server needed to be shrunk down, and functions that were obviously utilities were moved into utility files. This should also provide more direct access to the "back-end" of ECNet (subverting Server usage), allowing greater variation in experimental procedure.

7.) Added a suite of unit tests implemented with the unittest library:

  • in addition to Server unit tests, individual utilities of ECNet are tested
  • added a Python script, /tests/test_all.py, to automatically run all unit tests and report a summary of successes/failures

*Note: it's time for "proper" unit testing, and that means implementing a unit testing package. I'm looking forward to expanding ECNet's tests and introduce more automation into the testing process.

8.) Installation now forces TensorFlow 1.13.1 to be installed

*Note: I've encountered pip install tensorflow installing the 2.0.0 beta, which ECNet does not currently support - we'll make the change when we're ready (and so is Keras)

9.) Changed/added a variety of databases to the /databases/ directory

  • All databases constructed using alvaDesc
  • All SMILES strings have been validated with respect to compound name

*Note: in order to ensure accurate QSPR-descriptor to experimental value correlation, accurate SMILES strings are necessary (assuming descriptors are being generated using them).