

This is an old revision of the document!
License
- Author: Thorsten Wagner
- License: EULA
- Last Update: 2018-06-20
If you are interested in using crYOLO in a commercial context please contact stefan.raunser@mpi-dortmund.mpg.de
Paper
You can find more technical details in our paper:
Nature Communications Biology: SPHIRE-crYOLO is a fast and accurate fully automated particle picker for cryo-EM
Preprint: SPHIRE-crYOLO: A fast and accurate fully automated particle picker for cryo-EM
Download
crYOLO
Version: 1.5.6
Uploaded: 17. December 2019
Please see install instructions how to get it running on the CPU.
crYOLO boxmanager
General PhosaurusNet models
For cryo images (low-pass filtered)
Number of datasets: 43 real, 10 simulated, 10 particle free datasets on various grids with contamination
Uploaded: 15. Oktober 2019
For cryo images (neural network denoised with JANNI)
Number of datasets: 43 real, 10 simulated, 10 particle free datasets on various grids with contamination
Uploaded: 15. Oktober 2019
For negative stain images
ARCHIVE
Previous versions of crYOLO, the boxmanager and the general models can be found here: Archive.
Installation
System requirements:
crYOLO was tested on Ubuntu 16.04.4 LTS and Ubuntu 18.04 with an NVIDIA Geforce 1080 / Geforce 1080Ti.
However, it should run on Windows as well.
As the GPU accelerated version of tensorflow does not support MacOS, crYOLO does not support it either.
crYOLO depends on CUDA Toolkit 9.0 and the cuDNN 7.1.2 library. It will be automatically installed during crYOLO installation.
Install crYOLO!
The following instructions assume that pip and anaconda or miniconda are available. In case you have a old cryolo environment installed, first remove the old one with:
conda env remove --name cryolo
After that, create a new virtual environment:
conda create -n cryolo -c anaconda python=3.6 pyqt=5 cudnn=7.1.2 numpy==1.14.5 cython wxPython==4.0.4 intel-openmp==2019.4
Activate the environment:
source activate cryolo
In case you run crYOLO on a GPU run:
pip install 'cryolo[gpu]'
But if you want to run crYOLO on a CPU run:
pip install 'cryolo[cpu]'
ERROR: imagecodecs-lite 2019.2.22 has requirement numpy>=1.15.4, but you'll have numpy 1.14.5 which is incompatible.
However, you can ignore it. It is actually also working with numpy==1.14.5
- Issue 0: Training on multiple GPUs sometimes lead to worse performance (higher loss). We currently recommend to train on single gpus.
- Issue 17: On the fly filtering (--otf) is slower than using it not, as the filtering is not parallelized in this case.
That's it!
You might want to check if everything is running as expected. Here is a reference example:
Run it on the CPU
There is also a way to run crYOLO on CPU. To use it, just follow the instruction in the install section. This is especially useful when you would like to apply the generalized model and don't have a NVIDIA GPU.
Picking with crYOLO is also quite fast on the CPU. On my local machine (Intel i9) it takes roughly 1 second per micrograph and on our low-performance notebooks (Intel i3) 4 seconds.
Training crYOLO is much more computational expensive. Training a model with 14 micrographs from scratch on my local machine take 34 minutes per epoch on the CPU. Given that you often need 25 epochs until convergence it is a task to do overnight (~ 12 hours). However, you might want to try refining the general model, which takes 12 minutes per epoch (~ 5 hours).
Tutorials
Use our step-by-step tutorials
to get started!
Change log
crYOLO
Find new versions here: https://cryolo.readthedocs.io
crYOLO 1.6.1:
- Fixed a bug that was introduced with 1.5.5: Scaling of the anchor boxes was wrong. This leads to longer and unstable training and heavily affects the fine-tune mode. (Thanks to Jorge Jimenez de la Morena and Pablo Conesa)
- Fixed a bug that leads to an exception (_tkinter.TclError: couldn't connect to display) at the end of the training on cluster machines. (Thanks to Wolfgang Lugmayr)
crYOLO 1.6.0:
- In case of the general model, you can specify with --minsize MIN --maxsize MAX a minimum and maximum size. This will filter the particles according to their estimated size.
- The estimated size and confidence distribution are now written in a new subfolder DISTR in your output folder. It will also write .csv files with a summary of the distributions.
- In case of the general model, you don't need to specify the anchor size anymore.
- With every run, crYOLO now writes the command used into the central log directory.
- All log files (runfiles, commands, tensorflow) are now saved in the central log directory.
- During training, the intermediate models now get a suffix “_tmp”. After training is finished they are renamed to the specified name in the configuration file (field: “save_weights_name”).
- The boxmanager can now be started through the crYOLO GUI.
- Fixed issue that the filament mode does not work with micrographs that were motion-corrected by unblur.
- Fixed issue that the flaq --write_empty did not work for the filament mode.
- Fixed issue that the minimum distance filter was not applied on particles in .cbox files.
- Fixed issue with the evaluation tool that crashed if no particle can be found for a specific threshold.
crYOLO Boxmanager
crYOLO Boxmanager Version 1.2.9:
- Fixed a problem that only one filament is shown
crYOLO Boxmanager Version 1.2.8:
- Add a low pass filter
General PhosaurusNet model
Version 201912::
- Added two more datasets.
Version 20190516::
- Added four more inhouse datasets
- Added SNRNP (Thanks to Clement Charenton)