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)
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.
Old crYOLO change logs
Old crYOLO change logs
Fix installation issues
Added a the option --use_multithreading for training. If python multiprocessing leads to problems during training (e.g. freezing, dying workers) use multithreading instead of multiprocessing.
Boxmanager 1.2.8 integrates a low pass filter to make it training data creation easier.
Internal refactoring needed for boxmanger 1.2.8 changes.
Fixed systematic offset when picking K3 images using the general model.
Fixed crash when minimum distance filter is used (Thanks to Peter Van Blerkom)
Add “Print cmd” button to GUI. The command can then be copied to a submission script (Thanks to Wolfgang Lugmayr).
Fixed problem that crYOLO does not work if no filtering is used.
Fixed another problem when downloading pretrained weights
Fixed problem when opening the GUI on a computer without a GPU it crashes. This is especially problematic for clusters with GPU nodes.
crYOLO checks if updates are available and informs you about it
Fixed a problem that crYOLO predict crashed for some users when running it from GUI.
Fixed a problem where crYOLO crashed during training due to memory issues.
Fixed a problem that the pretrained weights could not be downloaded when the installation was done globally on a cluster. Now they a are downloaded during setup of crYOLO.
Added a GUI for crYOLO (start with cryolo_gui.py)
Optimized fast low-pass filtering pipeline: In consequence this, speeds up on-the-fly filtering by 175%, training by 75% and picking by 60%
New monitor mode for prediction: When this option is activated, crYOLO will monitor your input folder. This especially useful for automation purposes. You can stop the monitor mode by writing an empty file with the name “stop.cryolo” in the input directory. Just add --monitor in the command line or check the monitor box in GUI.
Training is now merged into one command instead of two
Add rotation as additional data augmentation
Number of layers for fine tuning are now changeable (-lft)
cryolo_evaluation.py will now output a html file with the results.
Set patch argument as deprecated
crYOLO will not allocate the complete GPU memory anymore.
Remove warmup as config file option. Please specify it with -w.
Downgrade the dependencies to tensorflow 1.10.1 and numpy 1.14.5 as some users reported long initialization times. (Thanks to Shaun Rawson)
The initialization weights are not longer shipped with the package and downloaded on-the-fly (because they are big and pypi does not allow such big packages)
crYOLO is installed through pypi
crYOLO box manager is installed through pypi and automatically shipped with the crYOLO package
Fixed fine-tune mode (Thanks to Antoine Koehl)
Fixed normalization function for YOLO backend (Thanks to Wolfgang Lugmayr)
Support Just Another Noise 2 Noise Implemnentation (JANNI)
Add –mask_width as optional parameter for the filament mode
Update tensorflow from 1.10.1 to 1.12.3 to make crYOLO compatible with JANNI
Update numpy from 1.14.5 to 1.15.4 to make crYOLO compatible with JANNI
Changed filament search radius factor from 0.8 to 1.41 (this fixed issue 21)
Improved error message in case of corrupted config file
Fixed issue 22: If absolute paths are used in the field “train_image” in your configuration file, filtering is skipped.
Fixed issue 20: During training the images are normalized separately, but during prediction is done batch wise. The lead to confusing results: some micrographs were perfectly picked, some totally unreasonable, even with the same defocus. This bug only affects the picking, already trained models can still be used.
Remove unnecessary dependencies
Add __version__ to __init__.py for easy access to package version.
Support for SPHIRE 1.2
Changed the minimum threshold for cbox files from 0.01 to 0.1. Much faster in many cases but still low enough. If -t is lower than 0.1, the new threshold is used as minimum.
Installation now checks if python 3 is used.
Fix issue 19: Filtering does not work if target image directory is absolute path.
Fix crash when --otf was specified but filtering was not specified in the config file
Fix issue 18: Prediction is broken in 1.3.2. It removes all particles as it claim they are not fully immersed in the image.
Speedup prediction: Vectorized some parts of the code and optimized the creation of the cbox files. 30% speed up picking / 15% faster training compared to 1.3.1/1.3.0.
Bug fix in merging of filaments that sometimes throw “IndexError: list index out of range”. (Thanks to Alexander Belyy)
Fix in cryolo_evaluation: If the validation data is specified with -b instead of runfiles, all datasets with only one box file were ignored.
Change library requirement to PILLOW version 6.0.0
Fix issue 16: --gpu_fraction only works for prediction, not for training.
Fix Issue 15: -g was ignored when –gpu_fraction was used.
Fine tune the general network to your data using the new fine tune option with --fine_tune (https://1n.pm/x8rUH)
One-the-fly micrograph filtering during particle picking with --otf (don't double your dataset during picking)(https://1n.pm/goXAa)
Interactive threshold adjustment after prediction using the new cbox-files and the crYOLO boxmanager 1.2 (https://1n.pm/k7HoI)
Pick only fully immersed particles (Issue 13)
Improved filament mode
Rewrote and speed up merging of filaments
Fixed parallelisation of the filament mode (Issue 14)
Add tifffile as dependency, as imageio throws a lot of warning for some tif files.
Add conversion for uint16 images, as pillow cannot work with them.
Add option --skip_augmentation to deactivate augmentation during training (Thanks to Tijmen de Wolf). (https://1n.pm/goXAa)
Add option --num_cpu to specify the number of CPUs used during training and during prediction. (Thanks to Nikolaus Dietz) (https://1n.pm/goXAa)
Add option to limit the amount of GPU memory reserved by crYOLO with --gpu_fraction (Thanks to Nikolaus Dietz) (https://1n.pm/goXAa)
Save anchor size in model every time you write a new model during training (not only at the end)
In case of using --min_distance, only the particle with lower confidence is removed (Thanks to Yilai Li)
crYOLO Version 1.2.3:
crYOLO now saves the anchors which were used during training inside the .h5 file and takes care that the correct anchors are used during prediction.
LineEnhancer dependency is now installed via PyPi, as –follow-dependency-links is removed in pip 19.
Fix Issue 9: Removed zignor dependency as it leads to problems for some users (Thanks to Jason Kaelber)
Attempt to fix Issue 10: Removed opencv dependency which was connected to this problem (Thanks to Shaun Rawson)
Fix issue 11: crYOLO uses now GPU 0 by default if not specified otherwise (e.g. by CUDA_VISIBLE_DEVICES)
crYOLO Version 1.2.2:
Added the PhosaurusNet to the crYOLO backend, which makes the patch mode needless for picking single particles.
crYOLO now outputs separate folders for EMAN box files and STAR files.
When picking filaments it will now additionally output EMAN Start-End and STAR Start-End coordinates (Thanks to Jesse M. Hansen).
Fix Issue 4: The filament mode will crash if crYOLO cannot identify a single particle in the image.
Fix Issue 5: If movies were aligned with cisTEM and picked with crYOLO, the box positions were vertically flipped. (Thanks to Wei-Chun Kao)
Fix Issue 6: crYOLO overwrote the CUDA_VISIBLE_DEVICES variable if the -g parameter is not passed. (Thanks to Shaun Rawson)
Fix Issue 7: crYOLO introduces a shift for non square images proportional to the aspect ratio. (Thanks to Shaun Rawson)
Fix Issue 8: crYOLO sometimes connects two parallel filaments. The filament tracing was optimized and seems now working properly.
Fix a severe bug in filament tracing. Curved filaments splitted by crYOLO in more straight sub pieces. However, during the division, one half of the splitted filament was lost. (Thanks to Sabrina Pospich)