fix multidimensional io

This commit is contained in:
Daniel Bauer
2018-10-21 14:42:03 +02:00
parent 429224ff3f
commit c440f46a82
3 changed files with 10108 additions and 10106 deletions

View File

@@ -1,101 +1,101 @@
#x Free Energy Probability #coord1 Free Energy Probability
-3.108600 7.118166 0.003561 -3.108600 7.118166 0.003561
-3.045800 5.331290 0.007290 -3.045800 5.331290 0.007290
-2.983000 3.879241 0.013048 -2.983000 3.879241 0.013048
-2.920200 2.968659 0.018796 -2.920200 2.968659 0.018796
-2.857400 1.942494 0.028362 -2.857400 1.942494 0.028362
-2.794600 1.418408 0.034994 -2.794600 1.418408 0.034994
-2.731800 1.169398 0.038668 -2.731800 1.169398 0.038668
-2.669000 0.843024 0.044073 -2.669000 0.843024 0.044073
-2.606200 0.636021 0.047887 -2.606200 0.636021 0.047887
-2.543400 0.720123 0.046299 -2.543400 0.720123 0.046299
-2.480600 1.066434 0.040297 -2.480600 1.066434 0.040297
-2.417800 1.509855 0.033734 -2.417800 1.509855 0.033734
-2.355000 2.015549 0.027544 -2.355000 2.015549 0.027544
-2.292200 2.226942 0.025306 -2.292200 2.226942 0.025306
-2.229400 2.573176 0.022026 -2.229400 2.573176 0.022026
-2.166600 2.591946 0.021861 -2.166600 2.591946 0.021861
-2.103800 2.476835 0.022893 -2.103800 2.476835 0.022893
-2.041000 2.513953 0.022555 -2.041000 2.513953 0.022555
-1.978200 2.470032 0.022956 -1.978200 2.470032 0.022956
-1.915400 2.227585 0.025299 -1.915400 2.227585 0.025299
-1.852600 2.105310 0.026570 -1.852600 2.105310 0.026570
-1.789800 1.778779 0.030286 -1.789800 1.778779 0.030286
-1.727000 1.447127 0.034593 -1.727000 1.447127 0.034593
-1.664200 0.906384 0.042968 -1.664200 0.906384 0.042968
-1.601400 0.304263 0.054699 -1.601400 0.304263 0.054699
-1.538600 0.247397 0.055960 -1.538600 0.247397 0.055960
-1.475800 0.000000 0.061795 -1.475800 0.000000 0.061795
-1.413000 0.536142 0.049843 -1.413000 0.536142 0.049843
-1.350200 1.428046 0.034859 -1.350200 1.428046 0.034859
-1.287400 2.398149 0.023627 -1.287400 2.398149 0.023627
-1.224600 3.784647 0.013552 -1.224600 3.784647 0.013552
-1.161800 5.696583 0.006297 -1.161800 5.696583 0.006297
-1.099000 7.656158 0.002870 -1.099000 7.656158 0.002870
-1.036200 9.955000 0.001142 -1.036200 9.955000 0.001142
-0.973400 12.357407 0.000436 -0.973400 12.357407 0.000436
-0.910600 14.954254 0.000154 -0.910600 14.954254 0.000154
-0.847800 17.745327 0.000050 -0.847800 17.745327 0.000050
-0.785000 20.559461 0.000016 -0.785000 20.559461 0.000016
-0.722200 22.783560 0.000007 -0.722200 22.783560 0.000007
-0.659400 25.175865 0.000003 -0.659400 25.175865 0.000003
-0.596600 26.419980 0.000002 -0.596600 26.419980 0.000002
-0.533800 27.885999 0.000001 -0.533800 27.885999 0.000001
-0.471000 29.029334 0.000001 -0.471000 29.029334 0.000001
-0.408200 30.366556 0.000000 -0.408200 30.366556 0.000000
-0.345400 31.615252 0.000000 -0.345400 31.615252 0.000000
-0.282600 32.781716 0.000000 -0.282600 32.781716 0.000000
-0.219800 33.731378 0.000000 -0.219800 33.731378 0.000000
-0.157000 34.476014 0.000000 -0.157000 34.476014 0.000000
-0.094200 35.387300 0.000000 -0.094200 35.387300 0.000000
-0.031400 35.579756 0.000000 -0.031400 35.579756 0.000000
0.031400 35.520194 0.000000 0.031400 35.520194 0.000000
0.094200 35.344763 0.000000 0.094200 35.344763 0.000000
0.157000 34.886460 0.000000 0.157000 34.886460 0.000000
0.219800 33.633998 0.000000 0.219800 33.633998 0.000000
0.282600 32.686511 0.000000 0.282600 32.686511 0.000000
0.345400 31.211777 0.000000 0.345400 31.211777 0.000000
0.408200 29.680451 0.000000 0.408200 29.680451 0.000000
0.471000 28.032242 0.000001 0.471000 28.032242 0.000001
0.533800 26.439599 0.000002 0.533800 26.439599 0.000002
0.596600 24.432467 0.000003 0.596600 24.432467 0.000003
0.659400 22.309893 0.000008 0.659400 22.309893 0.000008
0.722200 20.186040 0.000019 0.722200 20.186040 0.000019
0.785000 18.295046 0.000040 0.785000 18.295046 0.000040
0.847800 16.221232 0.000093 0.847800 16.221232 0.000093
0.910600 14.251911 0.000204 0.910600 14.251911 0.000204
0.973400 12.562353 0.000402 0.973400 12.562353 0.000402
1.036200 11.184029 0.000698 1.036200 11.184029 0.000698
1.099000 10.040677 0.001103 1.099000 10.040677 0.001103
1.161800 9.369064 0.001444 1.161800 9.369064 0.001444
1.224600 9.095392 0.001612 1.224600 9.095392 0.001612
1.287400 9.256035 0.001511 1.287400 9.256035 0.001511
1.350200 9.814068 0.001208 1.350200 9.814068 0.001208
1.413000 10.945207 0.000768 1.413000 10.945207 0.000768
1.475800 12.518898 0.000409 1.475800 12.518898 0.000409
1.538600 14.409744 0.000191 1.538600 14.409744 0.000191
1.601400 16.451965 0.000084 1.601400 16.451965 0.000084
1.664200 18.589166 0.000036 1.664200 18.589166 0.000036
1.727000 20.669504 0.000016 1.727000 20.669504 0.000016
1.789800 22.804791 0.000007 1.789800 22.804791 0.000007
1.852600 24.531690 0.000003 1.852600 24.531690 0.000003
1.915400 26.182612 0.000002 1.915400 26.182612 0.000002
1.978200 27.279439 0.000001 1.978200 27.279439 0.000001
2.041000 28.571380 0.000001 2.041000 28.571380 0.000001
2.103800 29.328969 0.000000 2.103800 29.328969 0.000000
2.166600 29.897739 0.000000 2.166600 29.897739 0.000000
2.229400 30.320908 0.000000 2.229400 30.320908 0.000000
2.292200 30.065391 0.000000 2.292200 30.065391 0.000000
2.355000 29.809137 0.000000 2.355000 29.809137 0.000000
2.417800 29.340601 0.000000 2.417800 29.340601 0.000000
2.480600 28.473346 0.000001 2.480600 28.473346 0.000001
2.543400 27.679353 0.000001 2.543400 27.679353 0.000001
2.606200 26.453160 0.000002 2.606200 26.453160 0.000002
2.669000 24.424649 0.000003 2.669000 24.424649 0.000003
2.731800 22.285933 0.000008 2.731800 22.285933 0.000008
2.794600 19.958407 0.000021 2.794600 19.958407 0.000021
2.857400 17.606291 0.000053 2.857400 17.606291 0.000053
2.920200 15.420138 0.000128 2.920200 15.420138 0.000128
2.983000 13.069599 0.000328 2.983000 13.069599 0.000328
3.045800 11.036085 0.000740 3.045800 11.036085 0.000740
3.108600 9.015657 0.001664 3.108600 9.015657 0.001664

