Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ torch = [
[project.entry-points."ccpem_pipeliner.jobs"]
"combine_star_files_job" = "cryoemservices.pipeliner_plugins.combine_star_job:ProcessStarFiles"
[project.entry-points."cryoemservices.services"]
AreTomoAlign = "cryoemservices.services.tomo_align_aretomo:AreTomoAlign"
AreTomoAlignSlurm = "cryoemservices.services.tomo_align_aretomo_slurm:AreTomoAlignSlurm"
BFactor = "cryoemservices.services.bfactor_setup:BFactor"
CLEMAlignAndMerge = "cryoemservices.services.clem_align_and_merge:AlignAndMergeService"
CLEMProcessRawLIFs = "cryoemservices.services.clem_process_raw_lifs:ProcessRawLIFsService"
Expand All @@ -104,6 +106,7 @@ torch = [
ExtractClass = "cryoemservices.services.extract_class:ExtractClass"
IceBreaker = "cryoemservices.services.icebreaker:IceBreaker"
Images = "cryoemservices.services.images:Images"
ImodTomoAlign = "cryoemservices.services.tomo_align_imod:ImodTomoAlign"
MembrainSeg = "cryoemservices.services.membrain_seg:MembrainSeg"
MotionCorr = "cryoemservices.services.motioncorr:MotionCorr"
MurfeyDBConnector = "cryoemservices.services.murfey_db_connector:MurfeyDBConnector"
Expand All @@ -113,8 +116,6 @@ torch = [
Refine3D = "cryoemservices.services.refine3d:Refine3D"
SelectClasses = "cryoemservices.services.select_classes:SelectClasses"
SelectParticles = "cryoemservices.services.select_particles:SelectParticles"
TomoAlign = "cryoemservices.services.tomo_align:TomoAlign"
TomoAlignSlurm = "cryoemservices.services.tomo_align_slurm:TomoAlignSlurm"
TopazPick = "cryoemservices.services.topaz_pick:TopazPick"
[project.entry-points."cryoemservices.services.images.plugins"]
"mrc_central_slice" = "cryoemservices.services.images_plugins:mrc_central_slice"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def create_tilt_stack(input_file_list_of_lists: List[Any], stack_file: Path):
mrc.header.cella.z *= len(input_file_list_of_lists)


class TomoParameters(BaseModel):
class AreTomoParameters(BaseModel):
aretomo_version: Literal[2, 3] = 3
stack_file: str = Field(..., min_length=1)
pixel_size: float
Expand Down Expand Up @@ -175,14 +175,13 @@ def check_list_of_lists_is_not_empty(cls, v):
raise ValueError("input_file_list is not a list of lists")


class TomoAlign(CommonService):
class AreTomoAlign(CommonService):
"""
A service for grouping and aligning tomography tilt-series
with Newstack and AreTomo2 or AreTomo3
A service for grouping and aligning tomography tilt-series with AreTomo2 or AreTomo3
"""

# Logger name
_logger_name = "cryoemservices.services.tomo_align"
_logger_name = "cryoemservices.services.tomo_align_aretomo"

# Job name
job_type = "relion.reconstructtomograms"
Expand Down Expand Up @@ -218,7 +217,7 @@ def initializing(self):
)

@staticmethod
def check_visit(tomo_params: TomoParameters):
def check_visit(tomo_params: AreTomoParameters):
return True

def parse_tomo_output(self, tomo_stdout: str):
Expand Down Expand Up @@ -289,11 +288,13 @@ def tomo_align(self, rw, header: dict, message: dict):

try:
if isinstance(message, dict):
tomo_params = TomoParameters(
tomo_params = AreTomoParameters(
**{**rw.recipe_step.get("parameters", {}), **message}
)
else:
tomo_params = TomoParameters(**{**rw.recipe_step.get("parameters", {})})
tomo_params = AreTomoParameters(
**{**rw.recipe_step.get("parameters", {})}
)
except (ValidationError, TypeError) as e:
self.log.warning(
f"TomoAlign parameter validation failed for message: {message} "
Expand Down Expand Up @@ -891,7 +892,7 @@ def assemble_aretomo3_command(
self,
aretomo_executable: str,
input_file: str,
tomo_parameters: TomoParameters,
tomo_parameters: AreTomoParameters,
):
"""
Assemble the command to run AreTomo3, using a base command with
Expand Down Expand Up @@ -977,7 +978,7 @@ def assemble_aretomo2_command(
self,
aretomo_executable: str,
input_file: str,
tomo_parameters: TomoParameters,
tomo_parameters: AreTomoParameters,
aretomo_output_path: Path,
angle_file: Path,
):
Expand Down Expand Up @@ -1046,7 +1047,7 @@ def assemble_aretomo2_command(

def aretomo(
self,
tomo_parameters: TomoParameters,
tomo_parameters: AreTomoParameters,
aretomo_output_path: Path,
angle_file: Path,
):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

import requests

from cryoemservices.services.tomo_align import TomoAlign, TomoParameters
from cryoemservices.services.tomo_align_aretomo import AreTomoAlign, AreTomoParameters
from cryoemservices.util.slurm_submission import slurm_submission_for_services


Expand Down Expand Up @@ -85,21 +85,21 @@ def get_iris_state(logger, wait=True) -> str:
return "unknown"


class TomoAlignSlurm(TomoAlign):
class AreTomoAlignSlurm(AreTomoAlign):
"""
A service for submitting AreTomo2 jobs to a slurm cluster via RestAPI
"""

# Logger name
_logger_name = "cryoemservices.services.tomo_align_slurm"
_logger_name = "cryoemservices.services.tomo_align_aretomo_slurm"

def initializing(self):
if not get_iris_state(self.log):
exit()
super().initializing()

@staticmethod
def check_visit(tomo_params: TomoParameters):
def check_visit(tomo_params: AreTomoParameters):
# Requeue visits that should not be sent via slurm
visit_search = re.search(
"/[a-z]{2}[0-9]{5}-[0-9]{1,3}/", tomo_params.stack_file
Expand Down Expand Up @@ -128,7 +128,7 @@ def parse_tomo_output_file(self, tomo_output_file: Path):

def aretomo(
self,
tomo_parameters: TomoParameters,
tomo_parameters: AreTomoParameters,
aretomo_output_path: Path,
angle_file: Path,
):
Expand Down
Loading
Loading