v0.14.0 (June - December 2025)

1. New Features

1.1 Molecular Structure Conversion and Preparation

  • Amino Acid Sequence to PDB Conversion
    Added the seq2pdb class to support conversion of amino acid sequences to PDB format, expanding molecular preparation capabilities. Refactored the smiles2pdb class for enhanced code reusability. (feat(lazydock/scripts/prepare_lig.py): Expand the molecular conversion function to support amino acid sequences)
  • SMILES to PDB Conversion Command
    Introduced the smiles2pdb command for molecular structure preparation from SMILES strings. (addon: add lazydock/scripts/prepare_lig.py, add smiles2pdb command)
  • Molecular Alignment and Rotation Tools
    Added the align_by_sele command for molecular structure alignment with multiple rounds of iterative optimization. Included the rotation_matrix_to_pymol_matrix tool function for rotation matrix conversion. (feat(lazydock/pml_plugin/_init_.py): Add the alignment function based on selection and the rotation matrix conversion tool)

1.2 Enhanced Parallel Processing and Task Management

  • Task-Unique Identifiers for Parallel Analysis
    Added the task_uid field to the Gromacs class and support for task-specific suffixes to avoid file conflicts during parallel analysis. (feat(lazydock/gmx/run.py): Adding task-unique identifiers supports parallel analysis)
  • Parallel Processing for Trajectory Conversion
    Added n-workers argument support for parallel processing in trajectory conversion operations. (feat(lazydock.scripts.ana_gmx.trjconv): add parallel processing support with n-workers argument)
  • Chain Selection for PCA Analysis
    Added chain selection argument support for Principal Component Analysis, enabling targeted analysis of specific molecular chains. (feat(pca): add chain selection argument for PCA analysis)

1.3 Atomic Filtering and Group Management

  • Return Mask Option for Atomic Filtering
    Added return_mask parameter to filter_atoms_by_chains and filter_atoms_by_resns functions, allowing return of filtering masks instead of filtered atom groups. (feat(lazydock/gmx/mda/utils.py): Add the return mask option to the atomic filtering function)
  • Group Extraction from TPR/GRO Files
    Added get_groups method to extract groups from tpr/gro files using make_ndx command. (feat(Gromacs): add get_groups method to extract groups from tpr/gro files using make_ndx command)

2. Improvements and Optimizations

2.1 User Interface and Progress Display

  • 🚀 Relative Path Optimization in Progress Bars
    Changed working directory display in progress bars from absolute paths to relative paths relative to batch_dir for more concise display. (refactor(scripts): Use the relative path optimization progress bar to display the path)
  • 🚀 Enhanced Progress Bar Descriptions
    Updated progress bar descriptions to remove batch directory paths for cleaner display. (fix(md_task): update progress bar description to remove batch directory path, fix(md_ana): improve progress bar description by removing batch directory path)

2.2 Configuration and Parameter Handling

  • 🔄 Improved Default Parameter Values
    Updated tc_groups default to 'auto' for improved flexibility in temperature coupling. (fix(run_gmx): update default value of tc-groups to 'auto' for improved flexibility)
  • 🔄 Enhanced Group Auto-detection
    Updated tc_groups handling to auto-detect Protein and LIG groups in em.tpr files. (fix(run_gmx): update tc_groups handling to auto-detect Protein and LIG groups in em.tpr)
  • 🔄 Configuration Variable Renaming
    Renamed 'sobtop' to 'sobtop_dir' for clarity in configuration settings. (fix(config): rename 'sobtop' to 'sobtop_dir' for clarity)

2.3 File and Resource Management

  • 🔄 Force Option for Analysis Re-runs
    Added force option to re-run analysis and skip existing results in mmpbsa module. (fix(mmpbsa): add force option to re-run analysis and skip existing results)
  • 🔄 Results Existence Check
    Added results existence check and force option support in simple_analysis class. (minor-addon: lazydock/scripts/md_traj.py: simple_analysis: add results exists check and support force option)

3. Bug Fixes

3.1 Data Processing and Analysis Fixes

  • 🐛 Interactive Data Frame Processing
    Fixed the issue of ignoring the first line when processing interactive data frames by modifying the ShaderValues.from_interaction_df method. Added sum_axis parameter in apply_shader_from_interaction_df to control summation direction. (fix(lazydock/pml/shader.py): Fix the issue of ignoring the first line when processing interactive data frames)
  • 🐛 RMSD File Extension Check
    Updated file extension check for inter-frame RMSD to .npz format. (fix(rmsd): update file extension check for inter-frame RMSD to .npz)
  • 🐛 Task Pool Allocation
    Moved TaskPool allocation into process_args to avoid multiple allocations when processing multiple batch directories. (fix(md_ana): move TaskPool alloc into process_args to avoid multi-alloc when multi batch dir)
  • 🐛 Interaction Plot Skipping
    Fixed skip_plot parameter to only be used when data is loaded from file. (fix(interaction): now, skip_plot only used when data is loaded from file)

