I2PC / scipion

Scipion is an image processing framework to obtain 3D models of macromolecular complexes using Electron Microscopy (3DEM)
http://scipion.i2pc.es
Other
76 stars 47 forks source link

'scipion - split sets' fails with a set of coordinates #2062

Open JuhaHuiskonen opened 4 years ago

JuhaHuiskonen commented 4 years ago

When splitting a set of coordinates (with 3.8M coordinates) into 10 new sets I get the following error:

00001: RUNNING PROTOCOL ----------------- 00002: HostName: puhti-login1.bullx 00003: PID: 197160 00004: Scipion: v2.0 (2019-04-23) Diocletian 00005: currentDir: /scratch/project_2001566/ScipionUserData/projects/JK_em20223-30 00006: workingDir: Runs/006239_ProtSplitSet 00007: runMode: Restart 00008: MPI: 1 00009: threads: 1 00010: Starting at step: 1 00011: Running steps 00012: STARTED: createOutputStep, step 1 00013: 2019-10-28 10:33:35.925785 00014: Traceback (most recent call last): 00015: File "/projappl/project_2001566/apps/scipion/2.0/pyworkflow/protocol/protocol.py", line 186, in run 00016: self._run() 00017: File "/projappl/project_2001566/apps/scipion/2.0/pyworkflow/protocol/protocol.py", line 237, in _run 00018: resultFiles = self._runFunc() 00019: File "/projappl/project_2001566/apps/scipion/2.0/pyworkflow/protocol/protocol.py", line 233, in _runFunc 00020: return self._func(*self._args) 00021: File "/projappl/project_2001566/apps/scipion/2.0/pyworkflow/em/protocol/protocol_sets.py", line 373, in createOutputStep 00022: subsets = [outputSetFunction(suffix=str(i)) for i in range(1, n+1)] 00023: TypeError: _createSetOfCoordinates() takes at least 2 arguments (2 given) 00024: Protocol failed: _createSetOfCoordinates() takes at least 2 arguments (2 given) 00025: FAILED: createOutputStep, step 1 00026: 2019-10-28 10:33:35.942687 00027: *** Last status is failed 00028: ------------------- PROTOCOL FAILED (DONE 1/1)

pconesa commented 4 years ago

Hi, @JuhaHuiskonen I think that one slipped our control, we'll fix it in devel. You can try to add that this:

    # Overwrite SetOfCoordinates creation
    def _createSetOfCoordinates(self, suffix=''):
        coordSet = self.inputSet.get()
        micSet = coordSet.getMicrographs()
        return ProtSets._createSetOfCoordinates(self, micSet, suffix)

It has worked for me.

to this class: https://github.com/I2PC/scipion/blob/master/pyworkflow/em/protocol/protocol_sets.py#L331

pconesa commented 4 years ago

@JuhaHuiskonen , I've fixed this for the next scipion release.