Skip to content

Commit

Permalink
fix: consistently return Options for String results
Browse files Browse the repository at this point in the history
  • Loading branch information
a-frantz committed Feb 12, 2024
1 parent e1473a6 commit 42d09dc
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 40 deletions.
2 changes: 1 addition & 1 deletion src/derive/encoding/compute.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ pub struct DerivedEncodingResult {
/// Whether or not the `ngs derive encoding` subcommand succeeded.
pub succeeded: bool,

/// The detected quality score encoding, if available.
/// The detected quality score encoding, if derivable.
pub encoding: Option<String>,

/// The minimum quality score observed.
Expand Down
30 changes: 15 additions & 15 deletions src/derive/endedness/compute.rs
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ fn predict_endedness(
return results::ReadGroupDerivedEndednessResult::new(
read_group_name,
false,
"Unknown".to_string(),
None,
rg_ordering_flags.clone(),
reads_per_template,
);
Expand All @@ -167,7 +167,7 @@ fn predict_endedness(
let mut result = results::ReadGroupDerivedEndednessResult::new(
read_group_name,
false,
"Unknown".to_string(),
None,
rg_ordering_flags.clone(),
reads_per_template,
);
Expand All @@ -178,12 +178,12 @@ fn predict_endedness(
Some(rpt) => {
if rpt == 1.0 || (round_rpt && rpt.round() as usize == 1) {
result.succeeded = true;
result.endedness = String::from("Single-End");
result.endedness = Some(String::from("Single-End"));
}
}
None => {
result.succeeded = true;
result.endedness = String::from("Single-End");
result.endedness = Some(String::from("Single-End"));
}
}
return result;
Expand Down Expand Up @@ -243,12 +243,12 @@ fn predict_endedness(
Some(rpt) => {
if rpt == 2.0 || (round_rpt && rpt.round() as usize == 2) {
result.succeeded = true;
result.endedness = String::from("Paired-End");
result.endedness = Some(String::from("Paired-End"));
}
}
None => {
result.succeeded = true;
result.endedness = String::from("Paired-End");
result.endedness = Some(String::from("Paired-End"));
}
}
}
Expand Down Expand Up @@ -330,7 +330,7 @@ mod tests {
false,
);
assert!(result.succeeded);
assert_eq!(result.endedness, "Paired-End");
assert_eq!(result.endedness, Some("Paired-End".to_string()));
assert_eq!(result.first, 1);
assert_eq!(result.last, 1);
assert_eq!(result.both, 0);
Expand Down Expand Up @@ -361,7 +361,7 @@ mod tests {
false,
);
assert!(result.succeeded);
assert_eq!(result.endedness, "Single-End");
assert_eq!(result.endedness, Some("Single-End".to_string()));
assert_eq!(result.first, 0);
assert_eq!(result.last, 0);
assert_eq!(result.both, 0);
Expand All @@ -381,7 +381,7 @@ mod tests {
false,
);
assert!(!result.succeeded);
assert_eq!(result.endedness, "Unknown");
assert_eq!(result.endedness, None);
assert_eq!(result.first, 0);
assert_eq!(result.last, 0);
assert_eq!(result.both, 0);
Expand All @@ -404,7 +404,7 @@ mod tests {
);
let result = predict(ordering_flags, HashMap::new(), 0.0, false);
assert!(!result.succeeded);
assert_eq!(result.endedness, "Unknown");
assert_eq!(result.endedness, None);
assert_eq!(result.first, 1);
assert_eq!(result.last, 0);
assert_eq!(result.both, 0);
Expand All @@ -428,7 +428,7 @@ mod tests {
);
let result = predict(ordering_flags, HashMap::new(), 0.0, false);
assert!(!result.succeeded);
assert_eq!(result.endedness, "Unknown");
assert_eq!(result.endedness, None);
assert_eq!(result.first, 0);
assert_eq!(result.last, 1);
assert_eq!(result.both, 0);
Expand All @@ -452,7 +452,7 @@ mod tests {
);
let result = predict(ordering_flags, HashMap::new(), 0.0, false);
assert!(!result.succeeded);
assert_eq!(result.endedness, "Unknown");
assert_eq!(result.endedness, None);
assert_eq!(result.first, 0);
assert_eq!(result.last, 0);
assert_eq!(result.both, 1);
Expand All @@ -476,7 +476,7 @@ mod tests {
);
let result = predict(ordering_flags, HashMap::new(), 0.0, false);
assert!(!result.succeeded);
assert_eq!(result.endedness, "Unknown");
assert_eq!(result.endedness, None);
assert_eq!(result.first, 0);
assert_eq!(result.last, 0);
assert_eq!(result.both, 0);
Expand All @@ -500,7 +500,7 @@ mod tests {
);
let result = predict(ordering_flags, HashMap::new(), 0.0, false);
assert!(result.succeeded);
assert_eq!(result.endedness, "Paired-End");
assert_eq!(result.endedness, Some("Paired-End".to_string()));
assert_eq!(result.first, 1);
assert_eq!(result.last, 1);
assert_eq!(result.both, 0);
Expand Down Expand Up @@ -600,7 +600,7 @@ mod tests {
);
let result = predict(ordering_flags, read_names, 0.0, false);
assert!(!result.succeeded);
assert_eq!(result.endedness, "Unknown");
assert_eq!(result.endedness, None);
assert_eq!(result.unsegmented, 2);
assert_eq!(result.first, 8);
assert_eq!(result.last, 8);
Expand Down
12 changes: 6 additions & 6 deletions src/derive/endedness/results.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ pub struct ReadGroupDerivedEndednessResult {
/// Whether or not an endedness was determined for this read group.
pub succeeded: bool,

/// The endedness of this read group or "Unknown".
pub endedness: String,
/// The endedness of this read group, if derivable.
pub endedness: Option<String>,

/// The number of reads without 0x1 set.
pub unsegmented: usize,
Expand All @@ -42,7 +42,7 @@ impl ReadGroupDerivedEndednessResult {
pub fn new(
read_group: String,
succeeded: bool,
endedness: String,
endedness: Option<String>,
counts: OrderingFlagsCounts,
rpt: Option<f64>,
) -> Self {
Expand All @@ -67,8 +67,8 @@ pub struct DerivedEndednessResult {
/// Whether or not the `ngs derive endedness` subcommand succeeded.
pub succeeded: bool,

/// The overall endedness of the file or "Unknown".
pub endedness: String,
/// The overall endedness, if derivable.
pub endedness: Option<String>,

/// The number of reads without 0x1 set.
pub unsegmented: usize,
Expand Down Expand Up @@ -99,7 +99,7 @@ impl DerivedEndednessResult {
/// Creates a new [`DerivedEndednessResult`].
pub fn new(
succeeded: bool,
endedness: String,
endedness: Option<String>,
counts: OrderingFlagsCounts,
rpt: Option<f64>,
read_groups: Vec<ReadGroupDerivedEndednessResult>,
Expand Down
2 changes: 1 addition & 1 deletion src/derive/instrument/compute.rs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ pub struct DerivedInstrumentResult {
pub succeeded: bool,

/// The possible instruments detected by `ngs derive instrument`, if
/// available.
/// derivable.
pub instruments: Option<HashSet<String>>,

/// The level of confidence that the tool has concerning these results.
Expand Down
2 changes: 1 addition & 1 deletion src/derive/readlen/compute.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ pub struct DerivedReadlenResult {
/// Whether or not the `ngs derive readlen` subcommand succeeded.
pub succeeded: bool,

/// The concsensus read length, if available.
/// The consensus read length, if derivable.
pub consensus_read_length: Option<usize>,

/// The majority vote percentage of the consensus read length.
Expand Down
20 changes: 10 additions & 10 deletions src/derive/strandedness/compute.rs
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ pub fn predict_strandedness(
return results::ReadGroupDerivedStrandednessResult {
read_group: rg_name.to_string(),
succeeded: false,
strandedness: "Inconclusive".to_string(),
strandedness: None,
total: 0,
forward: 0,
reverse: 0,
Expand All @@ -300,22 +300,22 @@ pub fn predict_strandedness(
let mut result = results::ReadGroupDerivedStrandednessResult::new(
rg_name.to_string(),
false,
"Inconclusive".to_string(),
None,
counts.forward,
counts.reverse,
);

if result.forward_pct > STRANDED_THRESHOLD {
result.succeeded = true;
result.strandedness = "Forward".to_string();
result.strandedness = Some("Forward".to_string());
} else if result.reverse_pct > STRANDED_THRESHOLD {
result.succeeded = true;
result.strandedness = "Reverse".to_string();
result.strandedness = Some("Reverse".to_string());
} else if result.forward_pct > UNSTRANDED_THRESHOLD && result.reverse_pct > UNSTRANDED_THRESHOLD
{
result.succeeded = true;
result.strandedness = "Unstranded".to_string();
} // else Inconclusive
result.strandedness = Some("Unstranded".to_string());
} // else did not succeed

result
}
Expand Down Expand Up @@ -541,7 +541,7 @@ mod tests {
};
let result = predict_strandedness("rg1", &counts);
assert!(result.succeeded);
assert_eq!(result.strandedness, "Reverse");
assert_eq!(result.strandedness, Some("Reverse".to_string()));
assert_eq!(result.forward, 10);
assert_eq!(result.reverse, 90);
assert_eq!(result.forward_pct, 10.0);
Expand All @@ -553,7 +553,7 @@ mod tests {
};
let result = predict_strandedness("rg1", &counts);
assert!(result.succeeded);
assert_eq!(result.strandedness, "Unstranded");
assert_eq!(result.strandedness, Some("Unstranded".to_string()));
assert_eq!(result.forward, 50);
assert_eq!(result.reverse, 50);
assert_eq!(result.forward_pct, 50.0);
Expand All @@ -565,7 +565,7 @@ mod tests {
};
let result = predict_strandedness("rg1", &counts);
assert!(result.succeeded);
assert_eq!(result.strandedness, "Forward");
assert_eq!(result.strandedness, Some("Forward".to_string()));
assert_eq!(result.forward, 90);
assert_eq!(result.reverse, 10);
assert_eq!(result.forward_pct, 90.0);
Expand All @@ -577,7 +577,7 @@ mod tests {
};
let result = predict_strandedness("rg1", &counts);
assert!(!result.succeeded);
assert_eq!(result.strandedness, "Inconclusive");
assert_eq!(result.strandedness, None);
assert_eq!(result.forward, 0);
assert_eq!(result.reverse, 0);
assert_eq!(result.forward_pct, 0.0);
Expand Down
12 changes: 6 additions & 6 deletions src/derive/strandedness/results.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ pub struct ReadGroupDerivedStrandednessResult {
/// Whether or not strandedness was determined for this read group.
pub succeeded: bool,

/// The strandedness of this read group or "Inconclusive".
pub strandedness: String,
/// The strandedness of this read group, if derivable.
pub strandedness: Option<String>,

/// The total number of reads in this read group.
pub total: usize,
Expand All @@ -109,7 +109,7 @@ impl ReadGroupDerivedStrandednessResult {
pub fn new(
read_group: String,
succeeded: bool,
strandedness: String,
strandedness: Option<String>,
forward: usize,
reverse: usize,
) -> Self {
Expand All @@ -133,8 +133,8 @@ pub struct DerivedStrandednessResult {
/// Whether or not the `ngs derive strandedness` subcommand succeeded.
pub succeeded: bool,

/// The strandedness of this read group or "Inconclusive".
pub strandedness: String,
/// The strandedness of this read group, if derivable.
pub strandedness: Option<String>,

/// The total number of reads.
pub total: usize,
Expand Down Expand Up @@ -173,7 +173,7 @@ impl DerivedStrandednessResult {
/// Creates a new [`DerivedStrandednessResult`].
pub fn new(
succeeded: bool,
strandedness: String,
strandedness: Option<String>,
forward: usize,
reverse: usize,
read_groups: Vec<ReadGroupDerivedStrandednessResult>,
Expand Down

0 comments on commit 42d09dc

Please sign in to comment.