Renaming: MATLAB names → Python names

The upstream MATLAB functions are prefixed with their author’s initials (bm for Bastien Milani, mle for Mauro Leidi, dh for Dominik Helbing). In Python they are named after what they do, following PEP 8:

  1. the author prefix is removed (bmMathilda → mathilda, mleSiemensReader → SiemensReader);

  2. functions are in snake_case (bmCoilSense_nonCart_data → coil_sense_non_cart_data), classes in CapWords (bmSparseMat → SparseMat), methods too (readRawData → read_raw_data);

  3. a 2 between words means to (bmTraj2SparseMat → traj_to_sparse_mat); in n2u (non-uniform to uniform) and in dimensions (bmDFT2, _demons23) it stays;

  4. the reconstruction methods keep their Monalisa names (mathilda, sensa, teva_morphosia_chain).

The names that depart from these rules are explained in the Note column. Functions live in subpackages by topic (monalisa.recon, monalisa.io, …) and are all available from the top-level package: monalisa.recon.mathilda is also monalisa.mathilda. In code, monalisa.find_function("bmMathilda") returns the Python function of a MATLAB name.

Not renamed, on purpose:

  • arguments, struct fields and object properties keep the MATLAB names (N_u, dK_u, nCh, acquisitionParams.nShot_off): they are the notation of the Monalisa papers and documentation, N_u and n_u are different quantities, and the fields are compared with the MATLAB recordings;

  • option values that MATLAB scripts pass as strings (sparseType='bmSparseMat', class_type='bmMriAcquisitionParam');

  • MATLAB recordings (fixtures/matlab/<scenario>/<MATLAB name>/) and the parity tolerances, which refer to the MATLAB functions.

Python-only public functions (no MATLAB counterpart in src/): monalisa.display.roipoly and poly2mask (as in MATLAB’s Image Processing Toolbox), monalisa.io.loadmat73 and savemat73 (MATLAB v7.3 files).

141 functions and classes:

monalisa.array

MATLAB

Upstream file

Python

Note

bmBlockReshape

src/arrayUtility/bmBlockReshape.m

block_reshape

bmCell2Array

src/arrayUtility/bmCell2Array.m

cell_to_array

bmCol

src/arrayUtility/bmCol.m

col

bmColReshape

src/arrayUtility/bmColReshape.m

col_reshape

bmIndex2MultiIndex

src/arrayUtility/bmIndex2MultiIndex.m

index_to_multi_index

bmIsBlockShape

src/arrayUtility/bmIsBlockShape.m

is_block_shape

bmIsColShape

src/arrayUtility/bmIsColShape.m

is_col_shape

bmIsScalar

src/arrayUtility/bmIsScalar.m

is_scalar

bmPermuteToCol

src/arrayUtility/bmPermuteToCol.m

permute_to_col

bmPermuteToPoint

src/arrayUtility/bmPermuteToPoint.m

permute_to_point

bmPointReshape

src/arrayUtility/bmPointReshape.m

point_reshape

bmSingle

src/arrayUtility/bmSingle.m

to_single

single would read as the NumPy type

bmZero

src/arrayUtility/bmZero.m

zero

monalisa.binning

MATLAB

Upstream file

Python

Note

bmMitosis

src/arrayUtility/bmMitosis.m

mitosis

bmMitosius_create

src/mitosius/bmMitosius_create.m

mitosius_create

bmMitosius_load

src/mitosius/bmMitosius_load.m

mitosius_load

monalisa.coil

MATLAB

Upstream file

Python

Note

bmCoilSense_nonCart_data

src/coilSense/nonCart/bmCoilSense_nonCart_data.m

coil_sense_non_cart_data

bmCoilSense_nonCart_mask_automatic

src/coilSense/nonCart/bmCoilSense_nonCart_mask_automatic.m

coil_sense_non_cart_mask_automatic

bmCoilSense_nonCart_primary

src/coilSense/nonCart/bmCoilSense_nonCart_primary.m

coil_sense_non_cart_primary

bmCoilSense_nonCart_ref

src/coilSense/nonCart/bmCoilSense_nonCart_ref.m

coil_sense_non_cart_ref

bmCoilSense_nonCart_secondary

src/coilSense/nonCart/bmCoilSense_nonCart_secondary.m

coil_sense_non_cart_secondary

bmCoilSense_pinv

src/coilSense/map/bmCoilSense_pinv.m

coil_sense_pinv

detectROI

src/coilSense/automatic/detectROI.m

detect_roi

selectROI

src/coilSense/automatic/selectROI.m

select_roi

thresholdRMS_MIP

