Skip to content
Snippets Groups Projects

add an example to study the _recoding inbreeding_ phenomenon

Merged STEVAN Antoine requested to merge recoding-inbreeding into main
1 file
+ 11
8
Compare changes
  • Side-by-side
  • Inline
+ 11
8
@@ -5,7 +5,7 @@
/// const K = 10
/// const N = 2 * $K
/// const NB_MEASUREMENTS = 100
/// const MAX_T = 50
/// const MAX_T = 150
///
/// cargo run --example inbreeding -- ...[
/// $NB_BYTES,
@@ -16,7 +16,7 @@
/// --test-case end-to-end
/// ] | lines | into float | save --force baseline.nuon
///
/// 0..3 | each {|i|
/// seq 2 $K | reverse | each {|r|
/// let inbreeding = cargo run --example inbreeding -- ...[
/// $NB_BYTES,
/// -k $K
@@ -24,28 +24,31 @@
/// --nb-measurements $NB_MEASUREMENTS
/// -t $MAX_T
/// --test-case recoding
/// -r ($K - $i)
/// -r $r
/// ] | lines | into float
///
/// {
/// r: ($K - $i),
/// r: $r,
/// inbreeding: $inbreeding,
/// }
/// } | save --force res.nuon
/// } | save --force inbreeding.nuon
/// ```
/// - plot the results
/// ```nushell
/// let data = open inbreeding.nuon
/// let k = $data.r | math max
/// let w = 10
/// let w = 3
/// let l = $data.inbreeding.0 | length
///
/// use std repeat
///
/// let raw = $data | update inbreeding { take ($l - $w + 1)}
/// let smooth = $data | update inbreeding { window $w | each { math avg } }
/// let smooth = $data | update inbreeding { prepend (1 | repeat $w) | window $w | each { math avg } }
///
/// $smooth
/// | insert name {|it|
/// if $it.r == $k { "$k$" } else { $"$k - ($k - $it.r)$" }
/// let r = if $it.r == $k { "k" } else { $"k - ($k - $it.r)" }
/// $"$r = ($r)$"
/// }
/// | append ($raw | insert name null | insert style { line: { alpha: 0.1 } })
/// | update inbreeding {|it|
Loading