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

Download


Before downloading or using this product, make sure you understand and accept the terms of the license.


crYOLO

Version: 1.2.1

Uploaded: 05. December 2018

DOWNLOAD

crYOLO boxmanager

Version: 1.1.0

Uploaded: 27. November 2018

DOWNLOAD

General YOLO network in patch mode

Number of datasets: 27 (real), 10 simulated, 10 particle free datasets on various grids

Uploaded: 27. November 2018

DOWNLOAD

Valid configuration file

Info: Trained on cryo images, therefore negative stain will not work.

ARCHIVE

Previous versions of crYOLO, the boxmanager and the general models can be found here: Archive.

Known issues

  • Issue 0: Training on multiple GPUs sometimes lead to worse performance (higher loss). We currently recommend to train on single gpus.
  • Issue 1: crYOLO sometimes not exit properly after training finished. Has to be killed manually.
  • Issue 2: If you use automatic filtering with .tif files, you get an error like “OSError: cannot identify image file 'filtered_folder/another_folder/my_image.tif'”. It will be fixed in the next release.
  • Issue 3: (Boxmanager) The visualization only shows the first filament when loading eman1 helical box files (start end coordinates). Will be fixed in the next release.
  • Issue 4: The filament mode will crash if crYOLO cannot identify a single particle in the image. Will be fixed in 1.2.2

Change log

crYOLO

crYOLO Version 1.2.1:

  • Fix Issue 2: Tiff files are now written as 32 bit when internal filtering is used.
  • cryolo_evaluation now additionally estimates the optimal threshold based on the F2 score, which puts more weight on recall than on precision
  • File ending of filament box files is now .box instead of .txt (Thanks to Jesse M. Hansen)

crYOLO Version 1.2.0:

  • Switch to Python3 (Please use a fresh environment!)
  • (Hopefully) fixed that crYOLO sometimes freezes during/after training (hard to reproduce, so I'm not 100% sure if it is fixed.)
  • Fix that training with multiple GPUs did not speed up small datasets
  • Low-pass filtering is now integrated into crYOLO
  • Fix two bugs in cryolo_evaluation that lead to an underestimation the performance parameters
  • cryolo_evaluation is now multithreaded if your training data is organised in subfolders
  • cryolo_evaluation now contains a better method for optimal picking threshold estimation
  • Refactoring
  • Minor bug fixes

crYOLO Version 1.1.4:

  • Hot fix for filament mode when applied to non square images.

crYOLO Version 1.1.3:

  • Improved non-maximum-suppression brings 60% speedup during picking!
  • Multi GPU support for training and prediction (e.g by adding -g 0 1 for GPU 0 and GPU 1 to the training/prediction command)
  • Bug fixed which leads to a crash if no particles are picked on the first micrograph (Thanks to Björn Klink).

crYOLO Version 1.1.2:

  • STAR files could now used for training. However, as they don't contain size information the size specified in the anchors in the config.json is used.
  • Slightly improved speed of the filament-mode
  • Fixed another bug running filament mode on non-square images (Thanks to Gregory Alushin)

crYOLO Version 1.1.1:

  • More efficient MRC reading and batch prediction leads to ~50% faster training and ~70% faster picking when crYOLO is used in patch-mode (compared with the patch-mode in 1.1.0).
  • 6x faster filament picking
  • Reading of annotation data is now super-fast :-) (Box filename has to be contained into image filename)
  • Optimized filament picking parameters
  • Fixed bug which made training fail for some 16 bit images
  • Fixed bug which could lead to double picked filaments
  • Fixed bug running filament mode on non-square images (Thanks to Gregory Alushin)
  • Supports EMAN1 helix coordinates
  • Support for star file format. During prediction, both box and star files are written.

crYOLO Version 1.1.0:

  • crYOLO now supports filaments
  • New evaluation tool
  • Supports empty box files for training on particle-free images
  • Extended data augmentation: Horizontal flip and flip along both axes
  • Experimental support of periodic restarts during training (with –warm_restarts)

crYOLO Version 1.0.4:

  • Fix a problem reading backend weights from read-only filesystem (Thanks to Michael Cianfrocco and Jason Key)
  • Make sure that tensorflow version is >= 1.5.0 and < 1.9.0
  • Add support for subfolders in training and validation directories
  • More clear error message when the trained model does not fit to the architecture specified in the config file.

crYOLO Version 1.0.3:

  • Ignore non-image files during training and predction (Thanks to Kellie Woll)
  • Fixed misleading error when non existing folder is used as input for prediction (Thanks to Kellie Woll)
  • Add distance threshold during prediction by adding -d distanceInPixel parameter to prediction command (Thanks to Lifei Fu)
  • Add “–write_empty” parameter to prediction command if an empty box file should be written if no particle is picked.

crYOLO Version 1.0.2:

  • Fix problem when mrc image has dimensions (1,width,height) (Thanks to Reza Behrouzi)

crYOLO Version 1.0.1:

  • Normalization technique is now the same for 8-bit and 32 bit images.
  • Unify image augmentation

crYOLO Boxmanager

crYOLO Boxmanager Version 1.1.0:

  • Switch to Python3
  • Minor bug fixes

crYOLO Boxmanager Version 1.0.4:

  • Support of visualization of EMAN1 filament coordinates
  • Make compatible with crYOLO 1.1.3

crYOLO Boxmanager Version 1.0.3:

  • Support of visualization of EMAN2 helical coordinates (particle coordinates)
  • New boxes could be loaded with a new color while keeping the old.
  • Fix problem with makes loading images very long.
  • Several bug fixes

crYOLO Boxmanager Version 1.0.2:

  • Fix problem with invisible (start with .) files. Now they are ignored.

crYOLO Boxmanager Version 1.0.1:

  • Fix crash when cancel import boxfiles
  • Fix crash with qt4

General YOLO network model in patch mode

Version 20181120:

Added multiple simulated datasets, where each micrograph contains hundrets of particles with different defocus:

  • PDB 1SA0
  • PDB 5LNK
  • PDB 5XNL
  • PDB 6B7N
  • PDB 6BHU
  • PDB 6DMR
  • PDB 6DS5
  • PDB 6GDG
  • PDB 6H3N
  • PDB 6MPU

Besides these simulated datasets we added handpicked

  • ATP Synthase
  • DNA Origami
  • Two more particle-free only-contamination datasets.

It total 45 datasets are now included.

Version 20180823:

Increase the number of hand picked datasets to 25 by adding:

  • Add EMPIAR 10154 (Thanks to Daniel Prumbaum)
  • Add EMPIAR 10186 (Thanks to Sebastian Tacke)
  • Add EMPIAR 10097 Hemagglutinin (Thanks to Birte Siebolds)
  • Add EMPIAR 10081 HCN1 (Thanks to Pascel Lill)
  • Add internal dataset (Thanks to Daniel Roderer)
  • Furthermore we added 8 datasets of protein-free grids (Thanks to Tobias Raisch and Daniel Prumbaum)

Version 20180720:

Added micrographs of 7 new handpicked datasets:

  • EMPIAR 10181 (Thanks to Dennis Quentin)
  • EMPIAR 10017
  • EMPIAR 10028 (Thanks to Oleg Sitsel)
  • User contributed dataset (Thanks to Lifei Fu)
  • EMPIAR 10089
  • EMPIAR 10004 (Thanks to Daniel Roderer)
  • EMPIAR 10072 (Thanks to Tobias Raisch)

Furthermore I had to remove one internal dataset, as it turned out that it is unsuitable for training the general model.

Version 20180704:

Added three more handpicked datasets:

  • spliceosome (EMPIAR 10160)
  • picornavirus (EMPIAR 10033) and
  • an internal dataset.

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.

Installation

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

Activate the environment:

source activate cryolo

Install crYOLO:

pip install numpy
pip install cryolo-X.Y.Z.tar.gz --process-dependency-links
pip install cryoloBM-X.Y.Z.tar.gz

That's it!

Run it on the CPU

There is also a way to run crYOLO on CPU. This is especially usefull 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.

After you followed the crYOLO installation instructions just replace tensorflow-gpu by tensorflow:

pip uninstall tensorflow-gpu
pip install tensorflow==1.10.1

Now crYOLO should work on the CPU as well!

Start picking!

Use the step-by-step tutorial to get started!