Skip to main content

Clone Job Script

Cloning job scripts in Vantage creates copies of existing scripts for modification and customization. This guide covers effective script cloning strategies for development and collaboration, enabling efficient reuse and adaptation of proven computational workflows.

Overview

Script cloning provides a foundation for:

  • Rapid Development: Start new projects based on proven, working scripts
  • Safe Experimentation: Create isolated copies for testing modifications without affecting originals
  • Version Management: Maintain multiple variants of scripts for different use cases
  • Template Creation: Develop standardized script templates for common computational tasks
  • Knowledge Transfer: Share proven computational approaches across teams and projects
  • Iterative Improvement: Build upon existing solutions while preserving original implementations

When to Clone Scripts

Development Scenarios

  • Similar Workflows: Starting new projects with similar computational requirements
  • Parameter Studies: Running multiple variations with different input parameters
  • Method Comparison: Testing alternative algorithms or approaches
  • Environment Testing: Adapting scripts for different computational environments

Collaboration Scenarios

  • Team Development: Multiple team members working on related computational tasks
  • Knowledge Sharing: Distributing proven methods across research groups
  • Training: Creating learning examples based on production scripts
  • Template Creation: Establishing standardized starting points for common workflows

Cloning Strategies

Direct Cloning

Create exact copies of existing scripts:

# Clone script with new name
vantage job script clone original-script new-script-name

# Clone to different project
vantage job script clone original-script --project target-project

Selective Cloning

Clone specific components or sections:

  • Resource Configuration: Copy resource requirements and scheduling parameters
  • Environment Setup: Replicate software environments and dependencies
  • Core Logic: Extract main computational algorithms and methods
  • I/O Handling: Reuse data input/output patterns and file management

Template-Based Cloning

Create standardized templates for common use cases:

  • Data Processing Templates: Standard patterns for data ingestion and transformation
  • Analysis Templates: Common statistical and computational analysis workflows
  • Visualization Templates: Standardized plotting and reporting scripts
  • Machine Learning Templates: Common model training and evaluation patterns

Best Practices

Pre-Cloning Checklist

  • Verify Source Quality: Ensure the original script is tested and functional
  • Document Dependencies: Identify all required software and data dependencies
  • Review Licensing: Check any licensing or usage restrictions
  • Plan Modifications: Outline intended changes and customizations

Post-Cloning Actions

  • Update Metadata: Modify script names, descriptions, and documentation
  • Customize Parameters: Adapt configuration for new use case
  • Test Functionality: Verify the cloned script works in the target environment
  • Version Control: Track changes and maintain development history

Naming Conventions

# Original script: data-analysis-v1.py
# Cloned variants:
data-analysis-v1-modified.py # Modified version
data-analysis-v1-experiment.py # Experimental variant
data-analysis-template.py # Template version
data-analysis-team-shared.py # Team collaboration version

Advanced Cloning Techniques

Parameterized Cloning

Create clones with automatic parameter substitution:

# Template script with placeholders
#!/usr/bin/env python3

# Configuration
INPUT_FILE = "{{INPUT_PATH}}"
OUTPUT_DIR = "{{OUTPUT_DIRECTORY}}"
PROCESSING_CORES = {{CPU_COUNT}}

# Clone with parameter substitution
vantage job script clone template-script new-script \
--param INPUT_PATH=/data/new-dataset.csv \
--param OUTPUT_DIRECTORY=/results/experiment-2 \
--param CPU_COUNT=16

Conditional Cloning

Clone scripts with environment-specific adaptations:

# Clone for different compute environments
vantage job script clone base-script gpu-version --target-env gpu
vantage job script clone base-script cpu-version --target-env cpu
vantage job script clone base-script cloud-version --target-env cloud

Integration with Development Workflows

Version Control Integration

# Clone and initialize git repository
vantage job script clone source-script new-project-script
cd new-project-script
git init
git add .
git commit -m "Initial clone from source-script"

Collaborative Development

# Clone shared team script
vantage job script clone team/shared-analysis personal-analysis

# Make modifications and share back
vantage job script update personal-analysis
vantage job script share personal-analysis --team research-group

Troubleshooting Common Issues

Dependency Conflicts

  • Environment Mismatches: Verify software versions and dependencies
  • Path Dependencies: Update file paths and directory references
  • Permission Issues: Ensure proper access to required resources

Performance Considerations

  • Resource Requirements: Adjust CPU, memory, and storage allocations
  • Scalability: Modify parallel processing and data handling approaches
  • Optimization: Review and update performance-critical sections

Maintenance Strategies

  • Regular Updates: Keep cloned scripts synchronized with upstream improvements
  • Documentation: Maintain clear records of modifications and customizations
  • Testing: Implement automated testing for cloned and modified scripts
  • Cleanup: Remove obsolete clones to maintain workspace organization