Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MDSPACE #153

Merged
merged 11 commits into from
Feb 2, 2023
Merged

MDSPACE #153

merged 11 commits into from
Feb 2, 2023

Conversation

mms29
Copy link
Collaborator

@mms29 mms29 commented Jan 30, 2023

New protocol viewer and tests for MDSPACE

  • fix of PDB dim reduction problems

  • fix issues for GENESIS installation in init.py

  • fix a bug in protocol_image_synthesize (the output was not pointing to the right images files but the "subtomograms.vol" probably some copy/paste from synthesize subtomo). Also, when reading the input PDBs, you did not sort them by the name resulting in random order of input PDBs which is not the best. for now I just sort the list of PDB, but it will be solved once we allow to input a SetOfPDBs

  • added the uniform distribution of angles around the sphere in protocol_subtomograms_synthesize (copied the code I've done previously in protocol_image_synthesize)

  • I modified the nma_plotter to limit the number of point displayed to 100,000 (This will affect all protocol using it). The thing is that the viewer does not respond with plots with more than 100,000 points, it gets so slow you can not do anything. Here I just limit the display but it does not affect the clustering tool, for example you can select a region of point and it will recognize all the points inside even the ones that are not displayed. I believe that beyond 100,000 points, you do not distinguish individual points so it does not matter if you have only 100,000, you still see the overall distribution. What do you think ?

{"tag": "protocol", "value": "FlexProtNMA", "text": "NMA"}
]},
{"tag": "section", "text": "6. MDSPACE", "children": [
{"tag": "protocol", "value": "ProtMDSPACE", "text": "MDSPACE", "icon": "bookmark.png"}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may also add the PDB dimred, grouping etc.

@@ -164,10 +167,9 @@ def _defineParams(self, form):
"to accelerate NM integration, however can make the simulation unstable.",
condition="simulationType==2 or simulationType==4",expertLevel=params.LEVEL_ADVANCED)
group.addParam('nm_mass', params.FloatParam, default=10.0, label='NM mass',
help="Mass value of Normal modes for NMMD", condition="simulationType==2 or simulationType==4",
help="Mass value of Normal modes for NMMD. Lower values accelerate the fitting but can make the "
"simulation unstable", condition="simulationType==2 or simulationType==4",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are all guilty, but it is better if we extract constants instead of using numbers of choices in simulationType==2 or simulationType==4

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right, this is an old code I need to update it, in new code I do it

inputAlignement = self._createSetOfVolumes("inputAlignement")
readSetOfVolumes(self.getAlignementprefix(), inputAlignement)
alignedSet = self._createSetOfVolumes("alignedSet")
# if self.EMfitChoice.get() == EMFIT_VOLUMES:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If there is something to do here, better to keep a comment why this section is commented, otherwise, clean it.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes

writeSetOfVolumes(alignedSet, self.getAlignementprefix())
else:
writeSetOfParticles(alignedSet, self.getAlignementprefix())
# if isinstance(inputSet, SetOfVolumes):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment as above

@@ -581,6 +582,27 @@ def generate_rotation_and_shift(self):
else:
psi1 = np.random.normal(self.MeanPsi.get(), self.StdPsi.get())

# uniform over the sphere
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found a direct way to get 3 Euler angles with uniform distribution using:

from scipy.spatial.transform import Rotation
rotation = Rotation.random()  # this give a random rotational vector
rot, tilt, psi = rotation.as_euler('ZYZ', degrees=True)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This make me actually wonder if we need to keep the "Gaussian distribution" options at all. It seems to be complicating things and we have never used it.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is indeed much easier with scipy!
Yes... I believe it is useless we should remove it.
I am not sure that choosing the range of the angles is useful as well, I never changed this range, maybe we should just give the possibility to set the range of translation and for rotation just set yes or no you want to synthesize the rotations

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree. Shifts make sense to be simulated in Gaussian distribution around zero since the person (or algorithm) tries to hit the center. But angles have no meaning like that. There are a couple of complex patterns that I have noticed in preferred orientations, I will think how to implement that later (probably an interactive tool).

@MohamadHarastani
Copy link
Collaborator

Hi Remi
This is a huge amount of work. I will run the automatic tests, but I believe it is safe to merge to devel.
Cheers

@MohamadHarastani
Copy link
Collaborator

You asked me about the plotter with 100,000. Absolutely, you did it in a perfect way!

@MohamadHarastani
Copy link
Collaborator

Hi Remi
For the installation, I got this error. Scipion and Xmipp teams are contradicting themselves with what they recommend. I used 10 as you previously fixed this for gcc-10 here.

Building MD-NMMD-Genesis-1.1 ...
  Skipping command: wget -nv -c -O /home/mohamad/scipion3/software/em/void.tgz.part http://scipion.cnb.csic.es/downloads/scipion/software/em/void.tgz
mv -v /home/mohamad/scipion3/software/em/void.tgz.part /home/mohamad/scipion3/software/em/void.tgz
  All targets exist.
cd /home/mohamad/scipion3/software/em
mkdir /home/mohamad/scipion3/software/em/MD-NMMD-Genesis-1.1
cd /home/mohamad/scipion3/software/em/MD-NMMD-Genesis-1.1
eval "$(/home/mohamad/miniconda3/bin/conda shell.bash hook)"&& conda activate continuousflex-git && git clone -b merge_genesis_1.4 https://github.com/continuousflex-org/MD-NMMD-Genesis.git . ; autoreconf -fi ; ./configure LDFLAGS=-L"/home/mohamad/miniconda3/envs/continuousflex-git/lib" FFLAGS="-fallow-argument-mismatch -ffree-line-length-none"; make install;
/bin/sh: 3: /home/mohamad/miniconda3/envs/scipion3/etc/conda/deactivate.d/openjdk_deactivate.sh: [[: Exec format error
/bin/sh: 9: /home/mohamad/miniconda3/envs/scipion3/etc/conda/deactivate.d/openjdk_deactivate.sh: [[: Exec format error
Cloning into '.'...
remote: Enumerating objects: 2619, done.
remote: Counting objects: 100% (381/381), done.
remote: Compressing objects: 100% (185/185), done.
remote: Total 2619 (delta 263), reused 264 (delta 196), pack-reused 2238
Receiving objects: 100% (2619/2619), 3.58 MiB | 3.54 MiB/s, done.
Resolving deltas: 100% (1836/1836), done.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make sets $(MAKE)... (cached) yes
checking for ranlib... ranlib
checking for mpifrtpx... no
checking for mpifrt... no
checking for mpif90... mpif90
checking whether the Fortran compiler works... yes
checking for Fortran compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU Fortran compiler... yes
checking whether mpif90 accepts -g... yes
checking for mpifrtpx... no
checking for mpifrt... no
checking for mpif90... mpif90
checking whether we are using the GNU Fortran 77 compiler... no
checking whether mpif90 accepts -g... yes
checking for actual compiler... gfortran
checking for mpifccpx... no
checking for mpifcc... no
checking for mpicc... mpicc
checking whether we are using the GNU C compiler... yes
checking whether mpicc accepts -g... yes
checking for mpicc option to accept ISO C89... none needed
checking whether mpicc understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of mpicc... gcc3
checking for actual compiler... gcc
checking for fpp... no
checking for cpp... cpp
checking platform is RICC... no
Updated 1 path from the index
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/lib/Makefile
config.status: creating src/spdyn/Makefile
config.status: creating src/atdyn/Makefile
config.status: creating src/analysis/Makefile
config.status: creating src/analysis/libana/Makefile
config.status: creating src/analysis/trj_analysis/Makefile
config.status: creating src/analysis/trj_analysis/comcrd_analysis/Makefile
config.status: creating src/analysis/trj_analysis/msd_analysis/Makefile
config.status: creating src/analysis/trj_analysis/diffusion_analysis/Makefile
config.status: creating src/analysis/trj_analysis/distmat_analysis/Makefile
config.status: creating src/analysis/trj_analysis/drms_analysis/Makefile
config.status: creating src/analysis/trj_analysis/fret_analysis/Makefile
config.status: creating src/analysis/trj_analysis/hb_analysis/Makefile
config.status: creating src/analysis/trj_analysis/lipidthick_analysis/Makefile
config.status: creating src/analysis/trj_analysis/qval_analysis/Makefile
config.status: creating src/analysis/trj_analysis/rg_analysis/Makefile
config.status: creating src/analysis/trj_analysis/rmsd_analysis/Makefile
config.status: creating src/analysis/trj_analysis/tilt_analysis/Makefile
config.status: creating src/analysis/trj_analysis/trj_analysis/Makefile
config.status: creating src/analysis/trj_analysis/energy_analysis/Makefile
config.status: creating src/analysis/mode_analysis/Makefile
config.status: creating src/analysis/mode_analysis/avecrd_analysis/Makefile
config.status: creating src/analysis/mode_analysis/eigmat_analysis/Makefile
config.status: creating src/analysis/mode_analysis/flccrd_analysis/Makefile
config.status: creating src/analysis/mode_analysis/pcavec_drawer/Makefile
config.status: creating src/analysis/mode_analysis/prjcrd_analysis/Makefile
config.status: creating src/analysis/converter/Makefile
config.status: creating src/analysis/converter/crd_convert/Makefile
config.status: creating src/analysis/converter/pcrd_convert/Makefile
config.status: creating src/analysis/converter/remd_convert/Makefile
config.status: creating src/analysis/converter/rst_convert/Makefile
config.status: creating src/analysis/converter/rst_upgrade/Makefile
config.status: creating src/analysis/free_energy/Makefile
config.status: creating src/analysis/free_energy/mbar_analysis/Makefile
config.status: creating src/analysis/free_energy/meanforce_analysis/Makefile
config.status: creating src/analysis/free_energy/pmf_analysis/Makefile
config.status: creating src/analysis/free_energy/wham_analysis/Makefile
config.status: creating src/analysis/interface/Makefile
config.status: creating src/analysis/interface/dssp_interface/Makefile
config.status: creating src/analysis/clustering/Makefile
config.status: creating src/analysis/clustering/kmeans_clustering/Makefile
config.status: creating src/analysis/utilities/Makefile
config.status: creating src/analysis/utilities/pathcv_analysis/Makefile
config.status: creating src/analysis/utilities/qmmm_generator/Makefile
config.status: creating src/analysis/utilities/rpath_generator/Makefile
config.status: creating src/analysis/utilities/emmap_generator/Makefile
config.status: creating src/config.h
config.status: executing depfiles commands
Making install in src
make[1]: Entering directory '/home/mohamad/scipion3/software/em/MD-NMMD-Genesis-1.1/src'
Making install in lib
make[2]: Entering directory '/home/mohamad/scipion3/software/em/MD-NMMD-Genesis-1.1/src/lib'
cpp -traditional-cpp -traditional -DHAVE_CONFIG_H constants.fpp constants.f90
mpif90  -I. -I../../src  -I. -fallow-argument-mismatch -ffree-line-length-none -fopenmp  -c constants.f90
gfortran: error: unrecognized command line option ‘-fallow-argument-mismatch’; did you mean ‘-Wno-argument-mismatch’?
make[2]: *** [Makefile:714: constants.o] Error 1
make[2]: Leaving directory '/home/mohamad/scipion3/software/em/MD-NMMD-Genesis-1.1/src/lib'
make[1]: *** [Makefile:358: install-recursive] Error 1
make[1]: Leaving directory '/home/mohamad/scipion3/software/em/MD-NMMD-Genesis-1.1/src'
make: *** [Makefile:353: install-recursive] Error 1
target '/home/mohamad/scipion3/software/em/MD-NMMD-Genesis-1.1/bin/atdyn' not built (after running 'eval "$(/home/mohamad/miniconda3/bin/conda shell.bash hook)"&& conda activate continuousflex-git && git clone -b merge_genesis_1.4 https://github.com/continuousflex-org/MD-NMMD-Genesis.git . ; autoreconf -fi ; ./configure LDFLAGS=-L"/home/mohamad/miniconda3/envs/continuousflex-git/lib" FFLAGS="-fallow-argument-mismatch -ffree-line-length-none"; make install;')

@mms29
Copy link
Collaborator Author

mms29 commented Feb 1, 2023

Hi Remi For the installation, I got this error. Scipion and Xmipp teams are contradicting themselves with what they recommend. I used 10 as you previously fixed this for gcc-10 here.

This error is definitely the error related to gcc <= 9, that is weird that you have it with gcc 10
I added some lines init.py to check the gfortran version, however it is probably not working on all systems ... I am reading the output of gfortran --version, what is the output for you ? 10.X something ?
is your gcc and gfortran version matching ?

@MohamadHarastani
Copy link
Collaborator

I was testing on a fresh install of Ububtu20 on WSL. I will tell you what was my version once I am back home. I was following the steps of scipion documentation for the installation. I installed gcc-10 but maybe I did not update alternatives to use it.

Copy link
Collaborator

@MohamadHarastani MohamadHarastani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job in the cleaning!

@@ -402,7 +382,7 @@ def _validate(self):
return errors

def _citations(self):
return ['harastani2022continuousflex','vuillemot2022NMMD']
return ['harastani2022continuousflex','vuillemot2022NMMD','vuillemot2023mdspace']
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may actually want to revert the order of these citations.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@mms29
Copy link
Collaborator Author

mms29 commented Feb 1, 2023

I was testing on a fresh install of Ububtu20 on WSL. I will tell you what was my version once I am back home. I was following the steps of scipion documentation for the installation. I installed gcc-10 but maybe I did not update alternatives to use it.

Yes, in any case my code was suppose to handle any gcc version so there is a problem how I implemented it, I'll work on it. You 'll let me know the output of gcc --version and gfortran --version

@MohamadHarastani
Copy link
Collaborator

The ones that failed I had gcc 9.4.0 and gfortran 9.4.0
I am trying to fix the installation issues. The master branch is currently broken because I am testing to pass it to the plugin manager. Feel free to merge this branch in the meantime, but let's keep devel away from master for a bit :-)

@mms29
Copy link
Collaborator Author

mms29 commented Feb 2, 2023

Okay then there is a problem with how I read the version. I do that :

        import subprocess
        import re
        output = subprocess.getoutput("gfortran --version")
        gfotran_version = int(re.search(r'\d+', output).group())

for me with gfortran 9.40 it gives me 9.
Can you test with your scipion python to see what it gives you ?

@MohamadHarastani
Copy link
Collaborator

Actually this gave me the same number! I changed now gcc to 10. I am testing the fixes that I have done for the installation on master, I will be back and test if that solved my problem on this branch.

@MohamadHarastani
Copy link
Collaborator

The installation of this branch went well! I don't know if you changed something or my rv_genesis branch was not updated at the time I tested. But now it installs.
I will continue the tests tomorrow. For now, I ran MDSPACE test and got the following error:



##################################################** Running command: 'python3 /home/mohamad/miniconda3/envs/scipion3/lib/python3.8/site-packages/pyworkflow/apps/pw_protocol_run.py "/home/mohamad/ScipionUserData/projects/TestMDSPACE" "Runs/000002_ProtImportPdb/logs/run.db" 2 "/home/mohamad/ScipionUserData/projects/TestMDSPACE/Runs/000002_ProtImportPdb/logs/run.stdout" "/home/mohamad/ScipionUserData/projects/TestMDSPACE/Runs/000002_ProtImportPdb/logs/run.stderr"'
** Running command: 'python3 /home/mohamad/miniconda3/envs/scipion3/lib/python3.8/site-packages/pyworkflow/apps/pw_protocol_run.py "/home/mohamad/ScipionUserData/projects/TestMDSPACE" "Runs/000040_FlexProtGenesis/logs/run.db" 40 "/home/mohamad/ScipionUserData/projects/TestMDSPACE/Runs/000040_FlexProtGenesis/logs/run.stdout" "/home/mohamad/ScipionUserData/projects/TestMDSPACE/Runs/000040_FlexProtGenesis/logs/run.stderr"'
** Running command: 'python3 /home/mohamad/miniconda3/envs/scipion3/lib/python3.8/site-packages/pyworkflow/apps/pw_protocol_run.py "/home/mohamad/ScipionUserData/projects/TestMDSPACE" "Runs/000140_FlexProtNMA/logs/run.db" 140 "/home/mohamad/ScipionUserData/projects/TestMDSPACE/Runs/000140_FlexProtNMA/logs/run.stdout" "/home/mohamad/ScipionUserData/projects/TestMDSPACE/Runs/000140_FlexProtNMA/logs/run.stderr"'
** Running command: 'python3 /home/mohamad/miniconda3/envs/scipion3/lib/python3.8/site-packages/pyworkflow/apps/pw_protocol_run.py "/home/mohamad/ScipionUserData/projects/TestMDSPACE" "Runs/000188_FlexProtSynthesizeImages/logs/run.db" 188 "/home/mohamad/ScipionUserData/projects/TestMDSPACE/Runs/000188_FlexProtSynthesizeImages/logs/run.stdout" "/home/mohamad/ScipionUserData/projects/TestMDSPACE/Runs/000188_FlexProtSynthesizeImages/logs/run.stderr"'

*************** last 50 lines of STD OUT *********************

** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00079_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00079_projected.spi --angles -48.381192 75.686833 -0.382742 -1.074312 3.783725
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00080_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00080_projected.spi --angles -128.966362 47.132173 137.743094 -1.350882 -2.390955
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00081_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00081_projected.spi --angles -13.224203 116.05542 -137.482741 -4.531936 4.707314
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00082_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00082_projected.spi --angles -76.331351 139.007686 83.805469 4.6639 0.076355
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00083_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00083_projected.spi --angles -34.887436 70.864976 19.948576 -1.280813 -4.986167
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00084_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00084_projected.spi --angles 168.324738 59.321446 -63.248093 3.806781 4.450268
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00085_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00085_projected.spi --angles 97.966595 133.509112 -100.141774 -2.835427 -3.339522
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00086_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00086_projected.spi --angles 165.809535 31.866354 70.488471 -3.609273 -0.730956
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00087_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00087_projected.spi --angles 33.627424 149.896686 -171.318193 -0.75337 -3.923823
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00088_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00088_projected.spi --angles 17.282885 75.807123 33.010953 -1.082031 -2.578214
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00089_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00089_projected.spi --angles 45.861062 104.083215 51.327125 3.09365 2.090355
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00090_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00090_projected.spi --angles 53.373226 93.084857 -88.283866 -2.1143 3.743999
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00091_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00091_projected.spi --angles 53.205172 135.780663 102.456646 -0.123237 -4.99454
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00092_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00092_projected.spi --angles 161.784302 87.636974 -112.297882 3.028934 -3.408538
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00093_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00093_projected.spi --angles 100.858356 129.396123 141.404132 4.148631 -4.506511
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00094_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00094_projected.spi --angles 145.691388 118.330521 -140.061583 -0.26857 3.822837
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00095_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00095_projected.spi --angles -135.419708 73.619829 129.486234 -4.94847 1.941579
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00096_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00096_projected.spi --angles 39.959507 60.911059 126.79152 4.37117 4.233053
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00097_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00097_projected.spi --angles -128.587611 83.901037 66.044678 3.735568 -0.081078
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00098_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00098_projected.spi --angles -47.655765 123.942378 -27.975393 -0.669226 -1.426531
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00099_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00099_projected.spi --angles 110.616098 88.44256 21.124271 2.955904 -1.554695
Xmipp command detected
** Running command:  xmipp_phantom_project  -i Runs/000188_FlexProtSynthesizeImages/extra/00100_df.vol -o Runs/000188_FlexProtSynthesizeImages/extra/00100_projected.spi --angles 10.498574 80.408848 35.485938 -0.516308 0.67846
FINISHED: project_volumes, step 4, time 2023-02-02 03:18:14.322801
STARTED: createOutputStep, step 5, time 2023-02-02 03:18:14.338718
Xmipp command detected
** Running command:  xmipp_metadata_selfile_create -p "Runs/000188_FlexProtSynthesizeImages/extra/*_projected.spi" -o Runs/000188_FlexProtSynthesizeImages/extra/images.xmd
FAILED: createOutputStep, step 5, time 2023-02-02 03:18:14.395561
*** Last status is failed
------------------- PROTOCOL FAILED (DONE 5/5)

*************** end of STD OUT *********************


*************** last 50 lines of STD ERR *********************

Projecting ...
0000/???? sec. ------------------------------------------------------------
   0/   0 sec. ............................................................
Projecting ...
0000/???? sec. ------------------------------------------------------------
   0/   0 sec. ............................................................
Projecting ...
0000/???? sec. ------------------------------------------------------------
   0/   0 sec. ............................................................
Projecting ...
0000/???? sec. ------------------------------------------------------------
   0/   0 sec. ............................................................
Projecting ...
0000/???? sec. ------------------------------------------------------------
   0/   0 sec. ............................................................
Projecting ...
0000/???? sec. ------------------------------------------------------------
   0/   0 sec. ............................................................
Projecting ...
0000/???? sec. ------------------------------------------------------------
   0/   0 sec. ............................................................
Projecting ...
0000/???? sec. ------------------------------------------------------------
   0/   0 sec. ............................................................
Projecting ...
0000/???? sec. ------------------------------------------------------------
   0/   0 sec. ............................................................
Projecting ...
0000/???? sec. ------------------------------------------------------------
   0/   0 sec. ............................................................
/bin/sh: 1: xmipp_metadata_selfile_create: not found
Traceback (most recent call last):
  File "/home/mohamad/miniconda3/envs/scipion3/lib/python3.8/site-packages/pyworkflow/protocol/protocol.py", line 201, in run
    self._run()
  File "/home/mohamad/miniconda3/envs/scipion3/lib/python3.8/site-packages/pyworkflow/protocol/protocol.py", line 252, in _run
    resultFiles = self._runFunc()
  File "/home/mohamad/miniconda3/envs/scipion3/lib/python3.8/site-packages/pyworkflow/protocol/protocol.py", line 248, in _runFunc
    return self._func(*self._args)
  File "/home/mohamad/scipion3/plugins/scipion-em-continuousflex/continuousflex/protocols/protocol_image_synthesize.py", line 680, in createOutputStep
    runProgram('xmipp_metadata_selfile_create', command)
  File "/home/mohamad/miniconda3/envs/scipion3/lib/python3.8/site-packages/pwem/utils.py", line 73, in runProgram
    pwutils.runJob(None, program, params, env=env)
  File "/home/mohamad/miniconda3/envs/scipion3/lib/python3.8/site-packages/pyworkflow/utils/process.py", line 55, in runJob
    return runCommand(command, env, cwd)
  File "/home/mohamad/miniconda3/envs/scipion3/lib/python3.8/site-packages/pyworkflow/utils/process.py", line 70, in runCommand
    check_call(command, shell=True, stdout=sys.stdout, stderr=sys.stderr,
  File "/home/mohamad/miniconda3/envs/scipion3/lib/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command ' xmipp_metadata_selfile_create -p "Runs/000188_FlexProtSynthesizeImages/extra/*_projected.spi" -o Runs/000188_FlexProtSynthesizeImages/extra/images.xmd' returned non-zero exit status 127.
Protocol failed: Command ' xmipp_metadata_selfile_create -p "Runs/000188_FlexProtSynthesizeImages/extra/*_projected.spi" -o Runs/000188_FlexProtSynthesizeImages/extra/images.xmd' returned non-zero exit status 127.

*************** end of STD ERR *********************

[   FAILED ] TestMDSPACE.test_MDSPACE


Traceback (most recent call last):
  File "/home/mohamad/miniconda3/envs/scipion3/lib/python3.8/unittest/case.py", line 60, in testPartExecutor
    yield
  File "/home/mohamad/miniconda3/envs/scipion3/lib/python3.8/unittest/case.py", line 676, in run
    self._callTestMethod(testMethod)
  File "/home/mohamad/miniconda3/envs/scipion3/lib/python3.8/unittest/case.py", line 633, in _callTestMethod
    method()
  File "/home/mohamad/scipion3/plugins/scipion-em-continuousflex/continuousflex/tests/test_workflow_MDSPACE.py", line 99, in test_MDSPACE
    self.launchProtocol(target_images)
  File "/home/mohamad/miniconda3/envs/scipion3/lib/python3.8/site-packages/pyworkflow/tests/tests.py", line 116, in launchProtocol
    raise Exception("Protocol %s execution failed. See last log lines above for more details." % prot.getRunName())
Exception: Protocol Target particles execution failed. See last log lines above for more details.

@MohamadHarastani
Copy link
Collaborator

I recently compile xmipp, they must have refactored or just removed this binary xmipp_metadata_selfile_create

@MohamadHarastani
Copy link
Collaborator

It exists in python
from xmipp_base import XmippScript, createMetaDataFromPattern

Here is the script https://github.com/I2PC/xmipp/blob/devel/src/xmipp/legacy/applications/scripts/metadata_selfile_create/batch_metadata_selfile_create.py#L29

@mms29
Copy link
Collaborator Author

mms29 commented Feb 2, 2023

I know I had the same issue when updating Xmipp. It appears they removed a lot of things among which xmipp_metadata_selfile_create. We need to update a lot of protocols

@MohamadHarastani
Copy link
Collaborator

A nightmare! I will see what I can do, but we have no choice :-)

@MohamadHarastani
Copy link
Collaborator

Hi @mms29
I mentioned the programs that I found missing here
I2PC/xmipp#681
You may see while testing if there is something else.

@MohamadHarastani
Copy link
Collaborator

I need to merge this PR and solve conflicts with the other one

@MohamadHarastani MohamadHarastani merged commit f86f9b0 into devel Feb 2, 2023
@mms29
Copy link
Collaborator Author

mms29 commented Feb 3, 2023

Great! Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants