Q: I have run refine2d.py on different datasets with different number of particles (2000 to 4000) as follow:

refine2d.py start.hed --iter=8 --ninicls=30

As a result it was produced always 10 classes for each dataset I have tested. Even I changed ninitcls= to 50 , 5, or 20 always 10 classes were created. According wiki there is possible to specify number of classes.

I am using EMAN v1.8. After running refine2d.py --version the output is: EMAN2 v1.9.

On other linux box I have installed EMAN v1.7 and in this case the syntax is little bit different: I can specify number of classes as --ncls= together with number of initial classes --ninitcls. And the calculated number of classes are according specified --ncls=.

Do you have any idea how to fix this problem?

A: The first iteration of refine2d always produces 10 iterations, but after that it should have how ever many you specified. Are you seeing iter.1.hed/img iter.2.hed/img, etc. files ? Are you looking at iter.final.hed ?

The EMAN2 v1.9 message is a typo in the software. Are you using the 1.8 release version or a nightly snapshot version ? If you are using 1.8, try a snapshot and see if the problem is fixed. If not, submit additional info on this page...

Q: Yes, I am using the snapshot (by the way, thanks for this, the snapshot fixed the problem with displaying the number of particles per class on my previous wiki post 2 days ago)and also I see all output files produced by refine2d.py and iter.xxx.hed/img plus iter.final.hed/img as well as iter.final.sort. contain only already mentioned 10 classes.

I have run it as: refine2d.py start.hed --iter=8 --ninicls=30

In the meantime (during typing this post) I am running the same command as:

refine2d.py start.hed --iter=8 -I 30 (instead --ninitcls=30)

and it seems to work. Classes.nr.hed/img contains 10 class averages as well as iter.0.hed/img but all others plus iter.final.hed/img contain 30 class averages and there are 30 clsxxx.lst files.

It is really strange how so minor changes could affect the results.

When you type refine2d.py --help it's displayed:

--version -h, --help --iter=ITER --nosvd

-I NINITCLS, --ninitcls=NINITCLS (I thought that -I and --ninitcls= are identical parameters...)


-P PROC, --proc=PROC --minptcl=MINPTCL -C CTFCW, --ctfcw=CTFCW

-B NBASIS, --nbasis=NBASIS




A: Hi. Please don't add a new page when you reply. Just edit this page and put new details here. I cleaned it up this time. The name you used for the original page had spaces and dashes in it so I renamed it to something wiki-style.

I should point out that twice now you posted the command you ran as: refine2d.py start.hed --iter=8 --ninicls=30

Since you typed it correctly elsewhere, I assumed it was a typo, but there is a 't' missing in the option above, which could cause problems like this. Could that be the culprit (though I think it would detect a typo like that...) ?

I don't see anything else obvious that's wrong... If that isn't the problem, please do an:

iminfo start.hed all >startinfo and post startinfo here as an attachment.

Q: Sorry, (the typo was only on this page, in emanlog is correct as is typed bellow) to clarify this problem: command refine2d.py start.hed --iter=8 --ninitcls=30 created 10 classes. When I changed it as: refine2d.py start.hed --iter=8 -I 30 (instead --ninitcls=30) it worked fine and created 30 classes (except classes.nr.hed/img and iter.0.hed/img). Only difference I see here is -I option instead --ninitcls= option. But I am little bit confused thought that they are the same. Or not? PS: I attached the startinfo file too.

A: That's very strange... Never seen anything like it... You could try grep "classes ptcl.fp" .emanlog and see what you get. The number on the command line should be whatever you specified for ninitcls. If that number is correct, and you still have only 10 classes, then something funny is going on...

EMAN1/FAQ/Refine2dNinitcls (last edited 2008-11-26 04:42:28 by localhost)