cosmopharm 0.0.23__tar.gz → 0.0.23.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. cosmopharm-0.0.23.2/PKG-INFO +150 -0
  2. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/README.md +46 -14
  3. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/setup.cfg +1 -1
  4. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/actmodels/cosmo.py +31 -0
  5. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/components.py +7 -6
  6. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/equilibrium/lle.py +1 -1
  7. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/equilibrium/sle.py +8 -4
  8. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/utils/helpers.py +2 -2
  9. cosmopharm-0.0.23.2/src/cosmopharm.egg-info/PKG-INFO +150 -0
  10. cosmopharm-0.0.23/PKG-INFO +0 -117
  11. cosmopharm-0.0.23/src/cosmopharm.egg-info/PKG-INFO +0 -117
  12. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/LICENSE +0 -0
  13. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/setup.py +0 -0
  14. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/__init__.py +0 -0
  15. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/actmodels/__init__.py +0 -0
  16. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/actmodels/actmodel.py +0 -0
  17. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/equilibrium/__init__.py +0 -0
  18. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/utils/__init__.py +0 -0
  19. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/utils/convert.py +0 -0
  20. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/utils/lle_scanner.py +0 -0
  21. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm/utils/spacing.py +0 -0
  22. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm.egg-info/SOURCES.txt +0 -0
  23. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm.egg-info/dependency_links.txt +0 -0
  24. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm.egg-info/requires.txt +0 -0
  25. {cosmopharm-0.0.23 → cosmopharm-0.0.23.2}/src/cosmopharm.egg-info/top_level.txt +0 -0
