ChemML is a powerful Python-based application that provides a graphical user interface (GUI) for chemical data analysis and machine learning. It enables users to upload CSV files containing chemical data, perform data preprocessing, and apply various machine learning models for predictive analysis.
-
Interactive CSV Data Management
- Upload and view CSV files
- Data preprocessing capabilities
- Column selection and manipulation
- Data visualization tools
-
Machine Learning Capabilities
- Multiple model selection options
- Advanced model configuration
- Training and evaluation tools
- Performance metrics visualization
-
Data Visualization
- Interactive plotting capabilities
- Multiple chart types
- Customizable visualization options
ChemML/
├── gui/ # GUI components
│ ├── csv_view.py # CSV data management interface
│ ├── ml_view.py # Basic ML model interface
│ ├── ml_advanced_view.py # Advanced ML configuration
│ ├── plot_view.py # Data visualization
│ └── gui.py # Main GUI application
├── ml_backend/ # Machine learning backend
│ ├── ml_backend.py # Core ML functionality
│ └── model_configs.py # ML model configurations
├── utils/ # Utility functions
├── tests/ # Test suite
└── data_sets/ # Sample datasets
- Clone the repository:
git clone https://github.com/JustinKyleKirkland/ChemML.git
- Navigate to the project directory
cd ChemML - Create virtual environment
python -m venv .venv
- Activate virtual environment
source .venv/bin/activate # On Unix/macOS # or .venv\Scripts\activate # On Windows
- Install dependencies
pip install -r requirements.txt
- Activate your virtual environment if not already activated
- Run the application:
python main.py
- Use the GUI to:
- Upload your CSV file
- Preprocess your data
- Select and configure ML models
- Train and evaluate models
- Visualize results
Key dependencies include:
- PyQt5 for the GUI
- pandas for data manipulation
- scikit-learn for machine learning
- matplotlib and seaborn for visualization
- RDKit for chemical data processing
- NumPy for numerical computations
For a complete list of dependencies, see requirements.txt.
Guidelines for contributing to the project:
- Fork the repository
- Create a new branch (
git checkout -b feature-branch) - Make your changes
- Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature-branch) - Create a new Pull Request
Please refer to the CONTRIBUTING.md for more details.
This project is licensed under the GNU Public License - see the LICENSE file for details.
Justin Kyle Kirkland