| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- use serde::{Deserialize, Serialize};
- use std::str::FromStr;
- pub type ClairSInfo = String;
- #[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
- pub struct ClairSFormat {
- pub gt: String,
- pub gq: u32,
- pub dp: u32,
- pub af: f64,
- pub ad: Vec<u32>,
- pub naf: f64,
- pub ndp: u32,
- pub nad: Vec<u32>,
- pub au: u32,
- pub cu: u32,
- pub gu: u32,
- pub tu: u32,
- pub nau: u32,
- pub ncu: u32,
- pub ngu: u32,
- pub ntu: u32,
- }
- impl FromStr for ClairSFormat {
- type Err = anyhow::Error;
- fn from_str(s: &str) -> anyhow::Result<Self> {
- let vals = s.split(':').collect::<Vec<&str>>();
- Ok(ClairSFormat {
- gt: vals.get(0).unwrap().to_string(),
- gq: vals.get(1).unwrap().parse()?,
- dp: vals.get(2).unwrap().parse()?,
- af: vals.get(3).unwrap().parse()?,
- ad: vals
- .get(4)
- .unwrap()
- .split(',')
- .map(|e| e.parse().unwrap())
- .collect(),
- naf: vals.get(5).unwrap().parse()?,
- ndp: vals.get(6).unwrap().parse()?,
- nad: vals
- .get(7)
- .unwrap()
- .split(',')
- .map(|e| e.parse().unwrap())
- .collect(),
- au: vals.get(8).unwrap().parse()?,
- cu: vals.get(9).unwrap().parse()?,
- gu: vals.get(10).unwrap().parse()?,
- tu: vals.get(11).unwrap().parse()?,
- nau: vals.get(12).unwrap().parse()?,
- ncu: vals.get(13).unwrap().parse()?,
- ngu: vals.get(14).unwrap().parse()?,
- ntu: vals.get(15).unwrap().parse()?,
- })
- }
- }
|