|
|
@@ -1,5 +1,5 @@
|
|
|
use std::error::Error;
|
|
|
-use std::fs::{File, OpenOptions};
|
|
|
+use std::fs::File;
|
|
|
use std::io::{BufReader, BufRead};
|
|
|
use std::sync::{Arc, Mutex};
|
|
|
|
|
|
@@ -13,9 +13,9 @@ use std::io::Write;
|
|
|
use indicatif::{ProgressBar, ProgressStyle};
|
|
|
|
|
|
fn main() -> Result<(), Box<dyn Error>> {
|
|
|
- let filename = "/Turbine-pool/LAL-T_ChIP/data/all_sub_genes.tsv";
|
|
|
+ let filename = "/Turbine-pool/LAL-T_ChIP/data/all_val_genes_peaks.tsv";
|
|
|
let enhancer_prefix = "EH38E";
|
|
|
- let res_tsv = "/Turbine-pool/LAL-T_ChIP/data/correlations_enh_rnas.tsv";
|
|
|
+ let res_tsv = "/Turbine-pool/LAL-T_ChIP/data/correlations_genes_peaks.tsv";
|
|
|
|
|
|
let file = File::open(filename)?;
|
|
|
let reader = BufReader::new(file);
|
|
|
@@ -67,6 +67,8 @@ fn main() -> Result<(), Box<dyn Error>> {
|
|
|
}
|
|
|
writeln!(file)?; // \n
|
|
|
|
|
|
+ let file_gard = Arc::new(Mutex::new(file));
|
|
|
+
|
|
|
// let best_corr: Arc<Mutex<HashMap<String, (f32, Vec<String>)>>> = Arc::new(Mutex::new(HashMap::new()));
|
|
|
|
|
|
let enhancers_to_rnas: Arc<Mutex<HashMap<String, HashMap<String, f32>>>> = Arc::new(Mutex::new(HashMap::new()));
|
|
|
@@ -119,11 +121,13 @@ fn main() -> Result<(), Box<dyn Error>> {
|
|
|
|
|
|
if enhancers_to_rnas_guard.len() > 100 {
|
|
|
bar.set_message(format!("Writing {}", res_tsv));
|
|
|
- let mut file = OpenOptions::new()
|
|
|
- .write(true)
|
|
|
- .append(true)
|
|
|
- .open(res_tsv)
|
|
|
- .unwrap();
|
|
|
+ // let mut file = OpenOptions::new()
|
|
|
+ // .write(true)
|
|
|
+ // .append(true)
|
|
|
+ // .open(res_tsv)
|
|
|
+ // .unwrap();
|
|
|
+
|
|
|
+ let mut file = file_gard.lock().unwrap();
|
|
|
|
|
|
// Iterate over the enhancers
|
|
|
for (enhancer, inner_map) in enhancers_to_rnas_guard.iter() {
|
|
|
@@ -155,7 +159,9 @@ fn main() -> Result<(), Box<dyn Error>> {
|
|
|
);
|
|
|
bar.set_message("Writing output.tsv");
|
|
|
|
|
|
- let mut file = File::create(res_tsv)?;
|
|
|
+ // let mut file = File::create(res_tsv)?;
|
|
|
+ let mut file = file_gard.lock().unwrap();
|
|
|
+
|
|
|
// Iterate over the enhancers
|
|
|
for (enhancer, inner_map) in enhancers_to_rnas_guard.iter() {
|
|
|
write!(file, "{}\t", enhancer)?;
|