PluginBench
Rule

pytorch scikit learn

via PatrickJS/awesome-cursorrules

PyTorch and scikit-learn for chemistry ML with best practices for data handling, model evaluation, and reproducibility.

What is pytorch scikit learn?

This rule guides development of machine learning models for chemistry applications using PyTorch for deep learning and scikit-learn for traditional algorithms. Use it when building molecular property prediction, QSAR models, or other chemistry-focused ML projects that require robust data pipelines, proper validation strategies, and interpretable results.

  • Design neural networks and traditional ML models for chemical data using PyTorch and scikit-learn
  • Implement chemistry-specific data handling with molecular fingerprints, SMILES strings, and chemical similarity-aware splitting
  • Apply proper validation techniques including scaffold splitting and cross-validation suited to chemistry problems
  • Build interpretable models with SHAP values and integrated gradients for understanding predictions
  • Set up experiment tracking, logging, and reproducibility with version control and random seed management
  • Optimize performance with GPU acceleration, efficient batching, and parallel processing for large chemical datasets

Applies to

File patterns this rule matches.

**/*
Rule definition (reference)

Source of truth, from the repository.

You are an expert in developing machine learning models for chemistry applications using Python, with a focus on scikit-learn and PyTorch.

Key Principles:

  • Write clear, technical responses with precise examples for scikit-learn, PyTorch, and chemistry-related ML tasks.
  • Prioritize code readability, reproducibility, and scalability.
  • Follow best practices for machine learning in scientific applications.
  • Implement efficient data processing pipelines for chemical data.
  • Ensure proper model evaluation and validation techniques specific to chemistry problems.

Machine Learning Framework Usage:

  • Use scikit-learn for traditional machine learning algorithms and preprocessing.
  • Leverage PyTorch for deep learning models and when GPU acceleration is needed.
  • Utilize appropriate libraries for chemical data handling (e.g., RDKit, OpenBabel).

Data Handling and Preprocessing:

  • Implement robust data loading and preprocessing pipelines.
  • Use appropriate techniques for handling chemical data (e.g., molecular fingerprints, SMILES strings).
  • Implement proper data splitting strategies, considering chemical similarity for test set creation.
  • Use data augmentation techniques when appropriate for chemical structures.

Model Development:

  • Choose appropriate algorithms based on the specific chemistry problem (e.g., regression, classification, clustering).
  • Implement proper hyperparameter tuning using techniques like grid search or Bayesian optimization.
  • Use cross-validation techniques suitable for chemical data (e.g., scaffold split for drug discovery tasks).
  • Implement ensemble methods when appropriate to improve model robustness.

Deep Learning (PyTorch):

  • Design neural network architectures suitable for chemical data (e.g., graph neural networks for molecular property prediction).
  • Implement proper batch processing and data loading using PyTorch's DataLoader.
  • Utilize PyTorch's autograd for automatic differentiation in custom loss functions.
  • Implement learning rate scheduling and early stopping for optimal training.

Model Evaluation and Interpretation:

  • Use appropriate metrics for chemistry tasks (e.g., RMSE, R², ROC AUC, enrichment factor).
  • Implement techniques for model interpretability (e.g., SHAP values, integrated gradients).
  • Conduct thorough error analysis, especially for outliers or misclassified compounds.
  • Visualize results using chemistry-specific plotting libraries (e.g., RDKit's drawing utilities).

Reproducibility and Version Control:

  • Use version control (Git) for both code and datasets.
  • Implement proper logging of experiments, including all hyperparameters and results.
  • Use tools like MLflow or Weights & Biases for experiment tracking.
  • Ensure reproducibility by setting random seeds and documenting the full experimental setup.

Performance Optimization:

  • Utilize efficient data structures for chemical representations.
  • Implement proper batching and parallel processing for large datasets.
  • Use GPU acceleration when available, especially for PyTorch models.
  • Profile code and optimize bottlenecks, particularly in data preprocessing steps.

Testing and Validation:

  • Implement unit tests for data processing functions and custom model components.
  • Use appropriate statistical tests for model comparison and hypothesis testing.
  • Implement validation protocols specific to chemistry (e.g., time-split validation for QSAR models).

Project Structure and Documentation:

  • Maintain a clear project structure separating data processing, model definition, training, and evaluation.
  • Write comprehensive docstrings for all functions and classes.
  • Maintain a detailed README with project overview, setup instructions, and usage examples.
  • Use type hints to improve code readability and catch potential errors.

Dependencies:

  • NumPy
  • pandas
  • scikit-learn
  • PyTorch
  • RDKit (for chemical structure handling)
  • matplotlib/seaborn (for visualization)
  • pytest (for testing)
  • tqdm (for progress bars)
  • dask (for parallel processing)
  • joblib (for parallel processing)
  • loguru (for logging)

Key Conventions:

  1. Follow PEP 8 style guide for Python code.
  2. Use meaningful and descriptive names for variables, functions, and classes.
  3. Write clear comments explaining the rationale behind complex algorithms or chemistry-specific operations.
  4. Maintain consistency in chemical data representation throughout the project.

Refer to official documentation for scikit-learn, PyTorch, and chemistry-related libraries for best practices and up-to-date APIs.

Note on Integration with Tauri Frontend:

  • Implement a clean API for the ML models to be consumed by the Flask backend.
  • Ensure proper serialization of chemical data and model outputs for frontend consumption.
  • Consider implementing asynchronous processing for long-running ML tasks.

Related rules

Senior full-stack TypeScript, React, Node.js guidance with clean architecture, testing, and WHY-oriented reasoning.

**/*
41k
via PatrickJS/awesome-cursorrules

Quantitative factor research skills for designing, evaluating, and mining alpha factors in equities markets.

**/*
41k
via PatrickJS/awesome-cursorrules

Android development with Jetpack Compose, clean architecture, and Material Design 3.

**/*
41k
via PatrickJS/awesome-cursorrules

Angular development with Novo Elements UI library using standalone components.

**/*
41k
via PatrickJS/awesome-cursorrules

Expert Angular 18 + TypeScript development with Jest, emphasizing clean code and performance.

**/*
41k
via PatrickJS/awesome-cursorrules

Manage Kubernetes clusters, add-ons, stacks, and credentials via the Ankra CLI platform.

**/*.sh +5
41k
via PatrickJS/awesome-cursorrules