|
|
@@ -175,6 +175,7 @@ pub enum Track {
|
|
|
Bam(BamTrack),
|
|
|
Genes(GenesTrack),
|
|
|
Variants(VariantsTrack),
|
|
|
+ Bed(BedTrack),
|
|
|
}
|
|
|
|
|
|
impl Track {
|
|
|
@@ -183,6 +184,7 @@ impl Track {
|
|
|
Track::Bam(bam) => json!(bam),
|
|
|
Track::Genes(genes) => json!(genes),
|
|
|
Track::Variants(variants) => json!(variants),
|
|
|
+ Track::Bed(bed) => json!(bed),
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -191,6 +193,7 @@ impl Track {
|
|
|
Track::Bam(track) => track.order = order,
|
|
|
Track::Genes(track) => track.order = order,
|
|
|
Track::Variants(track) => track.order = order,
|
|
|
+ Track::Bed(track) => track.order = order,
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -205,6 +208,7 @@ pub struct GenesTrack {
|
|
|
|
|
|
#[default = "gff3"]
|
|
|
pub format: String,
|
|
|
+
|
|
|
#[default = ""]
|
|
|
pub url: String,
|
|
|
|
|
|
@@ -293,6 +297,36 @@ impl VariantsTrack {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+#[derive(Debug, Serialize, SmartDefault)]
|
|
|
+pub struct BedTrack {
|
|
|
+ #[default = "annotation"]
|
|
|
+ #[serde(rename = "type")]
|
|
|
+ pub igv_type: String,
|
|
|
+
|
|
|
+ #[default = "bed"]
|
|
|
+ pub format: String,
|
|
|
+
|
|
|
+ #[default = "EXPANDED"]
|
|
|
+ #[serde(rename = "displayMode")]
|
|
|
+ pub display_mode: String,
|
|
|
+
|
|
|
+ #[default = 0]
|
|
|
+ pub order: i16,
|
|
|
+
|
|
|
+ pub name: String,
|
|
|
+ pub url: String,
|
|
|
+}
|
|
|
+
|
|
|
+impl BedTrack {
|
|
|
+ pub fn new(name: &str, url: &str) -> Self {
|
|
|
+ Self {
|
|
|
+ name: name.to_string(),
|
|
|
+ url: url.to_string(),
|
|
|
+ ..Default::default()
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
#[cfg(test)]
|
|
|
mod tests {
|
|
|
use super::*;
|