src/coilSense/automatic/thresholdRMS_MIP.m

threshold_rms_mip

monalisa.display

MATLAB

Upstream file

Python

Note

bmImage

src/imDisp/bmImage.m

show_image

image is the subpackage monalisa.image; the function opens a viewer

monalisa.fourier

MATLAB

Upstream file

Python

Note

bmK

src/fourier123/prep_function/bmK.m

deapodization

one-letter name; K is the deapodization in the Monalisa notation

bmDFT1

src/fourier1/bmDFT1.m

dft1

bmDFT1_conjTrans

src/fourier1/bmDFT1_conjTrans.m

dft1_conj_trans

bmDFT2

src/fourier2/bmDFT2.m

dft2

bmDFT2_conjTrans

src/fourier2/bmDFT2_conjTrans.m

dft2_conj_trans

bmDFT3

src/fourier3/bmDFT3.m

dft3

bmDFT3_conjTrans

src/fourier3/bmDFT3_conjTrans.m

dft3_conj_trans

bmFC

src/fourier123/prep_function/bmFC.m

fc

bmFC_conj

src/fourier123/prep_function/bmFC_conj.m

fc_conj

bmIDF

src/fourierN/bmIDF.m

idf

bmIDF1

src/fourier1/bmIDF1.m

idf1

bmIDF1_conjTrans

src/fourier1/bmIDF1_conjTrans.m

idf1_conj_trans

bmIDF2

src/fourier2/bmIDF2.m

idf2

bmIDF2_conjTrans

src/fourier2/bmIDF2_conjTrans.m

idf2_conj_trans

bmIDF3

src/fourier3/bmIDF3.m

idf3

bmIDF3_conjTrans

src/fourier3/bmIDF3_conjTrans.m

idf3_conj_trans

bmKF

src/fourier123/prep_function/bmKF.m

kf

bmKF_conj

src/fourier123/prep_function/bmKF_conj.m

kf_conj

bmNakatsha

src/fourier123/map_function/nonCartesian/bmNakatsha.m

nakatsha

bmNakatsha_MATLAB

src/fourier123/map_function/nonCartesian/bmNakatsha_MATLAB.m

nakatsha_matlab

bmShanna

src/fourier123/map_function/nonCartesian/bmShanna.m

shanna

bmShanna_MATLAB

src/fourier123/map_function/nonCartesian/bmShanna_MATLAB.m

shanna_matlab

monalisa.geometry

MATLAB

Upstream file

Python

Note

bmVolumeElement

src/geom123/bmVolumeElement.m

volume_element

bmVolumeElement1

src/geom1/bmVolumeElement1.m

volume_element1

bmVolumeElement_cartesian2

src/geom2/bmVolumeElement_cartesian2.m

volume_element_cartesian2

bmVolumeElement_center_out_radial3

src/geom3/bmVolumeElement_center_out_radial3.m

volume_element_center_out_radial3

bmVolumeElement_full_radial3

src/geom3/bmVolumeElement_full_radial3.m

volume_element_full_radial3

bmVolumeElement_randomPartialCartesian2_x

src/geom2/bmVolumeElement_randomPartialCartesian2_x.m

volume_element_random_partial_cartesian2_x

bmVolumeElement_randomPartialCartesian3_x

src/geom3/bmVolumeElement_randomPartialCartesian3_x.m

volume_element_random_partial_cartesian3_x

bmVolumeElement_voronoi_box2

src/geom2/bmVolumeElement_voronoi_box2.m

volume_element_voronoi_box2

bmVolumeElement_voronoi_center_out_radial2

src/geom2/bmVolumeElement_voronoi_center_out_radial2.m

volume_element_voronoi_center_out_radial2

bmVolumeElement_voronoi_full_radial2

src/geom2/bmVolumeElement_voronoi_full_radial2.m

volume_element_voronoi_full_radial2

bmVolumeElement_voronoi_full_radial3

src/geom3/bmVolumeElement_voronoi_full_radial3.m

volume_element_voronoi_full_radial3

bmVoronoi

src/geom123/bmVoronoi.m

voronoi

monalisa.gridding

MATLAB

Upstream file

Python

Note

bmGridder_n2u_leight

src/gridding123/m/bmGridder_n2u_leight.m

gridder_n2u_leight

bmImDeformField2SparseMat

src/gridding123/m/bmImDeformField2SparseMat.m

im_deform_field_to_sparse_mat

bmImDeformField2sparseMat_ind_weight

src/gridding123/m/bmImDeformField2sparseMat_ind_weight.m

im_deform_field_to_sparse_mat_ind_weight

bmTraj2SparseMat

src/gridding123/m/bmTraj2SparseMat.m