3.2 GROMACS Preparation and Execution

  • 🐛 Topology Preparation Logic
    Improved topology preparation logic with optional parameters in prepare_gmx.complex. (fix(prepare_gmx.complex): improve topology preparation logic with optional parameters)
  • 🐛 File Existence Checks
    Added checks for existence of ligand topology and parameter files before including them in the topology. (fix(prepare_gmx): add checks for existence of ligand topology and parameter files before including them in the topology)
  • 🐛 CGenFF Path Validation
    Added checks for cgenff_path existence before processing files in preparation steps. (fix(prepare_gmx): add checks for cgenff_path existence before processing files in steps 6 and 9)
  • 🐛 Browser Handling
    Updated browser handling in get_str_from_CGenFF to skip processing when browser is None. (fix(prepare_gmx): update browser handling in get_str_from_CGenFF to skip processing when browser is None)

3.3 Argument Parsing and Function Calls

  • 🐛 Default Value Removal
    Removed default value for genion_groups argument in run_gmx. (fix(run_gmx): remove default value for genion_groups argument)
  • 🐛 Batch Directory Handling
    Updated batch directory handling in simple_protein class and related classes. (fix(run_gmx): update batch directory handling in simple_protein class and related classes)
  • 🐛 RMSD Fitting Help Message
    Updated help message for RMSD fitting option to clarify alignment method. (fix(md_ana): update help message for RMSD fitting option to clarify alignment method)

3.4 Dependency and Configuration Issues

  • 🐛 MDAnalysis Version Specification
    Added MDAnalysis dependency with version >=2.9.0 requirement. (fix(requirements): add MDAnalysis dependency with version >=2.9.0)
  • 🐛 PLIP Version Requirement
    Specified minimum version for plip dependency (2.4.0). (fix(requirements): specify minimum version for plip dependency for 2.4.0)
  • 🐛 Input File Existence Check
    Added input file existence check and updated command string for gmx_MMPBSA. (fix(mmpbsa): add input file existence check and update command string for gmx_MMPBSA)

4. Documentation and Toolchain

4.1 Documentation Updates

  • 📚 Script Documentation
    Updated documentation for ana_gmx.md and run_gmx.md scripts. (docs: update docs for docs/scripts/ana_gmx.md and docs/scripts/run_gmx.md)
  • 📚 Alignment Script Documentation
    Added documentation for align_pose_to_axis.py script. (docs: add docs for scripts/align_pose_to_axis.py)

4.2 Tool and Script Integration

  • 🛠️ CLI Script Registration
    Added prepare_lig to the lazydock-cli-scripts-list.json. (lazydock/storage/lazydock-cli-scripts-list.json: add prepare_lig)
  • 🛠️ Dependency Management
    Added autodocktools-py3 to [all] requirements. (requirements.json: add autodocktools-py3 in [all])

4.3 Resource Management and Timeout Handling

  • 🛠️ Thread Pool Timeout
    Added timeout for pool close operations to prevent process deadlocks. (fix-code: lazydock/scripts/md_traj.py: simple_analysis: add timeout for pool close)
  • 🛠️ Task Execution Delay
    Added delay to avoid expect conflicts during task execution in ana_gmx.simple. (fix(ana_gmx.simple): add delay to avoid expect conflicts during task execution)

5. Compatibility Notes

5.1 Configuration Changes

  • 🔥 Path Configuration Update
    Added 'sobtop' to named_paths configuration. (fix(config): add 'sobtop' to named_paths)

5.2 Function Refactoring

  • 🔄 Method Refactoring
    Refactored prepare_ff_dir method to use static method and improved variable naming. (fix(prepare_gmx): refactor prepare_ff_dir method to use static method and improve variable naming)
  • 🔄 Function Renaming
    Renamed imported function for clarity in prepare_gmx module. (fix(prepare_gmx): rename imported function for clarity)

5.3 Parameter Default Updates

  • ⚠️ Genion Groups Default
    Updated genion-groups default to 'SOL' and added validation for group existence in ions.tpr. (fix(run_gmx): update genion-groups default to 'SOL' and add validation for group existence in ions.tpr)