halbritter-lab / Amissense

The Amissense Tool analyzes and visualizes AlphaMissense pathogenicity scores, integrating AlphaFold structures and ClinVar data. It offers automated pipelines, visualizations, and versatile command-line utilities.
MIT License
0 stars 0 forks source link

Convert script to CLI tool for better usability and integration #12

Closed berntpopp closed 2 months ago

berntpopp commented 2 months ago

Pull Request Overview:

This pull request transforms the existing script into a comprehensive command-line interface (CLI) tool, significantly enhancing usability and integration into larger pipelines. Key improvements include:

  1. CLI Implementation: The tool now supports command-line arguments with well-structured subcommands for running the full pipeline, fetching ClinVar data, downloading PDB files, querying UniProt, and generating JSON files from TSV data.
  2. Project Structure Overhaul: The project structure has been refactored for better organization, with a modular approach that reflects the new CLI functionality.
  3. Configuration Management: A config.json file has been introduced for flexible and centralized configuration management, allowing users to adjust settings like logging levels, file paths, and API URLs.
  4. Logging: Replaced all print statements with Python's logging module, improving error tracking, debugging capabilities, and control over log output. The configuration is now dynamically controlled via the config.json.
  5. Redundancy Reduction (DRY Principle): Refactored redundant code by extracting common functionality into shared utility functions, significantly improving code maintainability.
  6. License Addition: Added an open-source MIT License to the repository, ensuring proper usage and distribution of the codebase.
  7. Package Setup: Addressed issues in the setup.py to ensure proper installation of the package, and updated .gitignore to exclude unnecessary files.

Enhancements:

Fixes & Enhancements:

See the included commit history in the attached screenshot and the current issues in the second screenshot.