Thomas hai 1 ano
pai
achega
6b40e0d638
Modificáronse 6 ficheiros con 71 adicións e 75 borrados
  1. 12 0
      Cargo.lock
  2. 1 0
      Cargo.toml
  3. 0 44
      gg.txt
  4. 0 2
      ggg.txt
  5. 58 22
      src/lib.rs
  6. 0 7
      test_14.bed

+ 12 - 0
Cargo.lock

@@ -568,6 +568,7 @@ dependencies = [
  "rayon",
  "rust-htslib 0.46.0",
  "seq_io",
+ "test-env-log",
  "test-log",
  "uuid",
 ]
@@ -2575,6 +2576,17 @@ dependencies = [
  "winapi-util",
 ]
 
+[[package]]
+name = "test-env-log"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877189d680101869f65ef94168105d6c188b3a143c13a2d42cf8a09c4c704f8a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
 [[package]]
 name = "test-log"
 version = "0.2.15"

+ 1 - 0
Cargo.toml

@@ -7,6 +7,7 @@ edition = "2021"
 
 [dependencies]
 env_logger = "^0.10.1"
+test-env-log = "0.2.8"
 minimap2 = { git = "https://github.com/jguhlin/minimap2-rs", features = ["htslib", "simde"]}
 aligner_client = { git = "https://git.t0m4.fr/Thomas/aligner_client.git"}
 rust-htslib = "0.46.0"

+ 0 - 44
gg.txt

@@ -1,44 +0,0 @@
-[chr7:144_161_537►▌▐►chr6:32_688_062---chr6:32_688_356►▌▐◄chr7:27_304_522]
-[chr12:7_450_998►▌▐◄chr18:45_149_792---chr18:45_149_889◄▌▐◄chr7:92_831_150]
-[chr6:51_717_851◄▌▐◄chr9:122_962_783---chr9:122_968_829◄▌▐◄chr6:51_717_832]
-[chr7:144_161_537►▌▐►chr6:32_688_062---chr6:32_688_356►▌▐◄chr7:27_304_522]
-[chr7:144_161_537►▌▐►chr6:32_688_062---chr6:32_688_356►▌▐◄chr7:27_304_522]
-[chr7:27_304_520◄▌▐►chr7:144_128_326]
-
-chr12:7_450_998
-
-chr15:38_367_687
-
-chr6:51_717_832
-chr6:51_717_851
-
-A chr7:22_921_834
-B chr7:22_921_845
-C chr7:26_348_338
-D chr7:27_304_520
-E chr7:27_304_522
-F chr7:27_315_897
-G chr7:92_831_150
-H chr7:144_128_326
-I chr7:144_153_175
-J chr7:144_161_537
-
-[A -> chrX (300pbinv) -> B] 
-[chr7:22_921_834delins[chrX:66_758_507_66_758_751inv;chr7:22_921_845]]
-[chr7:22_921_845◄▌▐►chrX:66_758_507---chrX:66_758_751►▌▐◄chr7:22_921_834]
-
-[ chr15 <-> C ]
-[chr15:38_367_687◄▌▐►chr7:26_348_338]
-
-[ D <-> H ]
-[chr7:27_304_520◄▌▐►chr7:144_128_326]
-
-[ E -> chr6 (300pb)inv <- J ]
-[chr7:144_161_537►▌▐►chr6:32_688_062---chr6:32_688_356►▌▐◄chr7:27_304_522]
-
-[ F -> chr6 (300bp)dup <- I ]
-[chr7:27_315_897►▌▐◄chr6:32_688_062---chr6:32_688_356◄▌▐◄chr7:144_153_175]
-
-[ G -> chr12]
-[chr12:7_450_998►▌▐◄chr18:45_149_792---chr18:45_149_889◄▌▐◄chr7:92_831_150]
-

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 2
ggg.txt


+ 58 - 22
src/lib.rs

