Ecnet

Latest version: v4.1.4

Safety actively analyzes 682471 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 6

3.2.0

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:
- PaDELPy (https://github.com/ECRL/PaDELPy) - QSPR descriptor generation using PaDEL-Descriptor
- alvaDescPy (https://github.com/ECRL/alvaDescPy) - QSPR descriptor generation using alvaDesc

*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:

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


Construct using alvaDesc:

python
>>> 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:
python
>>> 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
- PubChemPy (https://github.com/mcs07/PubChemPy) is a lifesaver
- Compounds not found on PubChem were validated in-house by an ECRL research assistant

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

3.1.2

- All methods/functions now enforce specific types for arguments, return values
- calc_r2 function now uses scikit-learn's r2_score function
- Changed unit testing scheme, now uses unittest library
- added a suite of unit tests

3.1.1

- Addition of the "smiles_to_descriptors" function
- Database creation functions now use the "smiles_to_descriptors" function, bypassing the use of OpenBabel (used for SMILES -> MDL -> descriptors)
- Updated relevant documentation

3.1.0

- STRING and GROUP attributes for DataPoints (rows in an ECNet-formatted database) can now be accessed as object attributes. For example:

python
>>> from ecnet.utils.data_utils import DataFrame
>>> df = DataFrame('my_database.csv')
>>> first_entry = df.data_points[0]
>>> print(first_entry.SMILES) SMILES is a STRING column in the supplied database
C
>>> print(getattr(first_entry, 'Compound Name') STRINGs with spaces are obtained like this
Methane


- Additional STRING columns can be supplied when creating an ECNet-formatted database
- Fixed issue where YAML package was throwing a loader warning
- Suppressed TensorFlow warnings about deprecation
- Updates to documentation
- Other minor changes

3.0.1

- Added "set_spawn_method", fixes multiprocessing on Unix systems
- Databases can now be constructed with fingerprints instead of descriptors
- "get_smiles" function now returns an empty string if the molecule is not found on PubChem
- Slight updates to logging
- Hyperparameter tuning bug fix

3.0.0

- Server object refactor
- Includes API changes
- Update to ML back end (raw TensorFlow -> Keras)
- Logging moved to separate module
- Input descriptor limiting now uses random forest regression, via ditto-lib 1.0.0
- Implemented ReadTheDocs page
- Added classes for parity plot generation
- Updated hyperparameter tuning for ECabc 2.2.2 release
- Implemented methods for removing outliers, via ditto-lib 1.0.0

Page 3 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.