diff options
Diffstat (limited to 'python-padelpy.spec')
-rw-r--r-- | python-padelpy.spec | 663 |
1 files changed, 663 insertions, 0 deletions
diff --git a/python-padelpy.spec b/python-padelpy.spec new file mode 100644 index 0000000..6917bc0 --- /dev/null +++ b/python-padelpy.spec @@ -0,0 +1,663 @@ +%global _empty_manifest_terminate_build 0 +Name: python-padelpy +Version: 0.1.14 +Release: 1 +Summary: A Python wrapper for PaDEL-Descriptor +License: MIT +URL: https://github.com/ecrl/padelpy +Source0: https://mirrors.aliyun.com/pypi/web/packages/9e/35/28d84fd245fa4eb78898532e0520794c7d56d01f39f5ae8b25a206fcc212/padelpy-0.1.14.tar.gz +BuildArch: noarch + + +%description +[](http://faculty.uml.edu/Hunter_Mack/) + +# PaDELPy: A Python wrapper for PaDEL-Descriptor software + +[](https://badge.fury.io/gh/ecrl%2Fpadelpy) +[](https://badge.fury.io/py/padelpy) +[](https://raw.githubusercontent.com/ecrl/padelpy/master/LICENSE.txt) +[](https://dev.azure.com/uml-ecrl/package-management/_build/latest?definitionId=2&branchName=master) + +PaDELPy provides a Python wrapper for the [PaDEL-Descriptor](https://pubmed.ncbi.nlm.nih.gov/21425294/) molecular descriptor calculation software. It was created to allow direct access to the PaDEL-Descriptor command-line interface via Python. + +## Installation + +Installation via pip: + +``` +$ pip install padelpy +``` + +Installation via cloned repository: + +``` +$ git clone https://github.com/ecrl/padelpy +$ cd padelpy +$ python setup.py install +``` + +PaDEL-Descriptor is bundled into PaDELPy, therefore an external installation/download of PaDEL-Descriptor is not necessary. There are currently no additional Python dependencies for PaDELPy, however it requires an installation of the [Java JRE](https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html) version 6+. + +## Basic Usage + +In addition to providing a complete interface between Python and PaDEL-Descriptor's command line tool, PaDELPy offers two functions to acquire descriptors/fingerprints within Python - obtaining descriptors/fingerprints from a SMILES string, and obtaining descriptors/fingerprints from an MDL MolFile. + +### SMILES to Descriptors/Fingerprints + +The "from_smiles" function accepts a SMILES string or list of SMILES strings as an argument, and returns a Python dictionary with descriptor/fingerprint names/values as keys/values respectively - if multiple SMILES strings are supplied, "from_smiles" returns a list of dictionaries. + +```python +from padelpy import from_smiles + +# calculate molecular descriptors for propane +descriptors = from_smiles('CCC') + +# calculate molecular descriptors for propane and butane +descriptors = from_smiles(['CCC', 'CCCC']) + +# in addition to descriptors, calculate PubChem fingerprints +desc_fp = from_smiles('CCC', fingerprints=True) + +# only calculate fingerprints +fingerprints = from_smiles('CCC', fingerprints=True, descriptors=False) + +# setting the number of threads, this uses one cpu thread to compute descriptors +descriptors = from_smiles(['CCC', 'CCCC'], threads = 1) + +# save descriptors to a CSV file +_ = from_smiles('CCC', output_csv='descriptors.csv') +``` + +### MDL MolFile to Descriptors/Fingerprints + +The "from_mdl" function accepts a filepath (to an MDL MolFile) as an argument, and returns a list. Each list element is a dictionary with descriptors/fingerprints corresponding to each supplied molecule (indexed as they appear in the MolFile). + +```python +from padelpy import from_mdl + +# calculate molecular descriptors for molecules in `mols.mdl` +descriptors = from_mdl('mols.mdl') + +# in addition to descriptors, calculate PubChem fingerprints +desc_fp = from_mdl('mols.mdl', fingerprints=True) + +# only calculate fingerprints +fingerprints = from_mdl('mols.mdl', fingerprints=True, descriptors=False) + +# setting the number of threads, this uses one cpu thread to compute descriptors +desc_fp = from_mdl('mols.mdl', threads=1) + +# save descriptors to a CSV file +_ = from_mdl('mols.mdl', output_csv='descriptors.csv') +``` + +### SDF to Descriptors/Fingerprints + +The "from_sdf" function accepts a filepath as an argument, and returns a list. +Each list element is a dictionary with descriptors/fingerprints corresponding to each supplied +molecule (indexed as they appear in the SDF file). + +```python +from padelpy import from_sdf + +# calculate molecular descriptors for molecules in `mols.sdf` +descriptors = from_sdf('mols.sdf') + +# in addition to descriptors, calculate PubChem fingerprints +desc_fp = from_sdf('mols.sdf', fingerprints=True) + +# only calculate fingerprints +fingerprints = from_sdf('mols.sdf', fingerprints=True, descriptors=False) + +# setting the number of threads, this uses one cpu thread to compute descriptors +desc_fp = from_mdl('mols.sdf', threads=1) + +# save descriptors to a CSV file +_ = from_sdf('mols.sdf', output_csv='descriptors.csv') +``` + +### Command Line Wrapper + +Alternatively, you can have more control over PaDEL-Descriptor with the command-line wrapper function. Any combination of arguments supported by PaDEL-Descriptor can be accepted by the "padeldescriptor" function. + +```python +from padelpy import padeldescriptor + +# to supply a configuration file +padeldescriptor(config='\\path\\to\\config') + +# to supply an input (MDL) and output file +padeldescriptor(mol_dir='molecules.mdl', d_file='descriptors.csv') + +# to supply an input (SDF) and output file +padeldescriptor(mol_dir='molecules.sdf', d_file='descriptors.csv') + +# a SMILES file can be supplied +padeldescriptor(mol_dir='molecules.smi', d_file='descriptors.csv') + +# a path to a directory containing structural files can be supplied +padeldescriptor(mol_dir='\\path\\to\\mols\\', d_file='descriptors.csv') + +# to calculate 2-D and 3-D descriptors +padeldescriptor(d_2d=True, d_3d=True) + +# to calculate PubChem fingerprints +padeldescriptor(fingerprints=True) + +# to convert molecule into a 3-D structure +padeldescriptor(convert3d=True) + +# to supply a descriptortypes file +padeldescriptor(descriptortype='\\path\\to\\descriptortypes') + +# to detect aromaticity +padeldescriptor(detectaromaticity=True) + +# to calculate fingerprints +padeldescriptor(fingerprints=True) + +# to save process status to a log file +padeldescriptor(log=True) + +# to remove salts from the molecule(s) +padeldescriptor(removesalt=True) + +# to retain 3-D coordinates when standardizing +padeldescriptor(retain3d=True) + +# to retain order (output same order as input) +padeldescriptor(retainorder=True) + +# to standardize nitro groups to N(:O):O +padeldescriptor(standardizenitro=True) + +# to standardize tautomers +padeldescriptor(standardizetautomers=True) + +# to specify a SMIRKS tautomers file +padeldescriptor(tautomerlist='\\path\\to\\tautomers\\') + +# to use filenames as molecule names +padeldescriptor(usefilenameasmolname=True) + +# to set the maximum number of compounds in a resulting descriptors file +padeldescriptor(maxcpdperfile=32) + +# to set the maximum runtime (in mS) per molecule +padeldescriptor(maxruntime=10000) + +# to set the maximum number of waiting jobs in the queue +padeldescriptor(waitingjobs=10) + +# to set the maximum number of threads used +padeldescriptor(threads=2) + +# to prevent padel-splash image from loading. +padeldescriptor(headless=True) + +``` + +## Contributing, Reporting Issues and Other Support + +To contribute to PaDELPy, make a pull request. Contributions should include tests for new features added, as well as extensive documentation. + +To report problems with the software or feature requests, file an issue. When reporting problems, include information such as error messages, your OS/environment and Python version. + +For additional support/questions, contact Travis Kessler (Travis_Kessler@student.uml.edu). + + + + +%package -n python3-padelpy +Summary: A Python wrapper for PaDEL-Descriptor +Provides: python-padelpy +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-padelpy +[](http://faculty.uml.edu/Hunter_Mack/) + +# PaDELPy: A Python wrapper for PaDEL-Descriptor software + +[](https://badge.fury.io/gh/ecrl%2Fpadelpy) +[](https://badge.fury.io/py/padelpy) +[](https://raw.githubusercontent.com/ecrl/padelpy/master/LICENSE.txt) +[](https://dev.azure.com/uml-ecrl/package-management/_build/latest?definitionId=2&branchName=master) + +PaDELPy provides a Python wrapper for the [PaDEL-Descriptor](https://pubmed.ncbi.nlm.nih.gov/21425294/) molecular descriptor calculation software. It was created to allow direct access to the PaDEL-Descriptor command-line interface via Python. + +## Installation + +Installation via pip: + +``` +$ pip install padelpy +``` + +Installation via cloned repository: + +``` +$ git clone https://github.com/ecrl/padelpy +$ cd padelpy +$ python setup.py install +``` + +PaDEL-Descriptor is bundled into PaDELPy, therefore an external installation/download of PaDEL-Descriptor is not necessary. There are currently no additional Python dependencies for PaDELPy, however it requires an installation of the [Java JRE](https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html) version 6+. + +## Basic Usage + +In addition to providing a complete interface between Python and PaDEL-Descriptor's command line tool, PaDELPy offers two functions to acquire descriptors/fingerprints within Python - obtaining descriptors/fingerprints from a SMILES string, and obtaining descriptors/fingerprints from an MDL MolFile. + +### SMILES to Descriptors/Fingerprints + +The "from_smiles" function accepts a SMILES string or list of SMILES strings as an argument, and returns a Python dictionary with descriptor/fingerprint names/values as keys/values respectively - if multiple SMILES strings are supplied, "from_smiles" returns a list of dictionaries. + +```python +from padelpy import from_smiles + +# calculate molecular descriptors for propane +descriptors = from_smiles('CCC') + +# calculate molecular descriptors for propane and butane +descriptors = from_smiles(['CCC', 'CCCC']) + +# in addition to descriptors, calculate PubChem fingerprints +desc_fp = from_smiles('CCC', fingerprints=True) + +# only calculate fingerprints +fingerprints = from_smiles('CCC', fingerprints=True, descriptors=False) + +# setting the number of threads, this uses one cpu thread to compute descriptors +descriptors = from_smiles(['CCC', 'CCCC'], threads = 1) + +# save descriptors to a CSV file +_ = from_smiles('CCC', output_csv='descriptors.csv') +``` + +### MDL MolFile to Descriptors/Fingerprints + +The "from_mdl" function accepts a filepath (to an MDL MolFile) as an argument, and returns a list. Each list element is a dictionary with descriptors/fingerprints corresponding to each supplied molecule (indexed as they appear in the MolFile). + +```python +from padelpy import from_mdl + +# calculate molecular descriptors for molecules in `mols.mdl` +descriptors = from_mdl('mols.mdl') + +# in addition to descriptors, calculate PubChem fingerprints +desc_fp = from_mdl('mols.mdl', fingerprints=True) + +# only calculate fingerprints +fingerprints = from_mdl('mols.mdl', fingerprints=True, descriptors=False) + +# setting the number of threads, this uses one cpu thread to compute descriptors +desc_fp = from_mdl('mols.mdl', threads=1) + +# save descriptors to a CSV file +_ = from_mdl('mols.mdl', output_csv='descriptors.csv') +``` + +### SDF to Descriptors/Fingerprints + +The "from_sdf" function accepts a filepath as an argument, and returns a list. +Each list element is a dictionary with descriptors/fingerprints corresponding to each supplied +molecule (indexed as they appear in the SDF file). + +```python +from padelpy import from_sdf + +# calculate molecular descriptors for molecules in `mols.sdf` +descriptors = from_sdf('mols.sdf') + +# in addition to descriptors, calculate PubChem fingerprints +desc_fp = from_sdf('mols.sdf', fingerprints=True) + +# only calculate fingerprints +fingerprints = from_sdf('mols.sdf', fingerprints=True, descriptors=False) + +# setting the number of threads, this uses one cpu thread to compute descriptors +desc_fp = from_mdl('mols.sdf', threads=1) + +# save descriptors to a CSV file +_ = from_sdf('mols.sdf', output_csv='descriptors.csv') +``` + +### Command Line Wrapper + +Alternatively, you can have more control over PaDEL-Descriptor with the command-line wrapper function. Any combination of arguments supported by PaDEL-Descriptor can be accepted by the "padeldescriptor" function. + +```python +from padelpy import padeldescriptor + +# to supply a configuration file +padeldescriptor(config='\\path\\to\\config') + +# to supply an input (MDL) and output file +padeldescriptor(mol_dir='molecules.mdl', d_file='descriptors.csv') + +# to supply an input (SDF) and output file +padeldescriptor(mol_dir='molecules.sdf', d_file='descriptors.csv') + +# a SMILES file can be supplied +padeldescriptor(mol_dir='molecules.smi', d_file='descriptors.csv') + +# a path to a directory containing structural files can be supplied +padeldescriptor(mol_dir='\\path\\to\\mols\\', d_file='descriptors.csv') + +# to calculate 2-D and 3-D descriptors +padeldescriptor(d_2d=True, d_3d=True) + +# to calculate PubChem fingerprints +padeldescriptor(fingerprints=True) + +# to convert molecule into a 3-D structure +padeldescriptor(convert3d=True) + +# to supply a descriptortypes file +padeldescriptor(descriptortype='\\path\\to\\descriptortypes') + +# to detect aromaticity +padeldescriptor(detectaromaticity=True) + +# to calculate fingerprints +padeldescriptor(fingerprints=True) + +# to save process status to a log file +padeldescriptor(log=True) + +# to remove salts from the molecule(s) +padeldescriptor(removesalt=True) + +# to retain 3-D coordinates when standardizing +padeldescriptor(retain3d=True) + +# to retain order (output same order as input) +padeldescriptor(retainorder=True) + +# to standardize nitro groups to N(:O):O +padeldescriptor(standardizenitro=True) + +# to standardize tautomers +padeldescriptor(standardizetautomers=True) + +# to specify a SMIRKS tautomers file +padeldescriptor(tautomerlist='\\path\\to\\tautomers\\') + +# to use filenames as molecule names +padeldescriptor(usefilenameasmolname=True) + +# to set the maximum number of compounds in a resulting descriptors file +padeldescriptor(maxcpdperfile=32) + +# to set the maximum runtime (in mS) per molecule +padeldescriptor(maxruntime=10000) + +# to set the maximum number of waiting jobs in the queue +padeldescriptor(waitingjobs=10) + +# to set the maximum number of threads used +padeldescriptor(threads=2) + +# to prevent padel-splash image from loading. +padeldescriptor(headless=True) + +``` + +## Contributing, Reporting Issues and Other Support + +To contribute to PaDELPy, make a pull request. Contributions should include tests for new features added, as well as extensive documentation. + +To report problems with the software or feature requests, file an issue. When reporting problems, include information such as error messages, your OS/environment and Python version. + +For additional support/questions, contact Travis Kessler (Travis_Kessler@student.uml.edu). + + + + +%package help +Summary: Development documents and examples for padelpy +Provides: python3-padelpy-doc +%description help +[](http://faculty.uml.edu/Hunter_Mack/) + +# PaDELPy: A Python wrapper for PaDEL-Descriptor software + +[](https://badge.fury.io/gh/ecrl%2Fpadelpy) +[](https://badge.fury.io/py/padelpy) +[](https://raw.githubusercontent.com/ecrl/padelpy/master/LICENSE.txt) +[](https://dev.azure.com/uml-ecrl/package-management/_build/latest?definitionId=2&branchName=master) + +PaDELPy provides a Python wrapper for the [PaDEL-Descriptor](https://pubmed.ncbi.nlm.nih.gov/21425294/) molecular descriptor calculation software. It was created to allow direct access to the PaDEL-Descriptor command-line interface via Python. + +## Installation + +Installation via pip: + +``` +$ pip install padelpy +``` + +Installation via cloned repository: + +``` +$ git clone https://github.com/ecrl/padelpy +$ cd padelpy +$ python setup.py install +``` + +PaDEL-Descriptor is bundled into PaDELPy, therefore an external installation/download of PaDEL-Descriptor is not necessary. There are currently no additional Python dependencies for PaDELPy, however it requires an installation of the [Java JRE](https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html) version 6+. + +## Basic Usage + +In addition to providing a complete interface between Python and PaDEL-Descriptor's command line tool, PaDELPy offers two functions to acquire descriptors/fingerprints within Python - obtaining descriptors/fingerprints from a SMILES string, and obtaining descriptors/fingerprints from an MDL MolFile. + +### SMILES to Descriptors/Fingerprints + +The "from_smiles" function accepts a SMILES string or list of SMILES strings as an argument, and returns a Python dictionary with descriptor/fingerprint names/values as keys/values respectively - if multiple SMILES strings are supplied, "from_smiles" returns a list of dictionaries. + +```python +from padelpy import from_smiles + +# calculate molecular descriptors for propane +descriptors = from_smiles('CCC') + +# calculate molecular descriptors for propane and butane +descriptors = from_smiles(['CCC', 'CCCC']) + +# in addition to descriptors, calculate PubChem fingerprints +desc_fp = from_smiles('CCC', fingerprints=True) + +# only calculate fingerprints +fingerprints = from_smiles('CCC', fingerprints=True, descriptors=False) + +# setting the number of threads, this uses one cpu thread to compute descriptors +descriptors = from_smiles(['CCC', 'CCCC'], threads = 1) + +# save descriptors to a CSV file +_ = from_smiles('CCC', output_csv='descriptors.csv') +``` + +### MDL MolFile to Descriptors/Fingerprints + +The "from_mdl" function accepts a filepath (to an MDL MolFile) as an argument, and returns a list. Each list element is a dictionary with descriptors/fingerprints corresponding to each supplied molecule (indexed as they appear in the MolFile). + +```python +from padelpy import from_mdl + +# calculate molecular descriptors for molecules in `mols.mdl` +descriptors = from_mdl('mols.mdl') + +# in addition to descriptors, calculate PubChem fingerprints +desc_fp = from_mdl('mols.mdl', fingerprints=True) + +# only calculate fingerprints +fingerprints = from_mdl('mols.mdl', fingerprints=True, descriptors=False) + +# setting the number of threads, this uses one cpu thread to compute descriptors +desc_fp = from_mdl('mols.mdl', threads=1) + +# save descriptors to a CSV file +_ = from_mdl('mols.mdl', output_csv='descriptors.csv') +``` + +### SDF to Descriptors/Fingerprints + +The "from_sdf" function accepts a filepath as an argument, and returns a list. +Each list element is a dictionary with descriptors/fingerprints corresponding to each supplied +molecule (indexed as they appear in the SDF file). + +```python +from padelpy import from_sdf + +# calculate molecular descriptors for molecules in `mols.sdf` +descriptors = from_sdf('mols.sdf') + +# in addition to descriptors, calculate PubChem fingerprints +desc_fp = from_sdf('mols.sdf', fingerprints=True) + +# only calculate fingerprints +fingerprints = from_sdf('mols.sdf', fingerprints=True, descriptors=False) + +# setting the number of threads, this uses one cpu thread to compute descriptors +desc_fp = from_mdl('mols.sdf', threads=1) + +# save descriptors to a CSV file +_ = from_sdf('mols.sdf', output_csv='descriptors.csv') +``` + +### Command Line Wrapper + +Alternatively, you can have more control over PaDEL-Descriptor with the command-line wrapper function. Any combination of arguments supported by PaDEL-Descriptor can be accepted by the "padeldescriptor" function. + +```python +from padelpy import padeldescriptor + +# to supply a configuration file +padeldescriptor(config='\\path\\to\\config') + +# to supply an input (MDL) and output file +padeldescriptor(mol_dir='molecules.mdl', d_file='descriptors.csv') + +# to supply an input (SDF) and output file +padeldescriptor(mol_dir='molecules.sdf', d_file='descriptors.csv') + +# a SMILES file can be supplied +padeldescriptor(mol_dir='molecules.smi', d_file='descriptors.csv') + +# a path to a directory containing structural files can be supplied +padeldescriptor(mol_dir='\\path\\to\\mols\\', d_file='descriptors.csv') + +# to calculate 2-D and 3-D descriptors +padeldescriptor(d_2d=True, d_3d=True) + +# to calculate PubChem fingerprints +padeldescriptor(fingerprints=True) + +# to convert molecule into a 3-D structure +padeldescriptor(convert3d=True) + +# to supply a descriptortypes file +padeldescriptor(descriptortype='\\path\\to\\descriptortypes') + +# to detect aromaticity +padeldescriptor(detectaromaticity=True) + +# to calculate fingerprints +padeldescriptor(fingerprints=True) + +# to save process status to a log file +padeldescriptor(log=True) + +# to remove salts from the molecule(s) +padeldescriptor(removesalt=True) + +# to retain 3-D coordinates when standardizing +padeldescriptor(retain3d=True) + +# to retain order (output same order as input) +padeldescriptor(retainorder=True) + +# to standardize nitro groups to N(:O):O +padeldescriptor(standardizenitro=True) + +# to standardize tautomers +padeldescriptor(standardizetautomers=True) + +# to specify a SMIRKS tautomers file +padeldescriptor(tautomerlist='\\path\\to\\tautomers\\') + +# to use filenames as molecule names +padeldescriptor(usefilenameasmolname=True) + +# to set the maximum number of compounds in a resulting descriptors file +padeldescriptor(maxcpdperfile=32) + +# to set the maximum runtime (in mS) per molecule +padeldescriptor(maxruntime=10000) + +# to set the maximum number of waiting jobs in the queue +padeldescriptor(waitingjobs=10) + +# to set the maximum number of threads used +padeldescriptor(threads=2) + +# to prevent padel-splash image from loading. +padeldescriptor(headless=True) + +``` + +## Contributing, Reporting Issues and Other Support + +To contribute to PaDELPy, make a pull request. Contributions should include tests for new features added, as well as extensive documentation. + +To report problems with the software or feature requests, file an issue. When reporting problems, include information such as error messages, your OS/environment and Python version. + +For additional support/questions, contact Travis Kessler (Travis_Kessler@student.uml.edu). + + + + +%prep +%autosetup -n padelpy-0.1.14 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-padelpy -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.14-1 +- Package Spec generated |