Skip to content

Commit

Permalink
Map2mask (#38)
Browse files Browse the repository at this point in the history
* added map to mask function
  • Loading branch information
milesagraham authored Jun 13, 2024
1 parent c21aa43 commit 1e3f543
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/ttmask/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@
from .cube import cube
from .cone import cone
from .ellipsoid import ellipsoid
from .map2mask import map2mask

30 changes: 30 additions & 0 deletions src/ttmask/map2mask.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import mrcfile
import numpy as np
import typer
from pathlib import Path

from ._cli import cli
from .soft_edge import add_soft_edge

@cli.command(name='map2mask')
def map2mask(

input_map: Path = typer.Option(Path("map.mrc")),
binarization_threshold: float = typer.Option(...),
output_mask: Path = typer.Option(Path("mask.mrc")),
pixel_size: float = typer.Option(...),
soft_edge_width: int = typer.Option(0),

):
with mrcfile.open(input_map) as mrc:
map_data = np.array(mrc.data)

above_threshold = map_data >= binarization_threshold
below_threshold = map_data < binarization_threshold

map_data[above_threshold] = 1
map_data[below_threshold] = 0

mask = add_soft_edge(map_data, soft_edge_width)

mrcfile.write(output_mask, mask, voxel_size=pixel_size, overwrite=True)

0 comments on commit 1e3f543

Please sign in to comment.