File diff suppressed because it is too large Load Diff

View File

@@ -176,16 +176,18 @@ fn read_window_file(window_file: &str, cfg: &Config) -> Option<Histogram> {
Some(Histogram::new(num_points as u32, hist)) Some(Histogram::new(num_points as u32, hist))
} }
// TODO multidimensional output
pub fn write_results(out_file: &str, ds: &Dataset, free: &Vec<f64>, prob: &Vec<f64>) -> Result<(), Box<Error>> { pub fn write_results(out_file: &str, ds: &Dataset, free: &Vec<f64>, prob: &Vec<f64>) -> Result<(), Box<Error>> {
let output = File::create(out_file)?; let output = File::create(out_file)?;
let mut buf = BufWriter::new(output); let mut buf = BufWriter::new(output);
writeln!(buf, "#{}\t{}\t{}", "x", "Free Energy", "Probability"); // TODO better format (coord1, coord2..)
let header: String = (0..ds.dimens_lengths.len()).map(|d| {format!("coord{}", d+1)}).collect::<Vec<String>>().join(" ");
writeln!(buf, "#{} {} {}", header, "Free Energy", "Probability");
for bin in 0..free.len() { for bin in 0..free.len() {
let coords = ds.get_coords_for_bin(bin); let coords = ds.get_coords_for_bin(bin);
let coords_str: String = coords.iter().map(|c| {format!("{:8.6}", c)}) let coords_str: String = coords.iter().map(|c| {format!("{:8.6} ", c)})
.collect::<Vec<String>>().join("\t"); .collect::<Vec<String>>().join("\t");
writeln!(buf, "{}\t{:8.6}\t{:8.6}", coords_str, free[bin], prob[bin])?; writeln!(buf, "{}{:8.6} {:8.6}", coords_str, free[bin], prob[bin])?;
} }
Ok(()) Ok(())
} }