@@ -990,6 +990,7 @@ pub fn dot_graph_biall(
 
 #[cfg(test)]
 mod tests {
+    use env_logger::Env;
 
     use dashmap::DashSet;
     use indicatif::MultiProgress;
@@ -1002,6 +1003,12 @@ mod tests {
         phase::{merge_phases, variants_phasing, write_phases_bed, HeteroVar, Phase},
     };
 
+    fn init() {
+        let _ = env_logger::Builder::from_env(Env::default().default_filter_or("info"))
+            .is_test(true)
+            .try_init();
+    }
+
     #[test]
     fn it_works() -> Result<()> {
         let _ = env_logger::builder().is_test(true).try_init();
@@ -1030,16 +1037,23 @@ mod tests {
 
     #[test]
     fn test_graph() -> Result<()> {
-        let chrom = vec!["chr9", "chr11"];
-        let dir = "/data/longreads_basic_pipe/ROBIN/diag/neo_contigs";
+        init();
+
+        let case = "MERY";
+        let chrom = vec!["chr7"];
+        info!("This record will be captured by `cargo test`");
+
+        let dir = format!("/data/longreads_basic_pipe/{case}/diag/neo_contigs");
 
         // Load from fasta in dir.
-        let genome = Genome::from_contigs_sequences(dir)?;
+        let genome = Genome::from_contigs_sequences(&dir)?;
+        genome.stats();
         let mut genomic_graph = GenomicGraph::from_genome(&genome);
 
         let sens = vec![true, false];
         let pos = vec![0, i32::MAX];
         let mut all_ways = Vec::new();
+        if chrom.len() > 1 {
         (0..4).into_iter().for_each(|i| {
             let start_pos = if i < 2 { 0 } else { i32::MAX };
             let end_pos = pos[i % 2];
@@ -1047,27 +1061,49 @@ mod tests {
             (0..4).into_iter().for_each(|i| {
                 let start_sens = if i < 2 { true } else { false };
                 let end_sens = sens[i % 2];
-
-                (0..4).into_iter().for_each(|i| {
-                    let start_chr = if i < 2 { chrom[0] } else { chrom[1] };
-                    let end_chr = chrom[i % 2];
-                    let start = (start_sens, start_chr, start_pos);
-                    let end = (end_sens, end_chr, end_pos);
-
-                    let (_oriented_graph, _integrated_graph, ways) = genomic_graph.ways(start, end);
-                    // let dot = oriented_graph.dot_graph();
-
-                    for (_i, way) in ways.iter().enumerate() {
-                        let s = way
-                            .iter()
-                            .map(|(_, _, _, s)| s.to_string())
-                            .collect::<Vec<String>>()
-                            .join("");
-                        all_ways.push(s);
-                    }
-                });
+                    (0..4).into_iter().for_each(|i| {
+                        let start_chr = if i < 2 { chrom[0] } else { chrom[1] };
+                        let end_chr = chrom[i % 2];
+                        let start = (start_sens, start_chr, start_pos);
+                        let end = (end_sens, end_chr, end_pos);
+
+                        let (oriented_graph, _integrated_graph, ways) =
+                            genomic_graph.ways(start, end);
+
+                        let dot = oriented_graph.dot_graph();
+                        println!("dot\n{dot}");
+
+                        for (_i, way) in ways.iter().enumerate() {
+                            let s = way
+                                .iter()
+                                .map(|(_, _, _, s)| s.to_string())
+                                .collect::<Vec<String>>()
+                                .join("");
+                            all_ways.push(s);
+                        }
+                    });
             });
         });
+        } else {
+            let start_chr = chrom[0];
+            let end_chr = chrom[0];
+            let start = (true, start_chr, 0);
+            let end = (true, end_chr, i32::MAX);
+
+            let (oriented_graph, _integrated_graph, ways) = genomic_graph.ways(start, end);
+
+            let dot = oriented_graph.dot_graph();
+            println!("dot\n{dot}");
+
+            for (_i, way) in ways.iter().enumerate() {
+                let s = way
+                    .iter()
+                    .map(|(_, _, _, s)| s.to_string())
+                    .collect::<Vec<String>>()
+                    .join("");
+                all_ways.push(s);
+            }
+        }
 
         all_ways.dedup();
         all_ways

+ 0 - 7
test_14.bed

@@ -1,7 +0,0 @@
-
-running 1 test
-test tests::phasing has been running for over 60 seconds
-test tests::phasing ... ok
-
-test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 8379.66s
-

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio