read_recphyloxml_thickness/
read_recphyloxml_thickness.rs1use light_phylogeny::{
4 get_gtransfer, read_recphyloxml_multi, recphyloxml_processing, ArenaTree, Config, Options,
5};
6use std::env;
7
8fn main() {
9 env::set_var("RUST_LOG", "info");
10 let transfers = vec![];
11 let mut options: Options = Options::new();
12 let mut config: Config = Config::new();
13 options.verbose = true;
14 env::set_var("RUST_LOG", "info");
15
16 config.species_opacity = "0.3".to_string();
17 config.gene_opacity = "0.6".to_string();
18
19 let mut sp_tree: ArenaTree<String> = ArenaTree::default();
21 let mut gene_trees: std::vec::Vec<ArenaTree<String>> = Vec::new();
22 let mut global_roots: std::vec::Vec<usize> = Vec::new();
23 read_recphyloxml_multi(
24 "examples/concat.xml".to_string(),
25 &mut sp_tree,
26 &mut gene_trees,
27 &mut global_roots,
28 );
29
30 let nb_gntree = gene_trees.len().clone();
32 let mut gene_transfers = get_gtransfer(&mut gene_trees[0]);
33 let mut i = 1;
34 while i < nb_gntree {
35 let gene_transfer = get_gtransfer(&mut gene_trees[i]);
36 for val in gene_transfer {
37 gene_transfers.push(val);
38 }
39 i = i + 1;
40 }
41
42 println!("Transfers = {:?}", gene_transfers);
43
44 let mut selected_gene_trees: std::vec::Vec<ArenaTree<String>> = Vec::new();
45 selected_gene_trees.push(gene_trees.remove(options.thickness_gene));
46 recphyloxml_processing(
47 &mut sp_tree,
48 &mut gene_trees,
49 &mut options,
50 &config,
51 true,
52 &transfers,
53 "read_recphyloxml_threshold_1.svg".to_string(),
54 );
55 println!("Please open output file 'read_recphyloxml_threshold_1.svg' with your browser");
56
57 let mut sp_tree: ArenaTree<String> = ArenaTree::default();
59 let mut gene_trees: std::vec::Vec<ArenaTree<String>> = Vec::new();
60 let mut global_roots: std::vec::Vec<usize> = Vec::new();
61 read_recphyloxml_multi(
62 "examples/concat.xml".to_string(),
63 &mut sp_tree,
64 &mut gene_trees,
65 &mut global_roots,
66 );
67 options.thickness_flag = true;
68 recphyloxml_processing(
69 &mut sp_tree,
70 &mut selected_gene_trees,
71 &mut options,
72 &config,
73 true,
74 &gene_transfers,
75 "read_recphyloxml_threshold_2.svg".to_string(),
76 );
77 println!("Please open output file 'read_recphyloxml_threshold_2.svg' with your browser");
78
79 let mut sp_tree: ArenaTree<String> = ArenaTree::default();
81 let mut gene_trees: std::vec::Vec<ArenaTree<String>> = Vec::new();
82 let mut global_roots: std::vec::Vec<usize> = Vec::new();
83 read_recphyloxml_multi(
84 "examples/concat.xml".to_string(),
85 &mut sp_tree,
86 &mut gene_trees,
87 &mut global_roots,
88 );
89 options.thickness_flag = true;
90 options.thickness_thresh = 0;
91 options.thickness_disp_score = true;
92 options.rotate = false;
93 let mut selected_gene_trees: std::vec::Vec<ArenaTree<String>> = Vec::new();
94 selected_gene_trees.push(gene_trees.remove(options.thickness_gene));
95 recphyloxml_processing(
96 &mut sp_tree,
97 &mut selected_gene_trees,
98 &mut options,
99 &config,
100 true,
101 &gene_transfers,
102 "read_recphyloxml_threshold_3.svg".to_string(),
103 );
104 println!("Please open output file 'read_recphyloxml_threshold_3.svg' with your browser");
105
106 let mut sp_tree: ArenaTree<String> = ArenaTree::default();
108 let mut gene_trees: std::vec::Vec<ArenaTree<String>> = Vec::new();
109 let mut global_roots: std::vec::Vec<usize> = Vec::new();
110 read_recphyloxml_multi(
111 "examples/concat.xml".to_string(),
112 &mut sp_tree,
113 &mut gene_trees,
114 &mut global_roots,
115 );
116 options.thickness_flag = true;
117 options.thickness_thresh = 0;
118 options.thickness_disp_score = true;
119 options.rotate = false;
120 options.trans_end = Some("species_17".to_string());
121 let mut selected_gene_trees: std::vec::Vec<ArenaTree<String>> = Vec::new();
122 selected_gene_trees.push(gene_trees.remove(options.thickness_gene));
123 recphyloxml_processing(
124 &mut sp_tree,
125 &mut selected_gene_trees,
126 &mut options,
127 &config,
128 true,
129 &gene_transfers,
130 "read_recphyloxml_threshold_4.svg".to_string(),
131 );
132 println!("Please open output file 'read_recphyloxml_threshold_4.svg' with your browser");
133
134 let mut sp_tree: ArenaTree<String> = ArenaTree::default();
136 let mut gene_trees: std::vec::Vec<ArenaTree<String>> = Vec::new();
137 let mut global_roots: std::vec::Vec<usize> = Vec::new();
138 read_recphyloxml_multi(
139 "examples/concat.xml".to_string(),
140 &mut sp_tree,
141 &mut gene_trees,
142 &mut global_roots,
143 );
144 options.thickness_flag = true;
145 options.thickness_thresh = 0;
146 options.thickness_disp_score = true;
147 options.rotate = false;
148 options.trans_end = Some("species_18".to_string());
149 let mut selected_gene_trees: std::vec::Vec<ArenaTree<String>> = Vec::new();
150 selected_gene_trees.push(gene_trees.remove(options.thickness_gene));
151 recphyloxml_processing(
152 &mut sp_tree,
153 &mut selected_gene_trees,
154 &mut options,
155 &config,
156 true,
157 &gene_transfers,
158 "read_recphyloxml_threshold_5.svg".to_string(),
159 );
160 println!("Please open output file 'read_recphyloxml_threshold_5.svg' with your browser");
161
162 let mut sp_tree: ArenaTree<String> = ArenaTree::default();
164 let mut gene_trees: std::vec::Vec<ArenaTree<String>> = Vec::new();
165 let mut global_roots: std::vec::Vec<usize> = Vec::new();
166 read_recphyloxml_multi(
167 "examples/concat.xml".to_string(),
168 &mut sp_tree,
169 &mut gene_trees,
170 &mut global_roots,
171 );
172 options.thickness_flag = true;
173 options.thickness_thresh = 0;
174 options.thickness_disp_score = true;
175 options.rotate = false;
176 options.trans_end = None;
177 options.thickness_gene = 0;
178 let mut selected_gene_trees: std::vec::Vec<ArenaTree<String>> = Vec::new();
179 recphyloxml_processing(
181 &mut sp_tree,
182 &mut selected_gene_trees,
183 &mut options,
184 &config,
185 true,
186 &gene_transfers,
187 "read_recphyloxml_threshold_6.svg".to_string(),
188 );
189 println!("Please open output file 'read_recphyloxml_threshold_6.svg' with your browser");
190}