uht-tooling 0.1.8__py3-none-any.whl → 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
uht_tooling/cli.py CHANGED
@@ -4,6 +4,7 @@ from typing import Optional
4
4
  import typer
5
5
 
6
6
  from uht_tooling.workflows.design_gibson import run_design_gibson
7
+ from uht_tooling.workflows.design_kld import run_design_kld
7
8
  from uht_tooling.workflows.design_slim import run_design_slim
8
9
  from uht_tooling.workflows.mutation_caller import (
9
10
  expand_fastq_inputs as expand_fastq_inputs_mutation,
@@ -66,6 +67,45 @@ def design_slim_command(
66
67
  typer.echo(f"SLIM primers written to {output_dir / 'SLIM_primers.csv'}")
67
68
 
68
69
 
70
+ @app.command("design-kld", help="Design KLD (inverse PCR) primers from user-specified FASTA/CSV inputs.")
71
+ def design_kld_command(
72
+ gene_fasta: Path = typer.Option(..., exists=True, readable=True, help="Path to the gene FASTA file."),
73
+ context_fasta: Path = typer.Option(
74
+ ...,
75
+ exists=True,
76
+ readable=True,
77
+ help="Path to the context FASTA file containing the plasmid or genomic sequence.",
78
+ ),
79
+ mutations_csv: Path = typer.Option(
80
+ ...,
81
+ exists=True,
82
+ readable=True,
83
+ help="CSV file containing a 'mutations' column with the desired edits.",
84
+ ),
85
+ output_dir: Path = typer.Option(
86
+ ...,
87
+ dir_okay=True,
88
+ writable=True,
89
+ help="Directory where results will be written.",
90
+ ),
91
+ log_path: Optional[Path] = typer.Option(
92
+ None,
93
+ dir_okay=False,
94
+ writable=True,
95
+ help="Optional path to write a dedicated log file for this run.",
96
+ ),
97
+ ):
98
+ """Design KLD (inverse PCR) primers from user-provided inputs."""
99
+ result_path = run_design_kld(
100
+ gene_fasta=gene_fasta,
101
+ context_fasta=context_fasta,
102
+ mutations_csv=mutations_csv,
103
+ output_dir=output_dir,
104
+ log_path=log_path,
105
+ )
106
+ typer.echo(f"KLD primers written to {result_path}")
107
+
108
+
69
109
  @app.command("nextera-primers", help="Generate Nextera XT primers from binding region CSV input.")
70
110
  def nextera_primers_command(
71
111
  binding_csv: Path = typer.Option(