# <sup>:notes:</sup>:saxophone: Sol*pH*<sup>edge</sup>
pH-dependent solubility predictions for small molecules
[](https://opensource.org/licenses/MIT)
## Use in the browser
Try it without any local installation by clicking the badge below!
⏬⏬⏬⏬⏬⏬<br/>
[](https://githubtocolab.com/OlivierBeq/SolpHedge/blob/master/solph_notebook.ipynb)
<br/>⏫⏫⏫⏫⏫⏫
## Installation
:warning: MacOS is not supported by SolpH<sup>edge</sup>. :warning:
 
OpenBabel is the only dependency of SolpH<sup>edge</sup> not available through PyPI. It can be installed with:
```bash
conda install openbabel -c conda-forge
```
Then SolpH<sup>edge</sup> and other dependencies can be isntalled with:
```bash
pip install solphedge
```
## Get started
```python
from solphedge import SolpH
smiles_list = ['CC(C1=CC(=CC=C1)C(=O)C2=CC=CC=C2)C(=O)O',
'CC(=O)CC(C1=CC=CC=C1)C2=C(C3=CC=CC=C3OC2=O)O',
'C1=CC=C(C(=C1)CC(=O)O)NC2=C(C=CC=C2Cl)Cl',
'C1=CC(=C(C=C1C2=C(C=C(C=C2)F)F)C(=O)O)O',
'CC1=CN=C(C(=C1OC)C)CS(=O)C2=NC3=C(N2)C=C(C=C3)OC',
'C1=CC=C(C=C1)CC2NC3=C(C=C(C(=C3)C(F)(F)F)S(=O)(=O)N)S(=O)(=O)N2',
'CC1=CN=C(S1)NC(=O)C2=C(C3=CC=CC=C3S(=O)(=O)N2C)O',
'C#CCO[C@H]1CN2CCC1CC2',
'CC(C)CC1=CC=C(C=C1)C(C)C(=O)O']
model = SolpH()
print(model.predict(smiles_list))
# molecule -logS (pH=7.4) delta logS (pH=7.4 - pH=1.0) composite -logS (pH=1.0) solubility (pH=7.4; mM) solubility (pH=1.0; mM)
# 0 CC(C1=CC(=CC=C1)C(=O)C2=CC=CC=C2)C(=O)O 3.859 2.910 6.770 0.138 0.000
# 1 CC(=O)CC(C1=CC=CC=C1)C2=C(C3=CC=CC=C3OC2=O)O 4.793 0.578 5.370 0.016 0.004
# 2 C1=CC=C(C(=C1)CC(=O)O)NC2=C(C=CC=C2Cl)Cl 3.792 3.072 6.864 0.161 0.000
# 3 C1=CC(=C(C=C1C2=C(C=C(C=C2)F)F)C(=O)O)O 4.113 2.768 6.881 0.077 0.000
# 4 CC1=CN=C(C(=C1OC)C)CS(=O)C2=NC3=C(N2)C=C(C=C3)OC 3.862 0.000 3.862 0.137 0.137
# 5 C1=CC=C(C=C1)CC2NC3=C(C=C(C(=C3)C(F)(F)F)S(=O)... 4.042 0.127 4.169 0.091 0.068
# 6 CC1=CN=C(S1)NC(=O)C2=C(C3=CC=CC=C3S(=O)(=O)N2C)O 4.723 0.000 4.723 0.019 0.019
# 7 C#CCO[C@H]1CN2CCC1CC2 3.749 0.000 3.749 0.178 0.178
# 8 CC(C)CC1=CC=C(C=C1)C(C)C(=O)O 3.920 1.473 5.393 0.120 0.004
```
## Other parameters
```python
class SolpH(standardize: bool = True, standardizer: str = 'papyrus', njobs: int = 1):
...
```
#### Parameters
- ***standardize : bool***
Should input molecules or SMILES be standardized before making predictions.
- ***standardizer : str = {['chembl'](https://github.com/chembl/ChEMBL_Structure_Pipeline); ['papyrus'](https://github.com/OlivierBeq/Papyrus_structure_pipeline)}***
Molecular standardizer to be applied.
- ***njobs : int***
Maximum number of simultaneous processes calculating molecular descriptors prior to predictions.
```python
...
def predict(mols: Chem.Mol | list[Chem.Mol] | str | list[str], round: int = 3, out_units: str='mM'):
```
#### Parameters
- ***mols : str | rdkit.Chem.Mol | list[str] | list[rdkit.Chem.Mol]***
Input molecule(s) or SMILES.
- ***round : int***
Number of decimals to round the result.
- ***out_units : str = {'M'; 'mM'; 'uM'; 'nM'; 'pM'}***
Units to convert log-scale molar solubilities to.
Raw data
{
"_id": null,
"home_page": "https://github.com/OlivierBeq/solphedge",
"name": "solphedge",
"maintainer": "Olivier J. M. B\u00e9quignon",
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": "\"olivier.bequignon.maintainer@gmail.com\"",
"keywords": "pH-dependent solubility, cheminformatics, QSAR",
"author": "Olivier J. M. B\u00e9quignon",
"author_email": "\"olivier.bequignon.maintainer@gmail.com\"",
"download_url": "https://files.pythonhosted.org/packages/c0/ad/a8cbaabf562ddf7a96377a0c349670f1b0525685ca2feb96b69a60af908b/solphedge-0.0.4.post3.tar.gz",
"platform": null,
"description": "\r\n\r\n# <sup>:notes:</sup>:saxophone: Sol*pH*<sup>edge</sup>\r\n\r\npH-dependent solubility predictions for small molecules\r\n\r\n[](https://opensource.org/licenses/MIT)\r\n\r\n## Use in the browser\r\n\r\nTry it without any local installation by clicking the badge below!\r\n\r\n\u23ec\u23ec\u23ec\u23ec\u23ec\u23ec<br/>\r\n[](https://githubtocolab.com/OlivierBeq/SolpHedge/blob/master/solph_notebook.ipynb)\r\n<br/>\u23eb\u23eb\u23eb\u23eb\u23eb\u23eb\r\n\r\n\r\n## Installation\r\n\r\n\r\n:warning: MacOS is not supported by SolpH<sup>edge</sup>. :warning:\r\n\r\n  \r\n\r\nOpenBabel is the only dependency of SolpH<sup>edge</sup> not available through PyPI. It can be installed with:\r\n\r\n```bash\r\nconda install openbabel -c conda-forge\r\n```\r\n\r\nThen SolpH<sup>edge</sup> and other dependencies can be isntalled with: \r\n\r\n```bash\r\npip install solphedge\r\n```\r\n\r\n## Get started\r\n\r\n```python\r\nfrom solphedge import SolpH\r\n\r\nsmiles_list = ['CC(C1=CC(=CC=C1)C(=O)C2=CC=CC=C2)C(=O)O',\r\n 'CC(=O)CC(C1=CC=CC=C1)C2=C(C3=CC=CC=C3OC2=O)O',\r\n 'C1=CC=C(C(=C1)CC(=O)O)NC2=C(C=CC=C2Cl)Cl',\r\n 'C1=CC(=C(C=C1C2=C(C=C(C=C2)F)F)C(=O)O)O',\r\n 'CC1=CN=C(C(=C1OC)C)CS(=O)C2=NC3=C(N2)C=C(C=C3)OC',\r\n 'C1=CC=C(C=C1)CC2NC3=C(C=C(C(=C3)C(F)(F)F)S(=O)(=O)N)S(=O)(=O)N2',\r\n 'CC1=CN=C(S1)NC(=O)C2=C(C3=CC=CC=C3S(=O)(=O)N2C)O',\r\n 'C#CCO[C@H]1CN2CCC1CC2',\r\n 'CC(C)CC1=CC=C(C=C1)C(C)C(=O)O']\r\nmodel = SolpH()\r\nprint(model.predict(smiles_list))\r\n# molecule -logS (pH=7.4) delta logS (pH=7.4 - pH=1.0) composite -logS (pH=1.0) solubility (pH=7.4; mM) solubility (pH=1.0; mM)\r\n# 0 CC(C1=CC(=CC=C1)C(=O)C2=CC=CC=C2)C(=O)O 3.859 2.910 6.770 0.138 0.000\r\n# 1 CC(=O)CC(C1=CC=CC=C1)C2=C(C3=CC=CC=C3OC2=O)O 4.793 0.578 5.370 0.016 0.004\r\n# 2 C1=CC=C(C(=C1)CC(=O)O)NC2=C(C=CC=C2Cl)Cl 3.792 3.072 6.864 0.161 0.000\r\n# 3 C1=CC(=C(C=C1C2=C(C=C(C=C2)F)F)C(=O)O)O 4.113 2.768 6.881 0.077 0.000\r\n# 4 CC1=CN=C(C(=C1OC)C)CS(=O)C2=NC3=C(N2)C=C(C=C3)OC 3.862 0.000 3.862 0.137 0.137\r\n# 5 C1=CC=C(C=C1)CC2NC3=C(C=C(C(=C3)C(F)(F)F)S(=O)... 4.042 0.127 4.169 0.091 0.068\r\n# 6 CC1=CN=C(S1)NC(=O)C2=C(C3=CC=CC=C3S(=O)(=O)N2C)O 4.723 0.000 4.723 0.019 0.019\r\n# 7 C#CCO[C@H]1CN2CCC1CC2 3.749 0.000 3.749 0.178 0.178\r\n# 8 CC(C)CC1=CC=C(C=C1)C(C)C(=O)O 3.920 1.473 5.393 0.120 0.004\r\n```\r\n\r\n## Other parameters\r\n\r\n```python\r\nclass SolpH(standardize: bool = True, standardizer: str = 'papyrus', njobs: int = 1):\r\n ...\r\n```\r\n\r\n#### Parameters\r\n\r\n- ***standardize : bool*** \r\n Should input molecules or SMILES be standardized before making predictions.\r\n- ***standardizer : str = {['chembl'](https://github.com/chembl/ChEMBL_Structure_Pipeline); ['papyrus'](https://github.com/OlivierBeq/Papyrus_structure_pipeline)}*** \r\n Molecular standardizer to be applied.\r\n- ***njobs : int*** \r\n Maximum number of simultaneous processes calculating molecular descriptors prior to predictions.\r\n\r\n```python\r\n ...\r\n def predict(mols: Chem.Mol | list[Chem.Mol] | str | list[str], round: int = 3, out_units: str='mM'):\r\n```\r\n\r\n#### Parameters\r\n\r\n- ***mols : str | rdkit.Chem.Mol | list[str] | list[rdkit.Chem.Mol]*** \r\n Input molecule(s) or SMILES.\r\n- ***round : int*** \r\n Number of decimals to round the result.\r\n- ***out_units : str = {'M'; 'mM'; 'uM'; 'nM'; 'pM'}*** \r\n Units to convert log-scale molar solubilities to.\r\n",
"bugtrack_url": null,
"license": null,
"summary": "pH-dependent solubility predictions for small molecules",
"version": "0.0.4.post3",
"project_urls": {
"Homepage": "https://github.com/OlivierBeq/solphedge"
},
"split_keywords": [
"ph-dependent solubility",
" cheminformatics",
" qsar"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "fb3a581bfdb862cf8c1665228833c2d4c2ef6a59794f5c5a76271aefa43fc5e5",
"md5": "df0516567c5a34320cecff1b2e50317d",
"sha256": "c536a72efe2d4b2d22b49ffe6aa1e3d8bb8885bbc3b0fe7363b6f64d0ef36b13"
},
"downloads": -1,
"filename": "solphedge-0.0.4.post3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "df0516567c5a34320cecff1b2e50317d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 14320503,
"upload_time": "2025-07-09T21:35:08",
"upload_time_iso_8601": "2025-07-09T21:35:08.891636Z",
"url": "https://files.pythonhosted.org/packages/fb/3a/581bfdb862cf8c1665228833c2d4c2ef6a59794f5c5a76271aefa43fc5e5/solphedge-0.0.4.post3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c0ada8cbaabf562ddf7a96377a0c349670f1b0525685ca2feb96b69a60af908b",
"md5": "a0b57cfdf95decb5c0530a0159ebc105",
"sha256": "08f849088862ad3c2fe08b5833fe5bcc9cde480965f7568a5d4100c32a936dd0"
},
"downloads": -1,
"filename": "solphedge-0.0.4.post3.tar.gz",
"has_sig": false,
"md5_digest": "a0b57cfdf95decb5c0530a0159ebc105",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 14326730,
"upload_time": "2025-07-09T21:35:32",
"upload_time_iso_8601": "2025-07-09T21:35:32.092046Z",
"url": "https://files.pythonhosted.org/packages/c0/ad/a8cbaabf562ddf7a96377a0c349670f1b0525685ca2feb96b69a60af908b/solphedge-0.0.4.post3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-09 21:35:32",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "OlivierBeq",
"github_project": "solphedge",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"tox": true,
"lcname": "solphedge"
}