EuanPyle / relion4_tomo_robot

Automated workflow for preparing tilt series data for RELION 4.0.
14 stars 1 forks source link

no ctffind output.txt file #2

Open rickhooy opened 1 year ago

rickhooy commented 1 year ago

Hi Euan,

Thanks for creating this workflow!

I'm working through the steps of the RELION_Tomo_Robot_Workflow document. I executed the ctffind wrapper script successfully, but the output was restricted to just the CTFfind4In.mrc - the ctffind summary output CTFfind4In_output.txt is no where to be found. It should be here: ... tiltseries/TS?/CTFFIND/CTFfind4In_output.txt

Thoughts or solutions? Happy to provide any more details

-Rick

EuanPyle commented 1 year ago

No problem, good to see people using it!

Yes that is where the output should be. Can you please:

  1. Post the command you entered in the command line
  2. Did you run import_ctffind and load IMOD in the same terminal window prior to running the ctffind wrapper?
  3. Test (manually, outside of the Tomo Robot) whether your installation of CTFFIND is working
  4. If you look at the CTFfind4In.mrc in IMOD, does it look correct?
rickhooy commented 1 year ago
  1. ctffind_wrapper('tilt_series','.st',1.9,90,'/usr/local/bin/ctffind4');

  2. yep, I ran import_ctffind in matlab. All IMOD functions are on PATH in terminal by default. I also double checked that imod functions could be called in matlab using system(); I manually ran the IMOD check section within the ctffind_wrapper.m, e.g %Check IMOD is loaded command = ['point2model']; [status,cmdout] = system(command); Output in matlab terminal shows imod help page basically so that checks out.

  3. This may be the root issue. I tried running ctffind4 on the .st stack in terminal and ctffind4 faulted stating that it can't handle .st format (see below). I cp the .st to .mrc and reran. ctffind4 operates perfectly and outputs diagnostic txt, .mrc, etc. So something about my ctffind4 ver (4.1.14) is not compatible with .st. Seems like the fix would be to mv my .st files to .mrc OR modify the preprocessing script to output .mrc instead of .st OR use a version of ctffind4 that operates on .st.

Input image file name [] : TS_55.st Unsupported file type From src/core/image_file.cpp:58 bool ImageFile::OpenFile(std::__cxx11::basic_string<char, std::char_traits, std::allocator>, bool, bool) Unsupported file type From src/core/image_file.cpp:135 int ImageFile::ReturnZSize()

  1. CTFfind4In.mrc just shows the cropped, real space input TS images. I don't see FFT or ctf fits, which is presumably what is supposed to be in the output .mrc
EuanPyle commented 1 year ago

Ok, it should be reading CTFfind4In.mrc as the input to CTFFIND i'll look into it tomorrow. One small thing (might be irrelevant anyway): is csh installed on your computer? Just type in: csh on a terminal window and see what happens.

rickhooy commented 1 year ago

Oh I see. makes sense based on the name.

csh was not installed on my computer. I installed and attempted to run ctffind_wrapper.m again using the same input as before. The CTFFIND folder and CTFfind4In.mrc is generated but ctffind4 doesn't seem to be executed or quietly faults out. Here's the output in matlab terminal:

Writing CTFFIND input stack to CTFfind4In.mrc Running CTFFIND4... ./CTFFIND_settings.csh /data/test_auto_relion/relion_processing/tilt_series/TS_55/CTFFIND/CTFfind4In.mrc 1.9 /usr/local/bin/ctffind4: Signal 127 Finished for TS_55

I tried running the command above in terminal: $ ./CTFFIND_settings.csh /data/test_auto_relion/relion_processing/tilt_series/TS_55/CTFFIND/CTFfind4In.mrc 1.9 /usr/local/bin/ctffind4 set strip1 = basename $1 basename /data/test_auto_relion/relion_processing/tilt_series/TS_55/CTFFIND/CTFfind4In.mrc set strip=echo $1 | sed 's/.mrc//' sed s/.mrc// echo /data/test_auto_relion/relion_processing/tilt_series/TS_55/CTFFIND/CTFfind4In.mrc set suffix = _output.mrc set DESTDIR = /data/test_auto_relion/relion_processing/tilt_series/TS_55/CTFFIND/CTFfind4In_output.mrc /usr/local/bin/ctffind4

    **   Welcome to Ctffind   **

        Version : 4.1.14
       Compiled : May  8 2020
           Mode : Scripted

Input image file name : Error: File does not exist, please provide an existing file!

Error: Running as script, and answer is not recognized...

0.0u 0.0s 0:00.00 0.0% 0+0k 0+0io 0pf+0w

The input image file 'CTFfind4In.mrc' definitely exists and it is located in the provided path so not sure why it's not finding it. I manually ran ctffind4 on the CTFfind4In.mrc and it runs fine in terminal.

I'll keep troubleshooting

EuanPyle commented 1 year ago

I think (but i'm not certain) it's because csh or tcsh is not installed on your terminal. The CTFFIND_settings.csh file contains some lines in csh code which are neccessary for it to work. Instructions here: https://www.cyberciti.biz/faq/howto-install-csh-shell-on-linux/

rickhooy commented 1 year ago

I installed csh and tcsh in terminal. Reloaded matlab from new terminal, loaded dynamo and tomo_robot matlab environments and reran ctffind_wrapper. Still no ctffind4 operation.

ctffind_wrapper('tilt_series','.st',1.9,90,'/usr/local/bin/ctffind4');

%%% same output as before: Writing CTFFIND input stack to CTFfind4In.mrc Running CTFFIND4... ./CTFFIND_settings.csh /data/test_auto_relion/relion_processing/tilt_series/TS_55/CTFFIND/CTFfind4In.mrc 1.9 /usr/local/bin/ctffind4: Signal 127 Finished for TS_55 %%% no ctffind4 output in the TS_xx/CTFFIND directory

Not sure what I'm missing/doing wrong. I manually ran ctffind4 to generate the necessary outputs to proceed with the tutorial.