Rotbond is program for generating molecular conformers through systematic bond rotations. Rotbond takes an XYZ molecular structure file and rotation parameters, then systematically generates all possible conformers, outputting them as individual XYZ files and a trajectory file for further calculations and visualization.
-
Flexible Conformer Generation Methods
-
Bond Rotation Mode: Traditional dihedral angle rotation
- Step-based rotations - e.g.,
e60generates 0°, 60°, 120°, 180°, 240°, 300° (6 states);e30generates 12 states - Explicit angle lists - specify exact angles needed
- Synchronous rotations - link multiple bonds to rotate together
- Step-based rotations - e.g.,
-
Bond Scanning Mode: Systematic bond length variation
- Step-based scanning - e.g.,
scan 10 0.1stretches bond in 10 steps of 0.1 Å each - Multi-dimensional scanning - scan multiple bonds simultaneously
- Compression and stretching - positive step sizes stretch, negative compress
- Step-based scanning - e.g.,
-
Manual bond definitions - force or remove bonds as needed for both modes
-
-
Smart Output Generation
- Trajectory file with all conformers for easy visualization
- Individual XYZ files with automatic smart padding
- Progress reporting and statistics
-
Intelligent Validation
- Steric clash detection and filtering
- Configurable bond detection parameters
- Distance-based validation using covalent radii
-
Documentation
- Built-in help system with 8 comprehensive sections
- Practical examples and troubleshooting guides
- Complete reference materials
- Support for synchronous rotations (same or opposite direction)
- Manual bond forcing for special cases (metal complexes, coordinate bonds)
- False bond removal for accurate molecular graphs
- Automatic template creation - generates comprehensive .rp templates with examples
- Flexible input formats - accepts both
moleculeandmolecule.xyzformats - Conformer generation limits - prevent system crashes from large jobs
- Interactive safety warnings - alerts for memory-intensive generations
- Auto-confirmation mode - batch processing without manual intervention
- Comprehensive error messages with contextual help
- Modern Rust implementation for safety and performance
# Clone the repository
git clone https://github.com/lenhanpham/Rotbond.git
cd Rotbond
# Build in release mode for optimal performance
cargo build --release
# Or build in debug mode for development
cargo buildA binary file is provided for windows users in Release
Copy rotbond.exe to a directory and add this directory to your Windows environment variable.
Export your the directory where the rotbond binary is located, and then use it.
export PATH=$PATH:your_dir/target/release
# Run with release build (accepts both formats)
rotbond <molecule_name>
rotbond <molecule_name>.xyzStep 1: Prepare your stucture butane.xyz
14
Butane molecule
C -4.390308655000 -0.632987590700 0.043677475300
H -5.330057936000 -0.527510732400 -0.503444569700
H -4.389058916600 0.077648432000 0.873491606400
H -4.345674372500 -1.643033486700 0.457086407500
C -3.188670330900 -0.384837924800 -0.886583891400
C -3.226558849100 1.036845318100 -1.485516216000
H -2.262792259600 -0.522845611400 -0.322588193200
H -3.198108077300 -1.124349892400 -1.691208307400
H -3.217121102700 1.776357285700 -0.680891800000
C -2.024920525000 1.284994984100 -2.415777582700
H -4.152436920400 1.174853004700 -2.049511914300
H -1.085171244000 1.179518125700 -1.868655537800
H -2.026170263400 0.574358961400 -3.245591713900
H -2.069554807400 2.295040880000 -2.829186515000
Step 2: Run Rotbond to create template
rotbond butaneOutput:
Rotation parameters file 'butane.rp' not found.
Creating template file with default parameters...
✓ Template file 'butane.rp' created successfully!
Please edit 'butane.rp' to specify your rotation parameters, then run rotbond again.
Step 3: Edit the generated butane.rp template
The program creates a comprehensive template with examples. Simply uncomment and modify:
# =======================================================================
# ROTBOND ROTATION PARAMETERS FILE
# =======================================================================
# This is a template file with examples of all available features.
# Edit this file to specify your rotation parameters, then run rotbond again.
# Configuration parameters
bond_factor = 1.2
skip_factor = 0.7
# Add your rotation specifications (uncomment and modify):
1-2 e60 # Rotate C-C bond every 60°
Step 4: Run Rotbond again
rotbond butaneStep 5: Output Files
butane_traj.xyz- Trajectory with all conformersbutane_01.xyz,butane_02.xyz, etc. - Individual conformers
Rotbond now automatically creates comprehensive template files to make getting started easier than ever!
- Run with just an XYZ file:
rotbond moleculeorrotbond molecule.xyz - Automatic detection: If
molecule.rpdoesn't exist, Rotbond creates it automatically - Comprehensive template: Generated file includes examples of all features with detailed comments
- Edit and run: Simply uncomment and modify the examples, then run Rotbond again
The automatically generated template includes:
- Configuration parameters with explanations and recommended values
- Manual bond definitions for special cases (metal complexes, etc.)
- All rotation types with examples:
- Step-based rotations (
1-2 e60) - Explicit angle lists (
1-2 0 60 120 180) - Synchronous rotations (
3-4 syn 1)
- Step-based rotations (
- Real-world examples for common molecules (butane, butane, toluene, metal complexes)
- Best practices and tips for parameter selection
- Detailed comments explaining each feature
rotbond butane
# Output:
# Rotation parameters file 'butane.rp' not found.
# Creating template file with default parameters...
# ✓ Template file 'butane.rp' created successfully!
#
# Please edit 'butane.rp' to specify your rotation parameters, then run rotbond again.The generated template is ready to use - just uncomment the rotation specifications you need!
Standard XYZ format with atom coordinates:
n_atoms
comment_line
element x y z
element x y z
...
Specifications:
- Atom count: Integer on first line
- Comment: Any text on second line
- Coordinates: Element symbol followed by X, Y, Z in Angstroms
- Atom indices are 1-based in all input files
- Elements are case-insensitive
- Standard covalent radii used for bond detection
Automatic Template Creation: If this file doesn't exist, Rotbond will automatically create a comprehensive template with examples and documentation. Simply run rotbond <molecule_name> and edit the generated template.
Configuration and rotation specifications in any order:
# Configuration (optional - defaults provided)
bond_factor = 1.2 # Bond detection threshold multiplier
skip_factor = 0.7 # Validation threshold
maxgen = 500 # Maximum conformers to generate (or "max" for unlimited)
autoconfirm = false # Skip interactive warnings for large jobs
# Manual bond definitions (optional)
8-12 bond # Force bond between atoms 8 and 12
22-45 nobond # Remove bond between atoms 22 and 45
# Rotation specifications
1-6 e60 # Step-based rotation
2-5 0 60 120 180 # Explicit angles
3-7 syn 1 # Synchronous with bond 1 (same direction)
4-8 syn -1 # Synchronous with bond 1 (opposite direction)
Flexible Format Rules:
- Comments start with
#and continue to end of line - Empty lines are ignored
- Format:
atom1-atom2(use dash, not hyphen) - All angles in degrees
- Angle range: -360° to +360°
Example Flexible Files:
# Everything mixed together
7-11 e30
bond_factor = 1.2
2-7 0 120
21-22 bond
skip_factor = 0.7
# Or in any other order
bond_factor = 1.3
2-5 0 90 180
7-11 e45
skip_factor = 0.8All formats above work identically!
Rotbond supports two mutually exclusive modes for conformer generation: Bond Rotation and Bond Scanning. Choose one mode per molecule.
Generates evenly spaced angles from 0° to 360°-step:
atom1-atom2 e<step_angle>Examples:
1-6 e60→ Generates: 0°, 60°, 120°, 180°, 240°, 300° (6 states)2-5 e30→ Generates: 0°, 30°, 60°, 90°, 120°, 150°, 180°, 210°, 240°, 270°, 300°, 330° (12 states)3-7 e90→ Generates: 0°, 90°, 180°, 270° (4 states)
Note: The number after 'e' can be any angle (e.g., e30, e45, e60, e90, e120). The number of states is calculated as 360°/step. Smaller step angles generate more rotation states; larger step angles generate fewer.
Use cases:
- Systematic exploration of conformational space
- When you want evenly spaced angle coverage
- Default choice for most rotations
Specify exact angles to use:
atom1-atom2 angle1 angle2 angle3 ...Examples:
1-6 0 60 120 180→ Uses exactly these 4 angles2-5 30 45 60 90 120 150→ Uses 6 specific angles3-7 -120 -60 0 60 120→ Includes negative angles
Use cases:
- Target specific conformations
- Reduce computational load
- Define symmetry-unique angles
Link multiple bonds to rotate together:
# Same direction as reference
atom1-atom2 syn <reference_bond>
# Opposite direction to reference
atom1-atom2 syn -<reference_bond>Examples:
1-2 e60- Main independent bond3-4 syn 1- Bond 3 rotates with bond 1 (same angle)5-6 syn -1- Bond 5 rotates opposite to bond 1
Use cases:
- Methyl groups in aromatic compounds
- Symmetric molecular fragments
- Coupled conformational changes
Important Notes:
- Synchronous bonds reference bond numbers (1, 2, 3, etc.)
- Cannot reference themselves
- Cannot create circular references
- Use negative sign for opposite direction
Bond scanning systematically varies bond lengths to explore conformational space through bond stretching and compression.
atom1-atom2 scan steps step_size
atom1-atom2 s steps step_size # Short formParameters:
steps: Number of scanning steps (positive integer)step_size: Bond length increment in Angstroms (positive = stretch, negative = compress)
Examples:
1-2 scan 10 0.1→ Stretch C-C bond in 10 steps of 0.1 Å each (1.5 → 2.5 Å)3-4 scan 5 -0.05→ Compress bond in 5 steps of 0.05 Å each5-6 s 15 0.2→ Alternative syntax using 's' instead of 'scan'
Scan multiple bonds simultaneously:
# 2D scanning example
1-2 scan 8 0.1 # First bond: 8 steps, +0.1 Å
3-4 scan 6 -0.05 # Second bond: 6 steps, -0.05 Å
# Total combinations: 8 × 6 = 48 conformersUse cases:
- Explore bond length effects on molecular geometry
- Study reaction coordinate scanning
- Investigate steric effects of bond compression/stretching
- Generate structures for potential energy surface mapping
| Feature | Bond Rotation | Bond Scanning |
|---|---|---|
| Parameter varied | Dihedral angles | Bond lengths |
| Units | Degrees (°) | Angstroms (Å) |
| Typical range | 0° to 360° | ±3.0 Å from equilibrium |
| Use case | Conformational flexibility | Bond length effects |
| Output | Different conformations | Different geometries |
- Mutually exclusive: Cannot mix rotation and scanning in the same file
- Chemical validity: Large step sizes may create unrealistic bond lengths
- Validation: Scanning conformers undergo additional geometric validation
- Fragment movement: One molecular fragment moves as a rigid body
- Bond length limits: System validates minimum bond length (≥ 0.1 Å) with no upper limit
- Start small: Use step sizes of 0.1-0.5 Å initially
- Reasonable steps: 5-15 steps typically sufficient
- Check chemistry: Ensure final bond lengths are chemically reasonable
- Multi-dimensional caution: Combinations multiply quickly (5×5×5 = 125 conformers)
- Use with validation: lower skip_factor may be needed for compressed bonds
Controls bond detection sensitivity:
- Default: 1.0
- Formula:
threshold = (cov_radius₁ + cov_radius₂) × bond_factor + 0.45 - Lower values (0.5-0.8): Stricter detection, fewer bonds
- Higher values (1.2-1.5): Looser detection, more bonds
- Recommended ranges:
- Organic molecules: 1.0-1.2
- Metal complexes: 1.2-1.5
- Crystal structures: 0.8-1.0
Controls steric clash validation:
- Default: 0.7
- Formula:
min_distance = (cov_radius₁ + cov_radius₂) × skip_factor - Lower values (0.4-0.6): More lenient, accept closer atoms
- Higher values (0.8-1.0): Stricter validation
- Recommended ranges:
- Small rigid molecules: 0.8-1.0
- Flexible molecules: 0.6-0.8
- When in doubt: Start with 0.7
Controls the maximum number of conformers to generate:
- Default: 500
- Values:
- Integer (e.g.,
maxgen = 300): Limit to specific number max,maximum, orfull: Generate all theoretical conformers (no limit)
- Integer (e.g.,
- Safety: Prevents system crashes from excessive memory usage
- Interactive warning: Displays warning for >500 theoretical conformers
- Recommended ranges:
- Small molecules: 100-1000
- Large molecules: 50-500
- High-memory systems: 1000+
- Unlimited generation: Use with caution
Controls automatic confirmation for large conformer generation jobs:
- Default: false
- Values:
true,yes,1,on: Skip interactive warningsfalse,no,0,off: Show interactive warnings (default)
- Use cases:
- Batch processing without manual intervention
- Automated workflows and scripts
- When you're confident about system resources
- Safety: Only use when you understand the memory implications
rotbond [OPTIONS] <molecule_name>
rotbond [OPTIONS] <molecule_name>.xyzInput Formats:
rotbond molecule- Usesmolecule.xyzandmolecule.rp(creates template if .rp missing)rotbond molecule.xyz- Same behavior, accepts .xyz extension
Options:
-h, --help- Show basic help message-v, --version- Show version information--help topics- List all available help topics--help <topic>- Show specific help topic--verbose- Enable verbose output
Help Topics:
usage- Command-line usage and optionsfeatures- Feature overviewinput- Input file formats (XYZ, .rp)output- Output file formatsexamples- Practical usage examplesalgorithms- Algorithm detailstroubleshoot- Troubleshooting guidereference- Reference materials
Contains all conformers in a single file:
8
Conformer 1 of 56 - generated by Rotbond
C 0.000000 0.000000 0.000000
H 0.000000 0.000000 1.090000
...
8
Conformer 2 of 56 - generated by Rotbond
C 0.123456 0.234567 0.345678
H 0.234567 0.345678 0.456789
...
Features:
- Standard XYZ format
- Compatible with VMD, Chimera, PyMOL, Avogadro, Chemcraft
- Each structure labeled with conformer number
- Easy for visualization and analysis
One file per valid conformer with smart padding:
- 1-9 conformers:
molecule_1.xyz,molecule_2.xyz, ...,molecule_9.xyz - 10-99 conformers:
molecule_01.xyz,molecule_02.xyz, ...,molecule_99.xyz - 100-999 conformers:
molecule_001.xyz, ...,molecule_999.xyz - 1000+ conformers:
molecule_0001.xyz, ...,molecule_1234.xyz
Features:
- Single XYZ structure per file
- 6-decimal precision
- Works with any molecular viewer
- Each file is self-contained
Input: butane.rp
bond_factor = 1.2
skip_factor = 0.7
1-2 e60
Result: 6 rotation states → 6 valid conformers (100% success rate)
Input: butane.rp
bond_factor = 1.2
skip_factor = 0.7
# Rotate around C1-C2 bond
1-2 e120
# Rotate around C2-C3 bond
2-3 e60
# Rotate around C3-C4 bond
3-4 e180
Result: 3 bonds × [3, 6, 2] states = 36 total combinations
Input: examle_molecule.rp
bond_factor = 1.2
skip_factor = 0.7
# Independent rotation
1-2 e60
# Methyl group 1 rotates with main bond (same direction)
3-4 syn 1
# Methyl group 2 rotates with main bond (same direction)
5-6 syn 1
# Methyl group 3 rotates with main bond (opposite direction)
7-8 syn -1
Result: Only 1 independent bond → 6 rotation states
Input: butane_scan.rp
bond_factor = 1.0
skip_factor = 0.7
# Scan C-C bond length
1-2 scan 10 0.1
Result: 10 scanning steps → C-C bond varies from 1.54 Å to 2.54 Å Explores effect of bond stretching on molecular geometry
Input: h2_scan.rp
bond_factor = 1.0
skip_factor = 0.6 # More permissive for compressed bonds
# Compress H-H bond
1-2 scan 8 -0.05
Result: 8 scanning steps → H-H bond compresses from 0.74 Å to 0.34 Å Studies bond compression effects
Input: water_scan.rp
bond_factor = 1.0
skip_factor = 0.7
# Scan both O-H bonds simultaneously
1-2 scan 6 0.1 # First O-H bond: 6 steps, +0.1 Å
1-3 scan 5 0.08 # Second O-H bond: 5 steps, +0.08 Å
Result: 6 × 5 = 30 combinations → Systematic exploration of O-H bond length effects Useful for studying hydrogen bonding effects
Input: metal_complex_scan.rp
bond_factor = 1.2
skip_factor = 0.8
# Force metal-ligand bonds
25-30 bond
25-35 bond
25-40 bond
# Scan metal-ligand bond lengths
25-30 scan 8 0.1 # First ligand: stretch
25-35 scan 6 -0.05 # Second ligand: compress
Result: 8 × 6 = 48 combinations → Studies metal-ligand bond length effects Useful for coordination chemistry and catalysis studies
Input: complex.rp
bond_factor = 1.2
skip_factor = 0.7
# Force metal-ligand bonds
8-12 bond
8-15 bond
8-23 bond
# Remove false positive bond
22-45 nobond
# Rotations
1-5 e90
6-10 e120
12-18 syn 2
Result: Manual bonds ensure correct connectivity ~15-20 valid conformers
Input: large_complex.rp
bond_factor = 1.2
skip_factor = 0.7
# Safety configuration for large generation
maxgen = 300 # Limit to 300 conformers
autoconfirm = true # Skip interactive warnings
# Force metal-ligand bonds
43-48 bond
48-47 bond
# Multiple rotations (would generate 1728 theoretical conformers)
1-5 e30 # 12 states
6-10 e30 # 12 states
12-18 e30 # 12 states
20-25 330 # 1 state
Result: 12 × 12 × 12 × 1 = 1,728 theoretical conformers Limited to 300 actual conformers, no interactive prompts
Input: large_scan.rp
bond_factor = 1.0
skip_factor = 0.7
# Safety configuration for large scanning
maxgen = 200 # Conservative limit for scanning
autoconfirm = true # Skip interactive warnings
# Multi-dimensional scanning (would generate 300 theoretical conformers)
1-5 scan 10 0.05 # 10 steps
6-10 scan 6 0.08 # 6 steps
12-18 scan 5 -0.03 # 5 steps
Result: 10 × 6 × 5 = 300 theoretical conformers Limited to 200 actual conformers, no interactive prompts Systematic exploration of multiple bond length effects
Rotbond includes a comprehensive safety system to prevent system crashes from excessive conformer generation while maintaining full flexibility for advanced users.
- Default limit: 500 conformers maximum
- Interactive warning: Displays for >500 theoretical conformers
- Dynamic limit adjustment: Set custom limits during runtime
- Memory protection: Prevents system crashes from excessive memory usage
- Flexible user control: Multiple options for handling large jobs
rotbond large_molecule
WARNING: Large conformer generation detected!
Theoretical conformers: 1728
This may consume significant memory and processing time.
Current limit: 500 conformers
Options:
- Press Enter or 'y' to continue with current limit
- Enter a number (e.g., 300) to set a new limit
- Enter 'max' for unlimited generation
- Enter 'n' to cancel
Your choice: 200
✓ Limit set to 200 conformers.Interactive Options:
- Continue with current limit: Press Enter, 'y', or 'yes'
- Set custom limit: Enter any positive integer (e.g., 100, 300, 1000)
- Unlimited generation: Enter 'max', 'maximum', or 'unlimited'
- Cancel generation: Enter 'n' or 'no'
Custom Limits:
# In molecule.rp
maxgen = 300 # Limit to 300 conformers
autoconfirm = false # Show warnings (default)Unlimited Generation:
# In molecule.rp
maxgen = max # Generate all conformers (use with caution!)
autoconfirm = true # Skip warnings for batch processingBatch Processing:
# In molecule.rp
maxgen = 1000 # Higher limit for powerful systems
autoconfirm = true # No interactive promptsRecommended Limits by System:
- 8GB RAM: maxgen = 200-500
- 16GB RAM: maxgen = 500-1000
- 32GB+ RAM: maxgen = 1000+ or unlimited
- Batch jobs: Always use
autoconfirm = true
Memory Estimation:
- ~100 bytes per atom per conformer
- 50 atoms × 500 conformers ≈ 2.5 MB
- 100 atoms × 1000 conformers ≈ 10 MB
- 200 atoms × 2000 conformers ≈ 40 MB
Best Practices:
- Start with default limits (500)
- Monitor system resources during generation
- Use
maxgen = maxonly when necessary - Enable
autoconfirmfor unattended runs - Consider using trajectory output for large jobs
The number of theoretical conformers is calculated as the cartesian product of all independent rotation states:
# Example: 3 independent bonds
Bond 1: e30 → 12 states
Bond 2: e60 → 6 states
Bond 3: e90 → 4 states
Total: 12 × 6 × 4 = 288 theoretical conformersCommon Scenarios:
- 2 bonds × e60 = 6 × 6 = 36 conformers (no warning)
- 3 bonds × e30 = 12 × 12 × 12 = 1,728 conformers (warning)
- 4 bonds × e30 = 12⁴ = 20,736 conformers (large warning)
Rotbond includes a comprehensive built-in help system accessible via command-line:
# Basic help
rotbond --help
# List all topics
rotbond --help topics
# Specific topic
rotbond --help examples
rotbond --help input
rotbond --help troubleshootAvailable Topics:
- usage - Command-line usage and options
- features - Feature overview
- input - Input file formats (XYZ, .rp)
- output - Output file formats
- examples - Practical usage examples
- algorithms - Algorithm details
- troubleshoot - Troubleshooting guide
- reference - Reference materials
Error Message Help: All error messages include contextual help suggestions:
ERROR: Input file 'molecule.xyz' not found
For help creating input files, use: --help inputRotbond implements 5 core algorithms:
- Builds bond connectivity using covalent radii
- Applies bond_factor to threshold calculation
- Supports manual bond forcing/removal
- Complexity: O(n²) for distance matrix
- Uses Breadth-First Search (BFS)
- Identifies atoms belonging to each rotating fragment
- Determines rotation axis and pivot point
- Complexity: O(n + m) where m = bonds
- Implements Rodrigues' Rotation Formula
- Transforms coordinates to align rotation axis
- Applies rotation around arbitrary 3D axis
- Maintains molecular integrity
- Cartesian product over independent bonds
- Handles synchronous bonds automatically
- Progress reporting for large jobs
- Complexity: O(C × n²) where C = conformers
- Distance-based validation
- Uses covalent radii and skip_factor
- Early exit on first violation
- Ensures chemically reasonable conformers
- Bond Detection: O(n²)
- Rotation: O(f) where f = fragment size
- Validation: O(n²) per conformer
- Generation: O(C × n²) total
- Approximately 100 bytes per atom per conformer
- 50 atoms × 100 conformers ≈ 0.5 MB
- 100 atoms × 1000 conformers ≈ 10 MB
- Reduce angle states - Use explicit angles instead of steps
- Use synchronous rotations - Decrease independent bonds
- Adjust skip_factor - Higher values filter early
- Consider trajectory output - Lower memory usage
- Batch processing - For very large molecules
- Typical: 100-1000 conformers/second
- Depends on molecule size and validation strictness
- Trajectory output faster than individual files
- SSD recommended for large jobs
1. "ERROR: Input file 'molecule.xyz' not found"
- Verify file exists in current directory
- Check filename spelling
- Remember:
rotbond moleculelooks formolecule.xyz
2. "Need to create rotation parameters file"
- Automatic solution: Just run
rotbond molecule- it will create a template automatically! - Edit the generated
molecule.rptemplate file - Uncomment and modify the rotation examples
- Run
rotbond moleculeagain
3. "ERROR: No rotation bonds specified"
- Check rotation syntax in .rp file
- Ensure manual bonds come before rotations
- Add at least one rotation specification
4. "Generated 0 valid conformers!"
- Lower skip_factor (try 0.5 or 0.6)
- Reduce rotation angles
- Adjust bond_factor
- Check bond detection
5. "Too many conformers (over 100,000)"
- Reduce number of independent bonds
- Use larger step sizes (e90 instead of e30)
- Use explicit angles
- Add constraints
6. "Circular reference detected"
- Check synchronous bond specifications
- Avoid: Bond A syn B, Bond B syn A
- Remove one reference
- Use explicit angles instead
7. "System running out of memory"
- Reduce
maxgenvalue (try 100-300) - Use trajectory output instead of individual files
- Close other applications
- Consider using explicit angles instead of steps
8. "Generation stopped at limit before completion"
- This is normal behavior when
maxgenlimit is reached - Increase
maxgenvalue if more conformers needed - Use
maxgen = maxfor unlimited generation (with caution) - Check if theoretical count exceeds your limit
9. "Interactive prompt blocking batch processing"
- Add
autoconfirm = trueto .rp file - Set appropriate
maxgenlimit for your system - Use this for unattended/automated runs
10. "Want to adjust limit during runtime"
- Use the interactive prompt when it appears
- Enter a custom number (e.g., 200, 1000)
- Enter 'max' for unlimited generation
- This overrides the .rp file setting for current run only
- Use template creation - Run
rotbond moleculeto auto-generate comprehensive .rp template - Use --verbose flag - Shows detailed processing
- Start simple - Begin with one bond rotation
- Check intermediate output - Examine trajectory file
- Adjust parameters - Try bond_factor: 0.8-1.5, skip_factor: 0.5-1.0
- Visualize results - Use molecular viewer to check conformers
# Built-in help
rotbond --help
rotbond --help topics
rotbond --help examples
rotbond --help troubleshoot
# Error messages
# All errors include contextual help suggestionsAll elements from H to Lr (atomic numbers 1-103) are supported.
Most Common:
- H, C, N, O - Organic molecules
- P, S - Organophosphorus, organosulfur
- F, Cl, Br, I - Halogenated compounds
- Si - Silanes, silicones
- B - Boron compounds
- Na, K, Mg, Ca - Salts, complexes
- Transition metals - Fe, Co, Ni, Cu, Zn, etc.
Based on OpenBabel covalent radii values:
| Element | Symbol | Radius | Notes |
|---|---|---|---|
| Hydrogen | H | 0.23 | Very common |
| Carbon | C | 0.68 | Organic backbone |
| Nitrogen | N | 0.68 | Common in organics |
| Oxygen | O | 0.68 | Very common |
| Fluorine | F | 0.64 | Halogen |
| Phosphorus | P | 1.05 | Common nonmetal |
| Sulfur | S | 1.02 | Common nonmetal |
| Chlorine | Cl | 0.99 | Halogen |
[Complete table available via: rotbond --help reference]
- Unit: Degrees (°)
- Range: -360° to +360°
- Positive rotation: Clockwise when viewing from atom1 → atom2
- Zero rotation: No rotation (original structure)
- Step-based: Always includes 0°, generates 360°/step angles
- Use automatic templates - Run
rotbond moleculeto generate comprehensive .rp template - Start simple - Begin with one bond rotation from the template examples
- Verify output - Check conformers before adding complexity
- Test with known molecule - butane is a good test case
- bond_factor: Start with 1.0-1.2
- skip_factor: Start with 0.7
- Step size: e30-e60 for detail, e90-e120 for flexibility
- Use synchronous rotations for symmetry
- Explicit angles for control
- Manual bonds for special cases
- Consider chemical constraints
- Visualize results with molecular viewer
- Check bond lengths reasonable
- Verify expected conformations
- Monitor skipped conformers
- Estimate conformers before generation
- Use trajectory for analysis
- Process in batches if needed
- Save successful configurations
- Start conservative - Use default 500 limit initially
- Monitor resources - Watch memory usage during generation
- Calculate theoretical count - Multiply rotation states before running
- Use autoconfirm for batch jobs - Set
autoconfirm = truefor scripts - Set appropriate limits - Match
maxgento your system capabilities - Unlimited generation - Only use
maxgen = maxwhen necessary - Memory planning - ~100 bytes per atom per conformer
Cite this project if you use Rotbond for your research:
@article{pham_rotbond:_2025,
title = {Rotbond: {Systematic} conformer generation via bond rotations and bond-length scanning},
shorttitle = {Rotbond},
url = {https://doi.org/10.13140/RG.2.2.25174.51524},
doi = {10.13140/RG.2.2.25174.51524},
language = {en},
urldate = {2025-11-07},
author = {Pham, Le Nhan},
year = {2025},
}Rotbond is licensed under the MIT License.
- Le Nhan Pham: Developer and maintainer
- Open-source community: For contributions and feedback
- Computational chemistry community: For validation and testing
- Built-in Help:
rotbond --help - Examples:
rotbond --help examples - Troubleshooting:
rotbond --help troubleshoot - Reference:
rotbond --help reference
Rotbond - Generating molecular conformers with precision and efficiency
