README.md 4.35 KB
Newer Older
Markus Rampp's avatar
Markus Rampp committed
1
# BioEM:  Bayesian inference of Electron Microscopy
Pilar Cossio's avatar
Pilar Cossio committed
2
# PRE-ALPHA VERSION: June, 2016
Markus Rampp's avatar
Markus Rampp committed
3
4
5
6
7
8
9
10
11
12
13
14


## Contributors

Pilar Cossio, David Rohr, Fabio Baruffa, Markus Rampp, Volker Lindenstruth and Gerhard Hummer

## References

* [Cossio, P and Hummer, G. J Struct Biol. 2013 Dec;184(3):427-37. doi: 10.1016/j.jsb.2013.10.006.](http://www.ncbi.nlm.nih.gov/pubmed/24161733)

* Cossio, P., Rohr, D., Baruffa, F., Rampp, M., Lindenstruth, V. and Hummer, G. "BioEM: GPU-accelerated computing of Bayesian inference of electron microscopy images" (in preparation)

Pilar Cossio's avatar
Pilar Cossio committed
15
## Description
Markus Rampp's avatar
Markus Rampp committed
16

Pilar Cossio's avatar
Pilar Cossio committed
17
18
19
20
21
22
23
24
The BioEM code calculates the posterior probability of a structural model given multiple experimental EM images.
The posterior is calculated by solving a multidimensional integral over many nuisance parameters that account for
the experimental factors in the image formation, such as molecular orientation and interference effects.
The BioEM software computes this integral via numerical grid sampling over a portable CPU/GPU computing platform.
By comparing the BioEM posterior probabilities it is possible to discriminate and rank structural models, allowing to characterize
the variability and dynamics of the biological system.

See the BioEM_Maunal.pdf for a detailed description of the BioEM software.
Markus Rampp's avatar
Markus Rampp committed
25
26
27
28
29
30
31

### Command line input & help is found by just running the compiled executable ./bioEM

      ++++++++++++ FROM COMMAND LINE +++++++++++

	Command line inputs:
	  --Modelfile arg       (Mandatory) Name of model file
Pilar Cossio's avatar
Pilar Cossio committed
32
33
34
35
	  --Particlesfile arg   if BioEM (Mandatory) Name of particle-image file
	  --Inputfile arg       if BioEM (Mandatory) Name of input parameter file
	  --PrintBestCalMap arg (Optional) Only print best calculated map. NO BioEM (!)
	  --ReadOrientation arg (Optional) Read file name containing orientations
Markus Rampp's avatar
Markus Rampp committed
36
37
38
	  --ReadPDB             (Optional) If reading model file in PDB format
	  --ReadMRC             (Optional) If reading particle file in MRC format
	  --ReadMultipleMRC     (Optional) If reading Multiple MRCs
Pilar Cossio's avatar
Pilar Cossio committed
39
40
41
42
	  --DumpMaps            (Optional) Dump maps after they were read from 
	                        particle-image file
	  --LoadMapDump         (Optional) Read Maps from dump option
	  --OutputFile arg      (Optional) For changing the outputfile name
Markus Rampp's avatar
Markus Rampp committed
43
44
	  --help                (Optional) Produce help message

Pilar Cossio's avatar
Pilar Cossio committed
45
Details for the inputfiles and formats are provided in chapters 1 and 2 of the BioEM_Manual.pdf.
Markus Rampp's avatar
Markus Rampp committed
46

Pilar Cossio's avatar
Pilar Cossio committed
47
### Output
Markus Rampp's avatar
Markus Rampp committed
48

Pilar Cossio's avatar
Pilar Cossio committed
49
* Main output file with, default name "Output_Probabilities" has
Markus Rampp's avatar
Markus Rampp committed
50
51
52
53
54
     RefMap #(number Particle Map) Probability  #(log(P))
     RefMap #(number Particle Map) Maximizing Param: #(Euler Angles) #(PSF parameters) #(center displacement)

     **Important: It is recommended to compare log(P) with respect to other Models or to Noise as in [1].

Pilar Cossio's avatar
Pilar Cossio committed
55
* (Optional) Write the posterior probabilities as a function of the orientations (key word: WRITE_PROB_ANGLES in InputFile, see BioEM_Manual.pdf).
Markus Rampp's avatar
Markus Rampp committed
56

Pilar Cossio's avatar
Pilar Cossio committed
57
### TUTORIAL DIRECTORY:
Markus Rampp's avatar
Markus Rampp committed
58
 
Pilar Cossio's avatar
Pilar Cossio committed
59
60
A directory with example EM particles, models, and input files are provided in the Tutorial_BioEM directory. 
A tutorial is provided in chapter 4 of the BioEM_Manual.pdf 
Markus Rampp's avatar
Markus Rampp committed
61
62


Pilar Cossio's avatar
Pilar Cossio committed
63
### Installation
Markus Rampp's avatar
Markus Rampp committed
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104

To build and install bioEM a cmake procedure is used, for example:

```
#clone the repository
git clone ...
cd BioEM
#build the code (CPU version)
mkdir build
cd build
cmake ..
make VERBOSE=1
```

Dependencies and software requirements:

* Compiler: a modern C++ compiler which is OpenMP compliant
              and (optionally) complies with CUDAs nvcc
              (tested with Intel icpc 12-16, GCC 4.7-5.1)
    -> adapt the name of the compiler using ccmake 

    for free software see: https://gcc.gnu.org/

* MPI: the Message Passing Standard library
         (tested with Intel MPI 4.1-5.1, IBM PE 1.3-1.4)
    -> adapt the names of the MPI compiler wrappers using ccmake 

    for free software see: http://www.open-mpi.de/
          
* FFTW: a serial but fully thread-safe fftw3 installation or equivalent (tested with fftw 3.3)
     -> point environment variable $FFTW_ROOT to a FFTW3 installation or use ccmake to specify

    for free software see: http://www.fftw.org 

* BOOST

    for free software see: http://www.boost.org/

* CUDA (required to build and run the GPU version) 

    for free software see: https://developer.nvidia.com/cuda-downloads
Pilar Cossio's avatar
Pilar Cossio committed
105
106
107
108
109
110

For details on the installation chapter 1 of the BioEM_Manual.pdf. 


In chapter 3 of the BioEM_Manual.pdf a 
detailed description of the BioEM performance variables