User Tools

Site Tools


auto_2d_class_selection

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
auto_2d_class_selection [2019/07/11 14:02]
twagner
auto_2d_class_selection [2020/08/27 13:44]
twagner
Line 1: Line 1:
-====== Cinderella: Automatic 2D class selection ======+====== Cinderella: Deep learning based binary classification tool ======
  
 ---- ----
Line 8: Line 8:
 ---- ----
  
 +Our binary classification  tool (//Cinderella//) is based on a deep learning network to classify class averages, micrographs or subtomograms into good and bad categories.
 +Cinderella supports ''.hdf/.mrcs'' ** files for class averages**, ''.mrc'' **files for micrographs**, and ''.hdf'' **files for subtomograms**.
 +//Cinderella// was written to automate cryo-em data processing.  It's open source and easy to use.
 +We provide a pretrained general model for classifying class averages ([[auto2d_tutorial|see tutorial]]). But you can easily train it with your own set of classes, micrographs, and/or subtomograms.
  
-Our automatic 2d class selection tool (**Cinderella**) is based on a deep learning network to seperate 2D classes from .hdf / .mrcs files into good and bad classes. It uses the same deep neural network as crYOLO and was pretrained on a set good / bad classes. Cinderella was written to automate cryo-em data processing. It's open source and easy to use ([[auto2d_tutorial|see tutorial]]). You can easily train it with your own set of classes. 
 <note> <note>
-**License**: MIT +  * **License**: [[https://github.com/MPI-Dortmund/sphire_classes_autoselect/blob/master/LICENSE|MIT]] 
- +  * **Repository**: [[https://github.com/MPI-Dortmund/sphire_classes_autoselect|GitHub]]
-**GitHub repository**: https://github.com/MPI-Dortmund/sphire_classes_autoselect+
 </note> </note>
-Here are a couple of examples for good / bad classes in Cinderella: + 
 + 
 +====== 2D class selection model ====== 
 +Our model was trained on a set of 2D classes from both [[https://sphire.mpg.de/wiki/doku.php?id=pipeline:isac:sxisac2|ISAC]] and Relion. During the creation of the training data set, we tried to answer the question, "Which class would I select If I would not know the particle?" when deciding what is a "good" class. Here are a couple of examples for good/bad classes in //Cinderella//
  
 {{ ::cinderellea.png?450 |}} {{ ::cinderellea.png?450 |}}
  
-====== The Model ====== +
-Our model was trained on a set of 2D classes from ISAC. During the creation of the training dataset, I tried to ask myself "Which class would I select If I would not know the particle?" to decide which is a good class. +
-<note important> +
-The training dataset does **not contain any Relion classes**, so it might be that Cinderella will not work with well them. +
-</note>+
 You can easily [[auto_2d_class_selection#contribute|contribute]] your own classes!   You can easily [[auto_2d_class_selection#contribute|contribute]] your own classes!  
  
-Right now our model is trained on **19 datasets**. But we will increase the number often!+Right now our model is trained on **4773 good classes and 5390 bad classes**.
 ====== Download ====== ====== Download ======
 ====Cinderella==== ====Cinderella====
-Version: 0.3.0+Version: 0.7.0
  
-Uploaded: 11July 2019+Uploaded: 27August 2020
  
 [[https://pypi.org/project/cinderella/#files|DOWNLOAD]] [[https://pypi.org/project/cinderella/#files|DOWNLOAD]]
  
-====Pretrained model==== +====Pretrained model (2D classes)==== 
-Uploaded: 11July 2019Datasets19 +Uploaded: 27August 2020Dataset4773 good classes and 5390 bad classes.
- +
-[[ftp://ftp.gwdg.de/pub/misc/sphire/auto2d_models/model_cinderella_20190708.h5|DOWNLOAD]] +
- +
-[[auto2d_tutorial#classify|Valid configuration file]]+
  
 +[[ftp://ftp.gwdg.de/pub/misc/sphire/auto2d_models/gmodel_cinderella07_202008_N10163.h5|DOWNLOAD]]
 ====Archive==== ====Archive====
-Old version of cinderella and the pretrained model can be found in the [[cinderella_archive|archive]]+Old versions of cinderella and the pretrained model can be found in the [[cinderella_archive|archive]].
  
 ====Changelog==== ====Changelog====
 +
 +=== Version 0.7 ===
 +  * Now uses a **circular masks by default**. This allows to use full rotation during data augmentation. Can be deactivated by setting the field ''mask_radius'' in the configuration file to -1. In case you want to use an model trained with Cinderella < 0.7 please set the radius to -1. Otherwise you case specify any radius you want. **By default** (no ''mask_radius'' provided) it will use 0.4*''input_size''.
 +  * The general models now includes **300 new good Relion classes and 2000 new bad Relion classes** (//Thanks to Grigory Sharov//).
 +  * Fixed numerical instability that occurs when you have classes filled with a constant value (//Thanks to Grigory Sharov//).
 +  * Fixed a problem with classes that contain NaN values. NaN values are now replaced with 0. (//Thanks to Grigory Sharov//).
 +  * Fixed an issue when filenames contain more than one point.
 +
 +=== Version 0.6 ===
 +  * Fix an issue for classes in mrcs format
 +  * Minor changes
 +
 +=== Version 0.5 ===
 +  * Add support for subtomograms
 +  * Faster file reading
 +
 +=== Version 0.4 ===
 +  * Balances unbalanced training datasets.
 +  * It is now possible to train Cinderella to select micrographs
 +  * Updated the general model for 2D class selection.
 +
 +=== Version 0.3.1 ===
 +  * Downgrade to tensorflow 1.10.1 again, as user report long initialization times
 +  * Only report the number of good / bad classes + their fraction.
 +
 === Version 0.3.0 === === Version 0.3.0 ===
   * More data augmentation (add rotation)   * More data augmentation (add rotation)
Line 70: Line 93:
 After that, create a new virtual environment: After that, create a new virtual environment:
 <code> <code>
-conda create -n cinderella -c anaconda python=3.6 pyqt=5 cudnn=7.1.2+conda create -n cinderella -c anaconda python=3.6 pyqt=5 cudnn=7.1.2 numpy==1.14.5
 </code> </code>
  
Line 76: Line 99:
 <code> <code>
 source activate cinderella source activate cinderella
-</code> 
- 
-Install fast numpy: 
-<code> 
-conda install numpy==1.15.4 
 </code> </code>
  
Line 94: Line 112:
  
 ====== Tutorial ====== ====== Tutorial ======
-[[auto2d_tutorial|We created a tutorial how to use Cinderella!]]+We created three tutorials: 
 + 
 +  * [[auto2d_tutorial|How to use Cinderella for 2D class selection]] 
 +  * [[cinderella_micrographs|How to use Cinderella for micrograph selection]] 
 +  * [[cinderella_tomograms|How to use Cinderella for subtomogram selection]]  
 + 
auto_2d_class_selection.txt · Last modified: 2020/08/27 15:11 by twagner