traj_to_sparse_mat

monalisa.image

MATLAB

Upstream file

Python

Note

bmImCrope

src/image123/bmImCrope.m

im_crop

spelling

bmImDeform

src/image123/bmImDeform.m

im_deform

bmImDeformField_hardThresholding2

src/image2/m/bmImDeformField_hardThresholding2.m

im_deform_field_hard_thresholding2

bmImDeformT

src/image123/bmImDeformT.m

im_deform_t

bmImDim

src/imageN/bmImDim.m

im_dim

bmImLaplaceEquationSolver

src/image123/bmImLaplaceEquationSolver.m

im_laplace_equation_solver

bmImLaplaceIterator

src/image123/bmImLaplaceIterator.m

im_laplace_iterator

bmImLaplacian

src/image123/bmImLaplacian.m

im_laplacian

bmImPseudoDiffusion

src/image123/bmImPseudoDiffusion.m

im_pseudo_diffusion

bmImPseudoDiffusion_inMask

src/image123/bmImPseudoDiffusion_inMask.m

im_pseudo_diffusion_in_mask

bmImReshape

src/image123/bmImReshape.m

im_reshape

bmImResize

src/image123/bmImResize.m

im_resize

bmImZeroFill

src/image123/bmImZeroFill.m

im_zero_fill

bmMIP

src/imageN/bmMIP.m

mip

bmRMS

src/imageN/bmRMS.m

rms

monalisa.io

MATLAB

Upstream file

Python

Note

bmCheckDir

src/readWrite/bmCheckDir.m

check_dir

checkMetadataInteractive

src/rawDataReader/checkMetadataInteractive.m

check_metadata_interactive

correctMetadataInteractive

src/rawDataReader/correctMetadataInteractive.m

correct_metadata_interactive

bmCreateDir

src/readWrite/bmCreateDir.m

create_dir

createRawDataReader

src/rawDataReader/createRawDataReader.m

create_raw_data_reader

dhIsmrmrdReadMetaData

src/rawDataReader/ismrmrd/dhIsmrmrdReadMetaData.m

ismrmrd_read_meta_data

dhIsmrmrdReadRawData

src/rawDataReader/ismrmrd/dhIsmrmrdReadRawData.m

ismrmrd_read_raw_data

mleIsmrmrdReader

src/rawDataReader/ismrmrd/mleIsmrmrdReader.m

IsmrmrdReader

bmMriAcquisitionParam

src/mriRecon/class/bmMriAcquisitionParam.m

MriAcquisitionParam

mleRawDataReader

src/rawDataReader/mleRawDataReader.m

RawDataReader

dhSiemensReadMetaData

src/rawDataReader/siemens/dhSiemensReadMetaData.m

siemens_read_meta_data

bmSiemensReadRawData

src/rawDataReader/siemens/bmSiemensReadRawData.m

siemens_read_raw_data

mleSiemensReader

src/rawDataReader/siemens/mleSiemensReader.m

SiemensReader

monalisa.optim

MATLAB

Upstream file

Python

Note

bmAxpy

src/mathOp/bmAxpy.m

axpy

bmBackGradient

src/optim/bmBackGradient.m

back_gradient

bmBackGradient_n

src/optim/bmBackGradient_n.m

back_gradient_n

bmBackGradient_nT

src/optim/bmBackGradient_nT.m

back_gradient_n_t

bmBackGradientT

src/optim/bmBackGradientT.m

back_gradient_t

bmEuclideProd

src/mathOp/bmEuclideProd.m

euclidean_prod

spelling

bmInitialWitnessInfo

src/optim/bmInitialWitnessInfo.m

initial_witness_info

bmMinus

src/mathOp/bmMinus.m

minus

bmMult

src/mathOp/bmMult.m

mult

bmPlus

src/mathOp/bmPlus.m

plus

bmProx_oneNorm

src/linSpace/bmProx_oneNorm.m

prox_one_norm

bmSquaredNorm

src/mathOp/bmSquaredNorm.m

squared_norm

bmWitnessInfo

src/optim/bmWitnessInfo.m

WitnessInfo

bmY_norm

src/linSpace/bmY_norm.m

y_norm

bmY_ve_reshape

src/linSpace/bmY_ve_reshape.m

y_ve_reshape

monalisa.recon

MATLAB

Upstream file

Python

Note

bmMathilda

src/fourier123/map_function/nonCartesian/bmMathilda.m

mathilda

bmNasha

src/fourier123/map_function/nonCartesian/bmNasha.m

nasha

bmSensa

src/fourier123/solver_function/imDim/nonCartesian/bmSensa.m