@@ -0,0 +1,150 @@
1
+ Metadata-Version: 2.1
2
+ Name: cosmopharm
3
+ Version: 0.0.23.2
4
+ Summary: Predictive modeling for drug-polymer compatibility in pharmaceutical formulations using COSMO-SAC.
5
+ Home-page: https://github.com/ivanantolo/cosmopharm,
6
+ Author: Ivan Antolovic
7
+ Author-email: Ivan.Antolovic@tu-berlin.de
8
+ Maintainer: Martin Klajmon
9
+ Maintainer-email: Martin.Klajmon@vscht.cz
10
+ License: MIT
11
+ Keywords: Drug-Polymer Compatibility,Amorphous Solid Dispersions,Pharmaceutical Formulation,COSMO-SAC Model,Solubility Prediction,Miscibility Analysis,Phase Behavior Prediction,Pharmaceutical Sciences,Drug Formulation Research,Polymer Science,Predictive Modeling in Pharma,Drug Development Tools,Biopharmaceuticals
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: Intended Audience :: Healthcare Industry
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Intended Audience :: Education
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Topic :: Scientific/Engineering
19
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
20
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3 :: Only
23
+ Classifier: Programming Language :: Python :: 3.8
24
+ Classifier: Programming Language :: Python :: 3.9
25
+ Classifier: Programming Language :: Python :: 3.10
26
+ Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.12
28
+ Classifier: Programming Language :: Python :: 3.13
29
+ Requires-Python: >=3.8
30
+ Description-Content-Type: text/markdown
31
+ License-File: LICENSE
32
+ Requires-Dist: numpy>=1.15
33
+ Requires-Dist: pandas>=1.0
34
+ Requires-Dist: scipy>=1.4
35
+ Requires-Dist: openpyxl>=3.0
36
+ Provides-Extra: examples
37
+ Requires-Dist: matplotlib>=3.0; extra == "examples"
38
+
39
+ # COSMOPharm
40
+
41
+ Welcome to the COSMOPharm package, accompanying [our paper in *Molecular Pharmaceutics*](https://dx.doi.org/10.1021/acs.jctc.9b01016). This project and its associated publication offer insights and a practical toolkit for researching drug-polymer and drug-solvent systems, aiming to provide the scientific community with the means to reproduce our findings and further the development of COSMO-SAC-based models.
42
+
43
+ <p align="center">
44
+ <!-- <img src="https://github.com/usnistgov/COSMOSAC/raw/master/JCTC2020.PNG" alt="TOC Figure" width="500"> -->
45
+ <img src="https://github.com/usnistgov/COSMOSAC/raw/master/JCTC2020.PNG" alt="TOC Figure">
46
+ </p>
47
+
48
+ ## About
49
+
50
+ COSMOPharm is a Python package designed to streamline the predictive modeling of drug-polymer compatibility, crucial for the development of pharmaceutical amorphous solid dispersions. Apart from that, it can also be used for the miscibility/solubility of drugs with/in common solvents. Leveraging the COSMO-SAC (Conductor-like Screening Model Segment Activity Coefficient) model, COSMOPharm offers a robust platform for scientists and researchers to predict solubility, miscibility, and phase behavior in drug formulation processes.
51
+
52
+ ## Features
53
+
54
+ - **Compatibility Prediction**: Utilize open-source COSMO-SAC model for prediction of drug-polymer compatibility.
55
+ - **Solubility Calculation**: Calculate drug-polymer solubilities to guide the selection of suitable polymers for drug formulations.
56
+ - **Miscibility and Phase Behavior Analysis**: Analyze the miscibility of drug-polymer pairs and understand their phase behavior under various conditions.
57
+ - **User-friendly Interface**: Easy-to-use functions and comprehensive documentation to facilitate research and development in pharmaceutical sciences.
58
+
59
+ ## Installation
60
+
61
+ Install COSMOPharm with pip:
62
+
63
+ `pip install cosmopharm`
64
+
65
+ Ensure you have installed the `cCOSMO` library as per instructions on the [COSMOSAC GitHub page](https://github.com/usnistgov/COSMOSAC).
66
+
67
+ ## Quick Start
68
+
69
+ Get started with COSMOPharm using the minimal example below, which demonstrates how to calculate the solubility of a drug in a polymer. This example succinctly showcases the use of COSMOPharm for solubility calculations:
70
+
71
+
72
+ ```python
73
+ import matplotlib.pyplot as plt
74
+ import cCOSMO
75
+ from cosmopharm import SLE, COSMOSAC
76
+ from cosmopharm.utils import create_components, read_params
77
+
78
+ # Define components
79
+ names = ['SIM','PLGA50']
80
+ params_file = "data/sle/table_params.xlsx"
81
+
82
+ # Load parameters and create components
83
+ parameters = read_params(params_file)
84
+ mixture = create_components(names, parameters)
85
+
86
+ # Initialize COSMO-SAC model - replace paths with your local paths to COSMO profiles
87
+ db = cCOSMO.DelawareProfileDatabase(
88
+ "./profiles/_import_methods/UD/complist.txt",
89
+ "./profiles/_import_methods/UD/sigma3/")
90
+
91
+ for name in names:
92
+ iden = db.normalize_identifier(name)
93
+ db.add_profile(iden)
94
+ COSMO = cCOSMO.COSMO3(names, db)
95
+
96
+ # Setup the COSMO-SAC model with components
97
+ actmodel = COSMOSAC(COSMO, mixture=mixture)
98
+
99
+ # Calculate solubility (SLE)
100
+ sle = SLE(actmodel=actmodel)
101
+ solubility = sle.solubility(mix='real')
102
+
103
+ # Output the solubility
104
+ print(solubility[['T', 'w', 'x']].to_string(index=False))
105
+
106
+ # Plot results
107
+ plt.plot(*solubility[['w','T']].values.T,'.-', label='Solubility (w)')
108
+
109
+ # Settings
110
+ plt.xlim(0,1)
111
+ plt.ylim(300,500)
112
+ # Adding title and labels
113
+ plt.title('Solubility vs. Temperature')
114
+ plt.ylabel("T / K")
115
+ xlabel = {'w':'Weight', 'x':'Mole'}
116
+ plt.xlabel(f"Weight fraction {mixture[0].name}")
117
+ plt.legend()
118
+ # Save the figure to a PNG or PDF file
119
+ plt.savefig('solubility_plot.png') # Saves the plot as a PNG file
120
+ # plt.savefig('solubility_plot.pdf') # Saves the plot as a PDF file
121
+ plt.show()
122
+ ```
123
+
124
+ For a more comprehensive demonstration, including advanced functionalities and plotting results, please see the [example_usage.py](https://github.com/ivanantolo/cosmopharm/blob/main/example_usage.py) script in this repository. This detailed example walks through the process of setting up COSMOPharm, initializing models, and visualizing the results of solubility and miscibility calculations.
125
+
126
+ ## Contributing
127
+
128
+ Contributions are welcome! Please refer to our [GitHub repository](https://github.com/ivanantolo/cosmopharm) for more information.
129
+
130
+ ## Citation
131
+
132
+ We appreciate citations to our work as they help acknowledge and spread our research contributions. If you use COSMOPharm in your research, please cite the associated paper as follows:
133
+
134
+ ```bibtex
135
+ @article{Antolovic2024COSMOPharm,
136
+ title={COSMOPharm: Drug--Polymer Compatibility of Pharmaceutical Amorphous Solid Dispersions from COSMO-SAC},
137
+ author={Antolovic, Ivan and Vrabec, Jadran and Klajmon, Martin},
138
+ journal={Molecular Pharmaceutics},
139
+ year={2024},
140
+ volume={1}, # Will be adjusted accordingly
141
+ issue={1}, # Will be adjusted accordingly
142
+ month={3}, # Will be adjusted accordingly
143
+ pages={1--10}, # Will be adjusted accordingly
144
+ doi={10.1021/acs.molpharmaceut.3c12345} # Will be adjusted accordingly
145
+ }
146
+ ```
147
+
148
+ ## License
149
+
150
+ COSMOPharm is released under the MIT License. For more details, see the [LICENSE](https://github.com/ivanantolo/cosmopharm/LICENSE) file.
@@ -5,7 +5,7 @@
5
5
  </p>
6
6
 
7
7
 
8
- Welcome to the COSMOPharm repository, accompanying [our paper in *J. Chem. Theory Comput.*](https://dx.doi.org/10.1021/acs.jctc.9b01016). This project and its associated publication offer insights and a practical toolkit for researching drug-polymer and drug-solvent systems, aiming to provide the scientific community with the means to reproduce our findings and further the development of COSMO-SAC-based models.
8
+ Welcome to the COSMOPharm repository, accompanying [our paper in *Molecular Pharmaceutics*](https://dx.doi.org/10.1021/acs.jctc.9b01016). This project and its associated publication offer insights and a practical toolkit for researching drug-polymer and drug-solvent systems, aiming to provide the scientific community with the means to reproduce our findings and further the development of COSMO-SAC-based models.
9
9
 
10
10
  ## About
11
11
 
@@ -35,9 +35,9 @@ For users who need more control over the installation process (e.g., for develop
35
35
 
36
36
  #### Step 1: Clone the Repository
37
37
 
38
- First, clone the COSMOPharm repository:
38
+ First, clone the COSMOPharm repository. The project includes a submodule named "pharmaceuticals" that stores essential data files (.sigma, .cosmo, and .xyz files) for the pharmaceutical components. Use the --recurse-submodules option to ensure that the "pharmaceuticals" submodule is correctly initialized and updated along with the main project.
39
39
  ```
40
- git clone https://github.com/ivanantolo/cosmopharm
40
+ git clone --recurse-submodules https://github.com/ivanantolo/cosmopharm
41
41
  ```
42
42
 
43
43
  #### Step 2: Navigate to the Repository Directory
@@ -73,22 +73,23 @@ Get started with COSMOPharm using the minimal example below, which demonstrates
73
73
 
74
74
 
75
75
  ```python
76
+ import matplotlib.pyplot as plt
76
77
  import cCOSMO
77
78
  from cosmopharm import SLE, COSMOSAC
78
79
  from cosmopharm.utils import create_components, read_params
79
80
 
80
- # Define components - replace 'DrugName' and 'PolymerName' with your actual component names
81
- names = ['DrugName', 'PolymerName']
82
- params_file = "path/to/your/params.xlsx"
81
+ # Define components
82
+ names = ['SIM','PLGA50']
83
+ params_file = "data/sle/table_params.xlsx"
83
84
 
84
85
  # Load parameters and create components
85
86
  parameters = read_params(params_file)
86
- components = create_components(names, parameters)
87
+ mixture = create_components(names, parameters)
87
88
 
88
89
  # Initialize COSMO-SAC model - replace paths with your local paths to COSMO profiles
89
90
  db = cCOSMO.DelawareProfileDatabase(
90
- "path/to/your/complist/complist.txt",
91
- "path/to/your/profiles/")
91
+ "./profiles/_import_methods/UD/complist.txt",
92
+ "./profiles/_import_methods/UD/sigma3/")
92
93
 
93
94
  for name in names:
94
95
  iden = db.normalize_identifier(name)
@@ -96,16 +97,32 @@ for name in names:
96
97
  COSMO = cCOSMO.COSMO3(names, db)
97
98
 
98
99
  # Setup the COSMO-SAC model with components
99
- model = COSMOSAC(COSMO, components=components)
100
+ actmodel = COSMOSAC(COSMO, mixture=mixture)
100
101
 
101
102
  # Calculate solubility (SLE)
102
- sle = SLE(solute=components[0], solvent=components[1], actmodel=model)
103
+ sle = SLE(actmodel=actmodel)
103
104
  solubility = sle.solubility(mix='real')
104
105
 
105
106
  # Output the solubility
106
107
  print(solubility[['T', 'w', 'x']].to_string(index=False))
108
+
109
+ # Plot results
110
+ plt.plot(*solubility[['w','T']].values.T,'.-', label='Solubility (w)')
111
+
112
+ # Settings
113
+ plt.xlim(0,1)
114
+ plt.ylim(300,500)
115
+ # Adding title and labels
116
+ plt.title('Solubility vs. Temperature')
117
+ plt.ylabel("T / K")
118
+ xlabel = {'w':'Weight', 'x':'Mole'}
119
+ plt.xlabel(f"Weight fraction {mixture[0].name}")
120
+ plt.legend()
121
+ # Save the figure to a PNG or PDF file
122
+ plt.savefig('solubility_plot.png') # Saves the plot as a PNG file
123
+ # plt.savefig('solubility_plot.pdf') # Saves the plot as a PDF file
124
+ plt.show()
107
125
  ```
108
- Replace 'DrugName', 'PolymerName', and file paths with your actual data and files.
109
126
 
110
127
  For a more comprehensive demonstration, including advanced functionalities and plotting results, please see the [example_usage.py](https://github.com/ivanantolo/cosmopharm/blob/main/example_usage.py) script in this repository. This detailed example walks through the process of setting up COSMOPharm, initializing models, and visualizing the results of solubility and miscibility calculations.
111
128
 
@@ -118,8 +135,23 @@ For bugs, feature requests, or other queries, please [open an issue](https://git
118
135
 
119
136
  ## Citation
120
137
 
121
- If you use COSMOPharm in your research, please consider citing it. You can find the citation format in [CITATION.md](https://github.com/ivanantolo/cosmopharm/CITATION.md).
122
-
138
+ We appreciate citations to our work as they help acknowledge and spread our research contributions. If you use COSMOPharm in your research, please cite the associated paper. Citation details are provided in the [`CITATION.cff`](https://github.com/ivanantolo/cosmopharm/CITATION.cff) file, and GitHub generates APA or BibTeX formats accessible under the "Cite this repository" dropdown on our repository page.
139
+
140
+ For convenience, here's the citation in BibTeX format:
141
+
142
+ ```bibtex
143
+ @article{Antolovic2024COSMOPharm,
144
+ title={COSMOPharm: Drug--Polymer Compatibility of Pharmaceutical Amorphous Solid Dispersions from COSMO-SAC},
145
+ author={Antolovic, Ivan and Vrabec, Jadran and Klajmon, Martin},
146
+ journal={Molecular Pharmaceutics},
147
+ year={2024},
148
+ volume={1}, # Will be adjusted accordingly
149
+ issue={1}, # Will be adjusted accordingly
150
+ month={3}, # Will be adjusted accordingly
151
+ pages={1--10}, # Will be adjusted accordingly
152
+ doi={10.1021/acs.molpharmaceut.3c12345} # Will be adjusted accordingly
153
+ }
154
+ ```
123
155
 
124
156
  ## License
125
157
 
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = cosmopharm
3
- version = 0.0.23
3
+ version = 0.0.23.2
4
4
  author = Ivan Antolovic
5
5
  author_email = Ivan.Antolovic@tu-berlin.de
6
6
  maintainer = Martin Klajmon
@@ -6,7 +6,12 @@ from typing import List, Union, Literal
6
6
  from .actmodel import ActModel
7
7
  from ..components import Component
8
8
 
9
+
9
10
  class COSMOSAC(ActModel):
11
+ # Handling invalid values for free volume calculation
12
+ class InvalidFreeVolumeParametersException(Exception):
13
+ pass
14
+
10
15
  def __init__(self,
11
16
  COSMO: Union[cCOSMO.COSMO1, cCOSMO.COSMO3],
12
17
  mixture: List[Component],
@@ -62,6 +67,8 @@ class COSMOSAC(ActModel):
62
67
  (can replace ln_gamma_comb of normal COSMO-SAC) - Kuo2013
63
68
  x, v_298, v_hc are 1D arrays (number of elements = number of components)
64
69
  """
70
+ # TODO: Make sure, that v_298 and v_hc are provided, else "FV" not possible
71
+ self.validate_free_volume_parameters() # Ensure components are valid before proceeding
65
72
  v_298 = np.array([comp.v_298 for comp in self.mixture])
66
73
  v_hc = np.array([comp.v_hc for comp in self.mixture])
67
74
  vf = v_298-v_hc
@@ -121,3 +128,27 @@ class COSMOSAC(ActModel):
121
128
  """ Convenience function to quickly configure COSMO parameters """
122
129
  self._combinatorial = comb
123
130
  self._dispersion = dsp
131
+
132
+
133
+ def validate_free_volume_parameters(self):
134
+ # List of parameters to validate
135
+ parameters_to_check = ["v_298", "v_hc"]
136
+
137
+ for comp in self.mixture:
138
+ invalid_params = [] # List to accumulate names of invalid parameters for this component
139
+ for param in parameters_to_check:
140
+ value = getattr(comp, param, None)
141
+ # Check if value is None, not a number (np.nan), less than or equal to 0
142
+ if value is None or np.isnan(value) or value <= 0:
143
+ invalid_params.append((param, value)) # Append parameter name and value tuple
144
+
145
+ # Check if any errors were found for this component
146
+ if invalid_params:
147
+ # If errors were found, construct the warning message
148
+ error_message = f"Invalid FV parameters for component {comp}: {invalid_params}"
149
+ raise self.InvalidFreeVolumeParametersException(error_message)
150
+
151
+ # Additionally check if v_298 and v_hc are equal
152
+ if comp.v_298 == comp.v_hc:
153
+ msg = f"v_298 and v_hc are equal for component {comp}: v_298={comp.v_298}, v_hc={comp.v_hc}"
154
+ raise self.InvalidFreeVolumeParametersException(msg)
@@ -2,12 +2,13 @@ from typing import Optional
2
2
  from numbers import Number
3
3
 
4
4
  class Component:
5
- def __init__(self, name: Optional[str] = None,
6
- Mw: Optional[Number] = None,
7
- T_fus: Optional[Number] = None,
8
- H_fus: Optional[Number] = None,
9
- Cp_fus_a_fit: Optional[Number] = None,
10
- Cp_fus_bT_fit: Optional[Number] = None,
5
+ def __init__(self,
6
+ name: Optional[str] = None,
7
+ Mw: Optional[Number] = None, # Positive number expected
8
+ T_fus: Optional[Number] = None, # Positive number expected
9
+ H_fus: Number = 0,
10
+ Cp_fus_a_fit: Number = 0,
11
+ Cp_fus_bT_fit: Number = 0,
11
12
  v_298: Optional[Number] = None,
12
13
  v_hc: Optional[Number] = None,
13
14
  ):
@@ -123,4 +123,4 @@ class LLE:
123
123
  else:
124
124
  # If actmodel is neither an instance nor a subclass of ActModel
125
125
  err = "'actmodel' must be an instance or a subclass of 'ActModel'"
126
- raise ValueError(err)
126
+ raise ValueError(err)
@@ -43,10 +43,14 @@ class SLE:
43
43
  args = self.set_args(args)
44
44
  init = self.set_x0(init)
45
45
  gen = self.solve_sle(args, init, solver)
46
- res = [k for k in gen]
47
- res = pd.DataFrame(res, columns=['T', 'x', 'vary', 'w'])
48
- res = res[['T', 'w', 'x', 'vary']]
49
- return res
46
+ try:
47
+ res = [k for k in gen]
48
+ res = pd.DataFrame(res, columns=['T', 'x', 'vary', 'w'])
49
+ res = res[['T', 'w', 'x', 'vary']]
50
+ return res
51
+ except self.actmodel.InvalidFreeVolumeParametersException as e:
52
+ print(f"Warning: {e}") # Inform the user
53
+ return pd.DataFrame(columns=['T', 'w', 'x', 'vary'])
50
54
 
51
55
 
52
56
  # =============================================================================
@@ -21,8 +21,8 @@ def add_parameters(c, params):
21
21
  c.Mw = params['Mw'] # g/mol
22
22
  c.T_fus = params['T_fus'] if params['T_fus'] > 0 else np.nan # K
23
23
  c.H_fus = params['H_fus'] * KILOJOULE_TO_JOULE # J/mol
24
- c.Cp_fus_A = params['Cp_fus_a_fit'] # J/(mol K)
25
- c.Cp_fus_BT = params['Cp_fus_bT_fit'] # J/(mol K²)
24
+ c.Cp_fus_A = np.nan_to_num(params['Cp_fus_a_fit']) # J/(mol K)
25
+ c.Cp_fus_BT = np.nan_to_num(params['Cp_fus_bT_fit']) # J/(mol K²)
26
26
  c.v_298 = params['v298'] # cm³/mol
27
27
  c.v_hc = params['v_hc'] # cm³/mol
28
28
 
@@ -0,0 +1,150 @@
1
+ Metadata-Version: 2.1
2
+ Name: cosmopharm
3
+ Version: 0.0.23.2
4
+ Summary: Predictive modeling for drug-polymer compatibility in pharmaceutical formulations using COSMO-SAC.
5
+ Home-page: https://github.com/ivanantolo/cosmopharm,
6
+ Author: Ivan Antolovic
7
+ Author-email: Ivan.Antolovic@tu-berlin.de
8
+ Maintainer: Martin Klajmon
9
+ Maintainer-email: Martin.Klajmon@vscht.cz
10
+ License: MIT
11
+ Keywords: Drug-Polymer Compatibility,Amorphous Solid Dispersions,Pharmaceutical Formulation,COSMO-SAC Model,Solubility Prediction,Miscibility Analysis,Phase Behavior Prediction,Pharmaceutical Sciences,Drug Formulation Research,Polymer Science,Predictive Modeling in Pharma,Drug Development Tools,Biopharmaceuticals
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: Intended Audience :: Healthcare Industry
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Intended Audience :: Education
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Topic :: Scientific/Engineering
19
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
20
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3 :: Only
23
+ Classifier: Programming Language :: Python :: 3.8
24
+ Classifier: Programming Language :: Python :: 3.9
25
+ Classifier: Programming Language :: Python :: 3.10
26
+ Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.12
28
+ Classifier: Programming Language :: Python :: 3.13
29
+ Requires-Python: >=3.8
30
+ Description-Content-Type: text/markdown
31
+ License-File: LICENSE
32
+ Requires-Dist: numpy>=1.15
33
+ Requires-Dist: pandas>=1.0
34
+ Requires-Dist: scipy>=1.4
35
+ Requires-Dist: openpyxl>=3.0
36
+ Provides-Extra: examples
37
+ Requires-Dist: matplotlib>=3.0; extra == "examples"
38
+
39
+ # COSMOPharm
40
+
41
+ Welcome to the COSMOPharm package, accompanying [our paper in *Molecular Pharmaceutics*](https://dx.doi.org/10.1021/acs.jctc.9b01016). This project and its associated publication offer insights and a practical toolkit for researching drug-polymer and drug-solvent systems, aiming to provide the scientific community with the means to reproduce our findings and further the development of COSMO-SAC-based models.
42
+
43
+ <p align="center">
44
+ <!-- <img src="https://github.com/usnistgov/COSMOSAC/raw/master/JCTC2020.PNG" alt="TOC Figure" width="500"> -->
45
+ <img src="https://github.com/usnistgov/COSMOSAC/raw/master/JCTC2020.PNG" alt="TOC Figure">
46
+ </p>
47
+
48
+ ## About
49
+
50
+ COSMOPharm is a Python package designed to streamline the predictive modeling of drug-polymer compatibility, crucial for the development of pharmaceutical amorphous solid dispersions. Apart from that, it can also be used for the miscibility/solubility of drugs with/in common solvents. Leveraging the COSMO-SAC (Conductor-like Screening Model Segment Activity Coefficient) model, COSMOPharm offers a robust platform for scientists and researchers to predict solubility, miscibility, and phase behavior in drug formulation processes.
51
+
52
+ ## Features
53
+
54
+ - **Compatibility Prediction**: Utilize open-source COSMO-SAC model for prediction of drug-polymer compatibility.
55
+ - **Solubility Calculation**: Calculate drug-polymer solubilities to guide the selection of suitable polymers for drug formulations.
56
+ - **Miscibility and Phase Behavior Analysis**: Analyze the miscibility of drug-polymer pairs and understand their phase behavior under various conditions.
57
+ - **User-friendly Interface**: Easy-to-use functions and comprehensive documentation to facilitate research and development in pharmaceutical sciences.
58
+
59
+ ## Installation
60
+
61
+ Install COSMOPharm with pip:
62
+
63
+ `pip install cosmopharm`
64
+
65
+ Ensure you have installed the `cCOSMO` library as per instructions on the [COSMOSAC GitHub page](https://github.com/usnistgov/COSMOSAC).
66
+
67
+ ## Quick Start
68
+
69
+ Get started with COSMOPharm using the minimal example below, which demonstrates how to calculate the solubility of a drug in a polymer. This example succinctly showcases the use of COSMOPharm for solubility calculations:
70
+
71
+
72
+ ```python
73
+ import matplotlib.pyplot as plt
74
+ import cCOSMO
75
+ from cosmopharm import SLE, COSMOSAC
76
+ from cosmopharm.utils import create_components, read_params
77
+
78
+ # Define components
79
+ names = ['SIM','PLGA50']
80
+ params_file = "data/sle/table_params.xlsx"
81
+
82
+ # Load parameters and create components
83
+ parameters = read_params(params_file)
84
+ mixture = create_components(names, parameters)
85
+
86
+ # Initialize COSMO-SAC model - replace paths with your local paths to COSMO profiles
87
+ db = cCOSMO.DelawareProfileDatabase(
88
+ "./profiles/_import_methods/UD/complist.txt",
89
+ "./profiles/_import_methods/UD/sigma3/")
90
+
91
+ for name in names:
92
+ iden = db.normalize_identifier(name)
93
+ db.add_profile(iden)
94
+ COSMO = cCOSMO.COSMO3(names, db)
95
+
96
+ # Setup the COSMO-SAC model with components
97
+ actmodel = COSMOSAC(COSMO, mixture=mixture)
98
+
99
+ # Calculate solubility (SLE)
100
+ sle = SLE(actmodel=actmodel)
101
+ solubility = sle.solubility(mix='real')
102
+
103
+ # Output the solubility
104
+ print(solubility[['T', 'w', 'x']].to_string(index=False))
105
+
106
+ # Plot results
107
+ plt.plot(*solubility[['w','T']].values.T,'.-', label='Solubility (w)')
108
+
109
+ # Settings
110
+ plt.xlim(0,1)
111
+ plt.ylim(300,500)
112
+ # Adding title and labels
113
+ plt.title('Solubility vs. Temperature')
114
+ plt.ylabel("T / K")
115
+ xlabel = {'w':'Weight', 'x':'Mole'}
116
+ plt.xlabel(f"Weight fraction {mixture[0].name}")
117
+ plt.legend()
118
+ # Save the figure to a PNG or PDF file
119
+ plt.savefig('solubility_plot.png') # Saves the plot as a PNG file
120
+ # plt.savefig('solubility_plot.pdf') # Saves the plot as a PDF file
121
+ plt.show()
122
+ ```
123
+
124
+ For a more comprehensive demonstration, including advanced functionalities and plotting results, please see the [example_usage.py](https://github.com/ivanantolo/cosmopharm/blob/main/example_usage.py) script in this repository. This detailed example walks through the process of setting up COSMOPharm, initializing models, and visualizing the results of solubility and miscibility calculations.
125
+
126
+ ## Contributing
127
+
128
+ Contributions are welcome! Please refer to our [GitHub repository](https://github.com/ivanantolo/cosmopharm) for more information.
129
+
130
+ ## Citation
131
+
132
+ We appreciate citations to our work as they help acknowledge and spread our research contributions. If you use COSMOPharm in your research, please cite the associated paper as follows:
133
+
134
+ ```bibtex
135
+ @article{Antolovic2024COSMOPharm,
136
+ title={COSMOPharm: Drug--Polymer Compatibility of Pharmaceutical Amorphous Solid Dispersions from COSMO-SAC},
137
+ author={Antolovic, Ivan and Vrabec, Jadran and Klajmon, Martin},
138
+ journal={Molecular Pharmaceutics},
139
+ year={2024},
140
+ volume={1}, # Will be adjusted accordingly
141
+ issue={1}, # Will be adjusted accordingly
142
+ month={3}, # Will be adjusted accordingly
143
+ pages={1--10}, # Will be adjusted accordingly
144
+ doi={10.1021/acs.molpharmaceut.3c12345} # Will be adjusted accordingly
145
+ }
146
+ ```
147
+
148
+ ## License
149
+
150
+ COSMOPharm is released under the MIT License. For more details, see the [LICENSE](https://github.com/ivanantolo/cosmopharm/LICENSE) file.
@@ -1,117 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: cosmopharm
3
- Version: 0.0.23
4
- Summary: Predictive modeling for drug-polymer compatibility in pharmaceutical formulations using COSMO-SAC.
5
- Home-page: https://github.com/ivanantolo/cosmopharm,
6
- Author: Ivan Antolovic
7
- Author-email: Ivan.Antolovic@tu-berlin.de
8
- Maintainer: Martin Klajmon
9
- Maintainer-email: Martin.Klajmon@vscht.cz
10
- License: MIT
11
- Keywords: Drug-Polymer Compatibility,Amorphous Solid Dispersions,Pharmaceutical Formulation,COSMO-SAC Model,Solubility Prediction,Miscibility Analysis,Phase Behavior Prediction,Pharmaceutical Sciences,Drug Formulation Research,Polymer Science,Predictive Modeling in Pharma,Drug Development Tools,Biopharmaceuticals
12
- Classifier: Development Status :: 3 - Alpha
13
- Classifier: Intended Audience :: Science/Research
14
- Classifier: Intended Audience :: Healthcare Industry
15
- Classifier: Intended Audience :: Developers
16
- Classifier: Intended Audience :: Education
17
- Classifier: License :: OSI Approved :: MIT License
18
- Classifier: Topic :: Scientific/Engineering
19
- Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
20
- Classifier: Topic :: Scientific/Engineering :: Chemistry
21
- Classifier: Programming Language :: Python :: 3
22
- Classifier: Programming Language :: Python :: 3 :: Only
23
- Classifier: Programming Language :: Python :: 3.8
24
- Classifier: Programming Language :: Python :: 3.9
25
- Classifier: Programming Language :: Python :: 3.10
26
- Classifier: Programming Language :: Python :: 3.11
27
- Classifier: Programming Language :: Python :: 3.12
28
- Classifier: Programming Language :: Python :: 3.13
29
- Requires-Python: >=3.8
30
- Description-Content-Type: text/markdown
31
- License-File: LICENSE
32
- Requires-Dist: numpy>=1.15
33
- Requires-Dist: pandas>=1.0
34
- Requires-Dist: scipy>=1.4
35
- Requires-Dist: openpyxl>=3.0
36
- Provides-Extra: examples
37
- Requires-Dist: matplotlib>=3.0; extra == "examples"
38
-
39
- # COSMOPharm
40
-
41
- Welcome to the COSMOPharm package, accompanying [our paper in *J. Chem. Theory Comput.*](https://dx.doi.org/10.1021/acs.jctc.9b01016). This project and its associated publication offer insights and a practical toolkit for researching drug-polymer and drug-solvent systems, aiming to provide the scientific community with the means to reproduce our findings and further the development of COSMO-SAC-based models.
42
-
43
- <p align="center">
44
- <!-- <img src="https://github.com/usnistgov/COSMOSAC/raw/master/JCTC2020.PNG" alt="TOC Figure" width="500"> -->
45
- <img src="https://github.com/usnistgov/COSMOSAC/raw/master/JCTC2020.PNG" alt="TOC Figure">
46
- </p>
47
-
48
- ## About
49
-
50
- COSMOPharm is a Python package designed for predictive modeling of drug-polymer compatibility and drug-solubility in common solvents. It leverages the COSMO-SAC (Conductor-like Screening Model Segment Activity Coefficient) model, offering a robust platform for solubility, miscibility, and phase behavior prediction in drug formulation processes.
51
-
52
- ## Features
53
-
54
- - **Compatibility Prediction**: Predict drug-polymer compatibility using the open-source COSMO-SAC model.
55
- - **Solubility Calculation**: Guide polymer selection for drug formulations by calculating drug-polymer solubilities.
56
- - **Miscibility and Phase Behavior Analysis**: Understand drug-polymer miscibility and phase behavior under various conditions.
57
- - **User-friendly Interface**: Facilitate research with easy-to-use functions and comprehensive documentation.
58
-
59
- ## Installation
60
-
61
- Install COSMOPharm with pip:
62
-
63
- `pip install cosmopharm`
64
-
65
- Ensure you have installed the `cCOSMO` library as per instructions on the [COSMOSAC GitHub page](https://github.com/usnistgov/COSMOSAC).
66
-
67
- ## Quick Start
68
-
69
- This minimal example demonstrates how to use COSMOPharm to calculate solubility and miscibility of a drug with a polymer:
70
-
71
- ```python
72
- import cCOSMO
73
- from cosmopharm import SLE, COSMOSAC
74
- from cosmopharm.utils import create_components, read_params
75
-
76
- # Define components - replace 'DrugName' and 'PolymerName' with your actual component names
77
- names = ['DrugName', 'PolymerName']
78
- params_file = "path/to/your/params.xlsx"
79
-
80
- # Load parameters and create components
81
- parameters = read_params(params_file)
82
- components = create_components(names, parameters)
83
-
84
- # Initialize COSMO-SAC model - replace paths with your local paths to COSMO profiles
85
- db = cCOSMO.DelawareProfileDatabase(
86
- "path/to/your/complist/complist.txt",
87
- "path/to/your/profiles/")
88
-
89
- for name in names:
90
- iden = db.normalize_identifier(name)
91
- db.add_profile(iden)
92
- COSMO = cCOSMO.COSMO3(names, db)
93
-
94
- # Setup the COSMO-SAC model with components
95
- model = COSMOSAC(COSMO, components=components)
96
-
97
- # Calculate solubility (SLE)
98
- sle = SLE(solute=components[0], solvent=components[1], actmodel=model)
99
- solubility = sle.solubility(mix='real')
100
-
101
- # Output the solubility
102
- print(solubility[['T', 'w', 'x']].to_string(index=False))
103
- ```
104
-
105
- Replace 'DrugName', 'PolymerName', and file paths with your actual data and files. This example provides a straightforward demonstration of calculating the real solubility of a drug in a polymer using COSMOPharm.
106
-
107
- ## Contributing
108
-
109
- Contributions are welcome! Please refer to our [GitHub repository](https://github.com/ivanantolo/cosmopharm) for more information.
110
-
111
- ## Citation
112
-
113
- If you use COSMOPharm in your research, kindly cite our work. Citation details are available in [CITATION.md](https://github.com/ivanantolo/cosmopharm/CITATION.md).
114
-
115
- ## License
116
-
117
- COSMOPharm is released under the MIT License. For more details, see the [LICENSE](https://github.com/ivanantolo/cosmopharm/LICENSE) file.
@@ -1,117 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: cosmopharm
3
- Version: 0.0.23
4
- Summary: Predictive modeling for drug-polymer compatibility in pharmaceutical formulations using COSMO-SAC.
5
- Home-page: https://github.com/ivanantolo/cosmopharm,
6
- Author: Ivan Antolovic
7
- Author-email: Ivan.Antolovic@tu-berlin.de
8
- Maintainer: Martin Klajmon
9
- Maintainer-email: Martin.Klajmon@vscht.cz
10
- License: MIT
11
- Keywords: Drug-Polymer Compatibility,Amorphous Solid Dispersions,Pharmaceutical Formulation,COSMO-SAC Model,Solubility Prediction,Miscibility Analysis,Phase Behavior Prediction,Pharmaceutical Sciences,Drug Formulation Research,Polymer Science,Predictive Modeling in Pharma,Drug Development Tools,Biopharmaceuticals
12
- Classifier: Development Status :: 3 - Alpha
13
- Classifier: Intended Audience :: Science/Research
14
- Classifier: Intended Audience :: Healthcare Industry
15
- Classifier: Intended Audience :: Developers
16
- Classifier: Intended Audience :: Education
17
- Classifier: License :: OSI Approved :: MIT License
18
- Classifier: Topic :: Scientific/Engineering
19
- Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
20
- Classifier: Topic :: Scientific/Engineering :: Chemistry
21
- Classifier: Programming Language :: Python :: 3
22
- Classifier: Programming Language :: Python :: 3 :: Only
23
- Classifier: Programming Language :: Python :: 3.8
24
- Classifier: Programming Language :: Python :: 3.9
25
- Classifier: Programming Language :: Python :: 3.10
26
- Classifier: Programming Language :: Python :: 3.11
27
- Classifier: Programming Language :: Python :: 3.12
28
- Classifier: Programming Language :: Python :: 3.13
29
- Requires-Python: >=3.8
30
- Description-Content-Type: text/markdown
31
- License-File: LICENSE
32
- Requires-Dist: numpy>=1.15
33
- Requires-Dist: pandas>=1.0
34
- Requires-Dist: scipy>=1.4
35
- Requires-Dist: openpyxl>=3.0
36
- Provides-Extra: examples
37
- Requires-Dist: matplotlib>=3.0; extra == "examples"
38
-
39
- # COSMOPharm
40
-
41
- Welcome to the COSMOPharm package, accompanying [our paper in *J. Chem. Theory Comput.*](https://dx.doi.org/10.1021/acs.jctc.9b01016). This project and its associated publication offer insights and a practical toolkit for researching drug-polymer and drug-solvent systems, aiming to provide the scientific community with the means to reproduce our findings and further the development of COSMO-SAC-based models.
42
-
43
- <p align="center">
44
- <!-- <img src="https://github.com/usnistgov/COSMOSAC/raw/master/JCTC2020.PNG" alt="TOC Figure" width="500"> -->
45
- <img src="https://github.com/usnistgov/COSMOSAC/raw/master/JCTC2020.PNG" alt="TOC Figure">
46
- </p>
47
-
48
- ## About
49
-
50
- COSMOPharm is a Python package designed for predictive modeling of drug-polymer compatibility and drug-solubility in common solvents. It leverages the COSMO-SAC (Conductor-like Screening Model Segment Activity Coefficient) model, offering a robust platform for solubility, miscibility, and phase behavior prediction in drug formulation processes.
51
-
52
- ## Features
53
-
54
- - **Compatibility Prediction**: Predict drug-polymer compatibility using the open-source COSMO-SAC model.
55
- - **Solubility Calculation**: Guide polymer selection for drug formulations by calculating drug-polymer solubilities.
56
- - **Miscibility and Phase Behavior Analysis**: Understand drug-polymer miscibility and phase behavior under various conditions.
57
- - **User-friendly Interface**: Facilitate research with easy-to-use functions and comprehensive documentation.
58
-
59
- ## Installation
60
-
61
- Install COSMOPharm with pip:
62
-
63
- `pip install cosmopharm`
64
-
65
- Ensure you have installed the `cCOSMO` library as per instructions on the [COSMOSAC GitHub page](https://github.com/usnistgov/COSMOSAC).
66
-
67
- ## Quick Start
68
-
69
- This minimal example demonstrates how to use COSMOPharm to calculate solubility and miscibility of a drug with a polymer:
70
-
71
- ```python
72
- import cCOSMO
73
- from cosmopharm import SLE, COSMOSAC
74
- from cosmopharm.utils import create_components, read_params
75
-
76
- # Define components - replace 'DrugName' and 'PolymerName' with your actual component names
77
- names = ['DrugName', 'PolymerName']
78
- params_file = "path/to/your/params.xlsx"
79
-
80
- # Load parameters and create components
81
- parameters = read_params(params_file)
82
- components = create_components(names, parameters)
83
-
84
- # Initialize COSMO-SAC model - replace paths with your local paths to COSMO profiles
85
- db = cCOSMO.DelawareProfileDatabase(
86
- "path/to/your/complist/complist.txt",
87
- "path/to/your/profiles/")
88
-
89
- for name in names:
90
- iden = db.normalize_identifier(name)
91
- db.add_profile(iden)
92
- COSMO = cCOSMO.COSMO3(names, db)
93
-
94
- # Setup the COSMO-SAC model with components
95
- model = COSMOSAC(COSMO, components=components)
96
-
97
- # Calculate solubility (SLE)
98
- sle = SLE(solute=components[0], solvent=components[1], actmodel=model)
99
- solubility = sle.solubility(mix='real')
100
-
101
- # Output the solubility
102
- print(solubility[['T', 'w', 'x']].to_string(index=False))
103
- ```
104
-
105
- Replace 'DrugName', 'PolymerName', and file paths with your actual data and files. This example provides a straightforward demonstration of calculating the real solubility of a drug in a polymer using COSMOPharm.
106
-
107
- ## Contributing
108
-
109
- Contributions are welcome! Please refer to our [GitHub repository](https://github.com/ivanantolo/cosmopharm) for more information.
110
-
111
- ## Citation
112
-
113
- If you use COSMOPharm in your research, kindly cite our work. Citation details are available in [CITATION.md](https://github.com/ivanantolo/cosmopharm/CITATION.md).
114
-
115
- ## License
116
-
117
- COSMOPharm is released under the MIT License. For more details, see the [LICENSE](https://github.com/ivanantolo/cosmopharm/LICENSE) file.
File without changes
File without changes