Skip to main content
Glama
design_rna.py4.08 kB
#!/usr/bin/env python3 """ RNA Design Script for gRNAde Standalone script for generating RNA sequences from 3D structures. This script wraps the gRNAde design functionality for command-line usage. Usage: python scripts/design_rna.py --pdb structure.pdb --output results/ --n-designs 1000 Author: MCP Implementation Team Based on: geometric-rna-design by Chaitanya K. Joshi et al. """ import argparse import os import sys from pathlib import Path # Add repo to path for gRNAde imports REPO_PATH = Path(__file__).parent.parent / "repo" / "geometric-rna-design" sys.path.insert(0, str(REPO_PATH)) def main(): parser = argparse.ArgumentParser( description="Generate RNA sequences from 3D structures using gRNAde" ) # Input arguments parser.add_argument( "--pdb", "-p", required=True, help="Path to PDB file containing 3D RNA structure" ) parser.add_argument( "--target-structure", "-s", help="Target secondary structure in dot-bracket notation" ) parser.add_argument( "--partial-sequence", help="Partial sequence constraints (use _ for designable positions)" ) # Design parameters parser.add_argument( "--n-designs", "-n", type=int, default=1000, help="Number of designs to generate (default: 1000)" ) parser.add_argument( "--mode", choices=["3d", "2d"], default="3d", help="Design mode: 3d (use 3D coords) or 2d (2D only) (default: 3d)" ) parser.add_argument( "--temperature-min", type=float, default=0.1, help="Minimum sampling temperature (default: 0.1)" ) parser.add_argument( "--temperature-max", type=float, default=1.0, help="Maximum sampling temperature (default: 1.0)" ) # Output arguments parser.add_argument( "--output", "-o", default="results/", help="Output directory for results (default: results/)" ) parser.add_argument( "--config", "-c", help="Path to configuration YAML file" ) # System arguments parser.add_argument( "--gpu", type=int, default=0, help="GPU device ID (default: 0)" ) parser.add_argument( "--seed", type=int, default=42, help="Random seed for reproducibility (default: 42)" ) parser.add_argument( "--verbose", "-v", action="store_true", help="Enable verbose output" ) args = parser.parse_args() # Validate inputs if not os.path.exists(args.pdb): print(f"Error: PDB file not found: {args.pdb}") sys.exit(1) if args.config and not os.path.exists(args.config): print(f"Error: Config file not found: {args.config}") sys.exit(1) # Create output directory os.makedirs(args.output, exist_ok=True) print("=" * 60) print("gRNAde RNA Design Script") print("=" * 60) print(f"PDB file: {args.pdb}") print(f"Target structure: {args.target_structure or 'None (unconstrained)'}") print(f"Number of designs: {args.n_designs}") print(f"Design mode: {args.mode}") print(f"Temperature range: [{args.temperature_min}, {args.temperature_max}]") print(f"Output directory: {args.output}") print("=" * 60) # TODO: Implement actual gRNAde design logic print("\n🚧 IMPLEMENTATION IN PROGRESS 🚧") print("This script is currently being implemented.") print("The gRNAde design functionality will be added in the next phase.") print() print("Expected functionality:") print(f" 1. Load PDB structure from {args.pdb}") print(f" 2. Generate {args.n_designs} RNA sequences") print(f" 3. Apply filtering and evaluation") print(f" 4. Save results to {args.output}") print() print("For now, please use the original gRNAde design.py script:") print(f" cd {REPO_PATH}") print(" python design.py --config configs/design.yaml") if __name__ == "__main__": main()

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Biomolecular-Design-Nexus/grnade_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server