|
@@ -249,17 +249,17 @@ pub enum VepConsequence {
|
|
|
/// Deletion of a regulatory region
|
|
/// Deletion of a regulatory region
|
|
|
RegulatoryRegionAblation,
|
|
RegulatoryRegionAblation,
|
|
|
/// Amplification of a regulatory region
|
|
/// Amplification of a regulatory region
|
|
|
-RegulatoryRegionAmplification,
|
|
|
|
|
-/// Variant causing a feature to be extended
|
|
|
|
|
-FeatureElongation,
|
|
|
|
|
-/// Variant in a regulatory region
|
|
|
|
|
-RegulatoryRegionVariant,
|
|
|
|
|
-/// Variant causing a feature to be shortened
|
|
|
|
|
-FeatureTruncation,
|
|
|
|
|
-/// Variant in intergenic region
|
|
|
|
|
-IntergenicVariant,
|
|
|
|
|
-/// General sequence variant
|
|
|
|
|
-SequenceVariant,
|
|
|
|
|
|
|
+ RegulatoryRegionAmplification,
|
|
|
|
|
+ /// Variant causing a feature to be extended
|
|
|
|
|
+ FeatureElongation,
|
|
|
|
|
+ /// Variant in a regulatory region
|
|
|
|
|
+ RegulatoryRegionVariant,
|
|
|
|
|
+ /// Variant causing a feature to be shortened
|
|
|
|
|
+ FeatureTruncation,
|
|
|
|
|
+ /// Variant in intergenic region
|
|
|
|
|
+ IntergenicVariant,
|
|
|
|
|
+ /// General sequence variant
|
|
|
|
|
+ SequenceVariant,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// Represents the severity of a variant's impact as predicted by the
|
|
/// Represents the severity of a variant's impact as predicted by the
|
|
@@ -268,27 +268,27 @@ SequenceVariant,
|
|
|
/// The impact categories are ordered from most severe (HIGH) to least severe (MODIFIER).
|
|
/// The impact categories are ordered from most severe (HIGH) to least severe (MODIFIER).
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Encode, Decode)]
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Encode, Decode)]
|
|
|
pub enum VepImpact {
|
|
pub enum VepImpact {
|
|
|
-/// High impact variants are expected to have high (disruptive) impact in the protein,
|
|
|
|
|
-/// probably causing protein truncation, loss of function or triggering nonsense mediated decay.
|
|
|
|
|
-HIGH,
|
|
|
|
|
-/// Moderate impact variants are non-disruptive variants that might change protein effectiveness.
|
|
|
|
|
-MODERATE,
|
|
|
|
|
-/// Low impact variants are mostly harmless or unlikely to change protein behavior.
|
|
|
|
|
-LOW,
|
|
|
|
|
-/// Modifier variants are usually non-coding variants or variants affecting non-coding genes,
|
|
|
|
|
-/// where predictions are difficult or there is no evidence of impact.
|
|
|
|
|
-MODIFIER,
|
|
|
|
|
|
|
+ /// High impact variants are expected to have high (disruptive) impact in the protein,
|
|
|
|
|
+ /// probably causing protein truncation, loss of function or triggering nonsense mediated decay.
|
|
|
|
|
+ HIGH,
|
|
|
|
|
+ /// Moderate impact variants are non-disruptive variants that might change protein effectiveness.
|
|
|
|
|
+ MODERATE,
|
|
|
|
|
+ /// Low impact variants are mostly harmless or unlikely to change protein behavior.
|
|
|
|
|
+ LOW,
|
|
|
|
|
+ /// Modifier variants are usually non-coding variants or variants affecting non-coding genes,
|
|
|
|
|
+ /// where predictions are difficult or there is no evidence of impact.
|
|
|
|
|
+ MODIFIER,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
impl Display for VepImpact {
|
|
impl Display for VepImpact {
|
|
|
-fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
|
|
|
- write!(
|
|
|
|
|
- f,
|
|
|
|
|
- "{}",
|
|
|
|
|
- match self {
|
|
|
|
|
- VepImpact::HIGH => "HIGH",
|
|
|
|
|
- VepImpact::MODERATE => "MODERATE",
|
|
|
|
|
- VepImpact::LOW => "LOW",
|
|
|
|
|
|
|
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
|
|
|
+ write!(
|
|
|
|
|
+ f,
|
|
|
|
|
+ "{}",
|
|
|
|
|
+ match self {
|
|
|
|
|
+ VepImpact::HIGH => "HIGH",
|
|
|
|
|
+ VepImpact::MODERATE => "MODERATE",
|
|
|
|
|
+ VepImpact::LOW => "LOW",
|
|
|
VepImpact::MODIFIER => "MODIFIER",
|
|
VepImpact::MODIFIER => "MODIFIER",
|
|
|
}
|
|
}
|
|
|
)
|
|
)
|
|
@@ -649,6 +649,16 @@ pub struct VepJob {
|
|
|
config: Config,
|
|
config: Config,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+impl VepJob {
|
|
|
|
|
+ pub fn new(in_path: &str, out_path: &str, config: &Config) -> Self {
|
|
|
|
|
+ VepJob {
|
|
|
|
|
+ in_vcf: in_path.into(),
|
|
|
|
|
+ out_vcf: out_path.into(),
|
|
|
|
|
+ config: config.clone(),
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
impl JobCommand for VepJob {
|
|
impl JobCommand for VepJob {
|
|
|
fn cmd(&self) -> String {
|
|
fn cmd(&self) -> String {
|
|
|
let bind_flags = singularity_bind_flags([
|
|
let bind_flags = singularity_bind_flags([
|