use std::path::PathBuf;
use anyhow::Result;
use clap::Args;
use crate::output::Format;
use crate::predict::AlphaGenomeClient;
#[derive(Args)]
pub struct PredictArgs {
#[arg(required = true, num_args = 1..)]
pub variants: Vec<String>,
#[arg(short, long, default_value = "human")]
pub format: Format,
#[arg(long, value_delimiter = ',')]
pub tracks: Option<Vec<String>>,
#[arg(long)]
pub vcf: Option<PathBuf>,
#[arg(long, default_value = "10")]
pub top: usize,
}
impl PredictArgs {
pub async fn run(self) -> Result<()> {
let client = AlphaGenomeClient::new()?;
for variant_str in &self.variants {
let prediction = client.predict_variant(variant_str).await?;
prediction.print(self.format.clone())?;
}
Ok(())
}
}