sensa

bmSensitivaMorphosia_chain

src/fourier123/solver_function/imDim_morphosia/nonCartesian/bmSensitivaMorphosia_chain.m

sensitiva_morphosia_chain

bmSleva

src/fourier123/solver_function/imDim/nonCartesian/bmSleva.m

sleva

bmSteva

src/fourier123/solver_function/imDim/nonCartesian/bmSteva.m

steva

bmTevaDuoMorphosia_chain

src/fourier123/solver_function/imDim_morphosia/nonCartesian/bmTevaDuoMorphosia_chain.m

teva_duo_morphosia_chain

bmTevaMorphosia_chain

src/fourier123/solver_function/imDim_morphosia/nonCartesian/bmTevaMorphosia_chain.m

teva_morphosia_chain

monalisa.registration

MATLAB

Upstream file

Python

Note

bmImDeformFieldChain_imRegDemons23

src/imReg/m/bmImDeformFieldChain_imRegDemons23.m

im_deform_field_chain_im_reg_demons23

bmImDeformFieldSheet_imRegDemons23

src/imReg/m/bmImDeformFieldSheet_imRegDemons23.m

im_deform_field_sheet_im_reg_demons23

monalisa.sparse

MATLAB

Upstream file

Python

Note

bmSparseMat_blockPartition

src/sparseMat/m/bmSparseMat_blockPartition.m

sparse_mat_block_partition

bmSparseMat_completeMatlabSparse

src/sparseMat/m/bmSparseMat_completeMatlabSparse.m

sparse_mat_complete_matlab_sparse

bmSparseMat_matlabSparse2bmSparseMat

src/sparseMat/m/bmSparseMat_matlabSparse2bmSparseMat.m

sparse_mat_from_matlab_sparse

shorter, without the inner bm

bmSparseMat_r_nJump2index

src/sparseMat/m/bmSparseMat_r_nJump2index.m

sparse_mat_r_n_jump_to_index

bmSparseMat_vec

src/sparseMat/m/bmSparseMat_vec.m

sparse_mat_vec

bmSparseMat

src/sparseMat/m/bmSparseMat.m

SparseMat

monalisa.trajectory

MATLAB

Upstream file

Python

Note

bmLowRes

src/mriRecon/function/bmLowRes.m

low_res

bmPhyllotaxisAngle3

src/traj3/bmPhyllotaxisAngle3.m

phyllotaxis_angle3

bmTraj

src/trajN/bmTraj.m

traj

bmTraj_formatTraj

src/traj123/bmTraj_formatTraj.m

traj_format

word repeated

bmTraj_fullRadial3_phyllotaxis_lineAssym2

src/traj3/bmTraj_fullRadial3_phyllotaxis_lineAssym2.m

traj_full_radial3_phyllotaxis_line_assym2

bmTraj_N_u_dK_u

src/traj123/bmTraj_N_u_dK_u.m

traj_grid

returns N_u and dK_u, see the two lines above

bmTraj_N_u

src/traj123/bmTraj_N_u.m

traj_grid_size

N_u (grid size) and n_u (image size) differ only by case

bmTraj_dK_u

src/traj123/bmTraj_dK_u.m

traj_grid_step

dK_u (grid step) would become d_k_u

bmTraj_lineDirection

src/traj123/bmTraj_lineDirection.m

traj_line_direction

bmTraj_lineReshape

src/traj123/bmTraj_lineReshape.m

traj_line_reshape

bmTraj_nLine

src/traj123/bmTraj_nLine.m

traj_n_line

bmTraj_norm

src/traj123/bmTraj_norm.m

traj_norm

bmTraj_squaredNorm

src/traj123/bmTraj_squaredNorm.m

traj_squared_norm

monalisa.util

MATLAB

Upstream file

Python

Note

bmVarargin_N_u_dK_u

src/varargin/bmVarargin_N_u_dK_u.m

default_grid

default N_u and dK_u (guessed from the trajectory)

bmVarargin_kernelType_nWin_kernelParam

src/varargin/bmVarargin_kernelType_nWin_kernelParam.m

default_kernel

default kernelType, nWin and kernelParam

bmVarargin_sparseType

src/varargin/bmVarargin_sparseType.m

default_sparse_type

default sparseType

bmTimeInSecond

src/time/bmTimeInSecond.m

time_in_second

bmVarargin

src/varargin/bmVarargin.m

varargin

Methods

MATLAB

Python

Classes

readMetaData

read_meta_data

RawDataReader, SiemensReader, IsmrmrdReader

readRawData

read_raw_data

RawDataReader, SiemensReader, IsmrmrdReader