Since version 1.1.0 crYOLO supports picking filaments.
As described previously, filtering your image using a low-pass filter is probably a good idea.
After this is done, you have to prepare training data for your model. Right now, you have to use the e2helixboxer.py to generate the training data:
e2helixboxer.py --gui my_images/*.mrc
After tracing your training data in e2helixboxer, export them using File → Save. Make sure that you export particle coordinates as this the only format supported right now (see screenshot). In the following example, it is expected that you exported into a folder called “train_annot”.
You can configure it the same way as for a “normal” project. We recommend to use patch mode.
In principle, there is not much difference in training crYOLO for filament picking and particle picking. For project with roughly 20 filaments per image we successfully trained on 40 images (⇒ 800 filaments). However, in our experience the warm-up phase and training need a little bit more time:
1. Warm up your network
cryolo_train.py -c config.json -w 10
2. Train your network
cryolo_train.py -c config.json -w 0 -e 10
The final model will be called model.h5
The biggest difference in picking filaments with crYOLO is during prediction. However, there are just three additional parameters needed:
Let's assume you want to pick a filament with a width of 100 pixels. The box size is 200×200 and you want a 90% overlap, than the picking command would be:
cryolo_predict.py -c config.json -w model.h5 --filament -fw 100 -bd 20 -o boxes/ -g 0
The directory boxes will be created and all results are saved there. The format is the eman2 helix format with particle coordinates.
You can use the boxmanager as described previously.
The new evaluation tool allows you, based on your validation data, to get statistics about your training. If you followed the tutorial, the validation data are selected randomly. With crYOLO 1.1.0 a run file for each training is created and saved into the folder runfiles/ in your project directory. This run file contains which files were selected for validation, and you can run your evaluation as follows:
cryolo_evaluation.py -c config.json -w model.h5 -r runfiles/run_20180821-144617.json
The table contains several statistics:
If the training data consists of multiple folders, then evaluation will be done for each folder separately.
Increase the number of hand picked datasets to 25 by adding: