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

[BUG] Slurm execution error: TomoBEAR/for_redistribution_files_only/run_TomoBEAR.sh: Not a directory #21

Open
dacolombo opened this issue Jun 1, 2023 · 1 comment
Labels
frozen Postponed for future development

Comments

@dacolombo
Copy link

Describe the bug

Hi all, after using local execution of TomoBEAR for the Ribosome (EMPIAR-10064) tutorial, I am trying to submit the last DynamoAlignment job to a Slurm cluster since it needs more resources. When running the following command:

TomoBEAR slurm ~/ribosome_empiar_10064_dynamo.json ~/defaults.json

The job is correctly submitted to the queue, but it fails with this error as soon as it starts:

line 17: /TomoBEAR-0.2.0/TomoBEAR/for_redistribution_files_only/run_TomoBEAR.sh: Not a directory

Indeed, the directory TomoBEAR/for_redistribution_files_only is not present inside of the TomoBEAR installation directory. I have seen in the code that this directory is accessed during the compilation and initialisation:

fprintf(fid, "%s\n", "$SCRIPTPATH/" + default_configuration.general.project_name + "/for_redistribution_files_only/run_" + default_configuration.general.project_name + ".sh " + default_configuration.general.mcr_location + " $1 $2 configurations/defaults.json -1 -1 -1 -2");

and
system("chmod ug+x " + default_configuration.general.project_name + "/for_redistribution_files_only/run_" + default_configuration.general.project_name + ".sh");

But I can't find how these directory are created and what should be the content of the run_TomoBEAR.sh script inside of it. I have a run_TomoBEAR.sh script in the TomoBEAR installation directory, which also makes use of the script inside of for_redistribution_files_only.

Am I missing something? Is there some procedure to generate this run_TomoBEAR.sh script? What should be the content of this script?

From what I understand, TomoBEAR has been initialised correctly, with the only warning showing being the missing conda environment to be provided for some optional dependencies.

Project JSON file
The project json file is the same present in the repository for the Ribosome (EMPIAR-10064) tutorial.

~/ribosome_empiar_10064_dynamo.json
{
    "general": {
        "project_name": "Ribosome",
        "project_description": "Ribosome EMPIAR 10064",
        "data_path": "~/tomobear_test/tests/",
        "processing_path": "~/tomobear_test/output",
        "expected_symmetrie": "C1",
        "apix": 2.62,
        "tilt_angles": [-60.0, -58.0, -56.0, -54.0, -52.0, -50.0, -48.0, -46.0, -44.0, -42.0, -40.0, -38.0, -36.0, -34.0, -32.0, -30.0, -28.0, -26.0, -24.0, -22.0, -20.0, -18.0, -16.0, -14.0, -12.0, -10.0, -8.0, -6.0, -4.0, -2.0, 0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0, 22.0, 24.0, 26.0, 28.0, 30.0, 32.0, 34.0, 36.0, 38.0, 40.0, 42.0, 44.0, 46.0, 48.0, 50.0, 52.0, 54.0, 56.0, 58.0, 60.0],
        "rotation_tilt_axis": -5,
        "gold_bead_size_in_nm": 9,
        "template_matching_binning": 8,
        "binnings": [2, 4, 8],
        "reconstruction_thickness": 1400,
        "as_boxes": false
    },
    "MetaData": {
    },
    "CreateStacks": {
    },
    "DynamoTiltSeriesAlignment": {
    },
    "DynamoCleanStacks": {
    },
    "BatchRunTomo": {
        "skip_steps": [4],
        "ending_step": 6
    },
    "StopPipeline": {
    },
    "BatchRunTomo": {
        "starting_step": 8,
        "ending_step": 8
    },
    "GCTFCtfphaseflipCTFCorrection": {
    },
    "BatchRunTomo": {
        "starting_step": 10,
        "ending_step": 13
    },
    "BinStacks": {
    },
    "Reconstruct": {
    },
    "DynamoImportTomograms": {
    },
    "EMDTemplateGeneration": {
        "template_emd_number": "3420",
        "flip_handedness": true
    },
    "DynamoTemplateMatching": {
    },
    "TemplateMatchingPostProcessing": {
        "cc_std": 2.5
    },
    "DynamoAlignmentProject": {
        "iterations": 3,
        "classes": 4,
        "use_symmetrie": false,
        "use_noise_classes": true
    },
    "DynamoAlignmentProject": {
        "iterations": 3,
        "classes": 2,
        "use_noise_classes": true,
        "use_symmetrie": false,
        "selected_classes": [1]
    },
    "DynamoAlignmentProject": {
        "iterations": 3,
        "classes": 4,
        "use_noise_classes": true,
        "use_symmetrie": false,
        "selected_classes": [1]
    },
    "DynamoAlignmentProject": {
        "iterations": 3,
        "classes": 4,
        "use_symmetrie": false,
        "use_noise_classes": true,
        "selected_classes": [1]
    },
    "DynamoAlignmentProject": {
        "iterations": 3,
        "classes": 4,
        "use_noise_classes": true,
        "use_symmetrie": false,
        "selected_classes": [1]
    },
    "DynamoAlignmentProject": {
        "iterations": 3,
        "classes": 4,
        "use_noise_classes": true,
        "use_symmetrie": false,
        "selected_classes": [1]
    },
    "DynamoAlignmentProject": {
        "iterations": 3,
        "classes": 3,
        "use_noise_classes": true,
        "use_symmetrie": false,
        "selected_classes": [1],
        "box_size": 1.10,
        "binning": 4
    },
    "StopPipeline": {
    },
    "DynamoAlignmentProject": {
        "classes": 1,
        "iterations": 1,
        "use_noise_classes": false,
        "swap_particles": false,
        "use_symmetrie": false,
        "selected_classes": [1],
        "binning": 4,
        "threshold":0.8
    },
    "DynamoAlignmentProject": {
        "classes": 1,
        "iterations": 1,
        "use_noise_classes": false,
        "swap_particles": false,
        "use_symmetrie": false,
        "selected_classes": [1,2],
        "binning": 2,
        "dt_crop_in_memory": 0,
        "threshold":0.9
    },
    "BinStacks":{
        "binnings": [1],
        "use_ctf_corrected_aligned_stack": false,
        "run_ctf_phaseflip": true
    },
    "Reconstruct": {
        "reconstruct": "unbinned"
    },
    "DynamoAlignmentProject": {
        "classes": 1,
        "iterations": 1,
        "use_noise_classes": false,
        "swap_particles": false,
        "use_symmetrie": false,
        "selected_classes": [1,2],
        "binning": 1,
        "threshold":1
    }

Error message

line 17: /TomoBEAR-0.2.0/TomoBEAR/for_redistribution_files_only/run_TomoBEAR.sh: Not a directory

To Reproduce
Steps to reproduce the behaviour:

  1. Run TomoBEAR with Slurm execution (either with the compiled script TomoBEAR or the run_TomoBEAR.sh script).
  2. Job is submitted but the job fails with the error above.

Expected behavior
The job is started locally in the node allocated through Slurm.

  • TomoBEAR Version: 0.2.0
  • MotionCor2 Version: 1.6.3
  • Gctf Version: 1.06
  • Dynamo Version: 1.1.532
@ArtsemiY
Copy link
Member

ArtsemiY commented Jun 2, 2023

Dear @dacolombo , thanks for the feedback!

Unfortunately, the SLURM submission functionality has not been reviewed for a while and we need some time to review that. I will inspect your issue with the TomoBEAR binary SLURM submission, but meanwhile I can suggest you to try a workaround - prepare and submit to the SLURM job script with environment setup and TomoBEAR binary execution in the same way you run this binary interactively. Not elegant, but should work

Hope it helps!

@ArtsemiY ArtsemiY added the pending Inspecting your issue label Jun 2, 2023
@ArtsemiY ArtsemiY added frozen Postponed for future development and removed pending Inspecting your issue labels Jun 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
frozen Postponed for future development
Projects
None yet
Development

No branches or pull requests

2 participants