e2classifyligand.py
I had an excellent description of this program, and how to use it, but somehow it got lost. For the moment, I'm just including some basic tips. I will have to fully document it again later.
This program is used to subdivide particles into two populations based on two different 3-D maps (or, alternatively a 3-D mask). It will also provide some statistical results indicating how well you can discriminate between the two groups on a per-particle basis.
The program is called e2classifyligand.py. If you run it with no options, it will give some basic help, with '-h' it will give more help. Basic usage is :
- First run e2refine for at least a couple of cycles on your data - Prepare 2 volume files the same size as your reconstruction. One with ligand present and one without ligand. If you lack 2 good references, you could take the results of the single refinement from all of the data, copy it, and mask out the ligand from the copy. - run: e2classifyligand.py <raw particle file> <class mx> <projections> --ref1=<unliganded ref> --ref2=<liganded ref>
<raw particle file> is a 'set' containing the particles you need to classify, the same set you ran e2refine.py on, something like sets/set1ctf_flip.lst
<class mx> is the classification matrix for these particles, something like refine_01/classify_01.hdf
<projections> are the projections from the same iteration, like refine_01/projections_01.hdf
That's the basic algorithm. If you want to try to put 'bad' (difficult to classify) particles into separate files, you can specify the:
- --badgroup Split the data into 4 groups rather than 2. The extra
- two groups contain particles more likely to be bad.
- When identifying 'bad' particles, particles with
similarities >mean+sigma*badqualsig will be considered bad. Default 0.5
- When identifying 'bad' particles, if s1/s2 are the similarities to reference 1/2, then those where
|s1-s2| < sigma*badsepsig will be excluded. Default 0.25