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

Fix bugs resample #82

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
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
65 changes: 28 additions & 37 deletions deep_folding/brainvisa/resample_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,12 @@
_SKELETON_DIR_DEFAULT, \
_RESAMPLED_SKELETON_DIR_DEFAULT

_SKELETON_FILENAME = "skeleton_generated_"
_FOLDLABEL_FILENAME = "foldlabel_"
_EXTREMITIES_FILENAME = "extremities_"
_RESAMPLED_SKELETON_FILENAME = "resampled_skeleton_"
_RESAMPLED_FOLDLABEL_FILENAME = "resampled_foldlabel_"
_RESAMPLED_EXTREMITIES_FILENAME = "resampled_extremities_"
_SKELETON_FILENAME = "skeleton_generated"
_FOLDLABEL_FILENAME = "foldlabel"
_EXTREMITIES_FILENAME = "extremities"
_RESAMPLED_SKELETON_FILENAME = "resampled_skeleton"
_RESAMPLED_FOLDLABEL_FILENAME = "resampled_foldlabel"
_RESAMPLED_EXTREMITIES_FILENAME = "resampled_extremities"


# Defines logger
Expand Down Expand Up @@ -471,9 +471,9 @@ def __init__(self, src_dir, resampled_dir, transform_dir,
out_voxel_size: float giving voxel size in mm
parallel: does parallel computation if True
src_filename : name of skeleton files
(format : "<SIDE><src_filename><SUBJECT>.nii.gz")
(format : "<SIDE><src_filename>_<SUBJECT>.nii.gz")
output_filename : name of generated files
(format : "<SIDE><output_filename><SUBJECT>.nii.gz")
(format : "<SIDE><output_filename>_<SUBJECT>.nii.gz")
"""
super(SkeletonResampler, self).__init__(
src_dir=src_dir, resampled_dir=resampled_dir,
Expand All @@ -491,17 +491,17 @@ def __init__(self, src_dir, resampled_dir, transform_dir,
# self.src_dir,
# '%(side)sskeleton_generated_%(subject)s.nii.gz')
self.src_file = join(self.src_dir,
'%(side)s' + src_filename + '%(subject)s.nii.gz')
f'%(side)s{src_filename}_%(subject)s.nii.gz')

# Names of files in function of dictionary: keys -> 'subject' and
# 'side'
self.src_filename = src_filename
self.resampled_file = join(
self.resampled_dir,
'%(side)s' + output_filename + '%(subject)s.nii.gz')
f'%(side)s{output_filename}_%(subject)s.nii.gz')

# subjects are detected as the nifti file names under src_dir
self.expr = '^.' + src_filename + '(.*).nii.gz$'
self.expr = f'^.{src_filename}_(.*).nii.gz$'

@staticmethod
def resample_one_subject(src_file: str,
Expand Down Expand Up @@ -540,9 +540,9 @@ def __init__(self, src_dir, resampled_dir, transform_dir,
out_voxel_size: float giving voxel size in mm
parallel: does parallel computation if True
src_filename : name of fold label files
(format : "<SIDE><src_filename><SUBJECT>.nii.gz")
(format : "<SIDE><src_filename>_<SUBJECT>.nii.gz")
output_filename : name of generated files
(format : "<SIDE><output_filename><SUBJECT>.nii.gz")
(format : "<SIDE><output_filename>_<SUBJECT>.nii.gz")
"""
super(FoldLabelResampler, self).__init__(
src_dir=src_dir, resampled_dir=resampled_dir,
Expand All @@ -554,18 +554,18 @@ def __init__(self, src_dir, resampled_dir, transform_dir,
# Src directory contains either 'R' or 'L' a subdirectory
self.src_file = join(
self.src_dir,
'%(side)s' + src_filename + '%(subject)s.nii.gz')
f'%(side)s{src_filename}_%(subject)s.nii.gz')

# Names of files in function of dictionary: keys -> 'subject' and
# 'side'
self.src_filename = src_filename
self.resampled_dir = self.resampled_dir + "_before_masking"
self.resampled_file = join(
self.resampled_dir,
'%(side)s' + output_filename + '%(subject)s.nii.gz')
f'%(side)s{output_filename}_%(subject)s.nii.gz')

# subjects are detected as the nifti file names under src_dir
self.expr = '^.' + src_filename + '(.*).nii.gz$'
self.expr = f'^.{src_filename}_(.*).nii.gz$'

@staticmethod
def resample_one_subject(src_file: str,
Expand Down Expand Up @@ -598,9 +598,9 @@ def __init__(self, src_dir, resampled_dir, transform_dir,
out_voxel_size: float giving voxel size in mm
parallel: does parallel computation if True
src_filename : name of fold label files
(format : "<SIDE><src_filename><SUBJECT>.nii.gz")
(format : "<SIDE><src_filename>_<SUBJECT>.nii.gz")
output_filename : name of generated files
(format : "<SIDE><output_filename><SUBJECT>.nii.gz")
(format : "<SIDE><output_filename>_<SUBJECT>.nii.gz")
"""
super(ExtremitiesResampler, self).__init__(
src_dir=src_dir, resampled_dir=resampled_dir,
Expand All @@ -612,18 +612,18 @@ def __init__(self, src_dir, resampled_dir, transform_dir,
# Src directory contains either 'R' or 'L' a subdirectory
self.src_file = join(
self.src_dir,
'%(side)s' + src_filename + '%(subject)s.nii.gz')
f'%(side)s{src_filename}_%(subject)s.nii.gz')

# Names of files in function of dictionary: keys -> 'subject' and
# 'side'
self.src_filename = src_filename
self.resampled_dir = self.resampled_dir + "_before_masking"
self.resampled_file = join(
self.resampled_dir,
'%(side)s' + output_filename + '%(subject)s.nii.gz')
f'%(side)s{output_filename}_%(subject)s.nii.gz')

# subjects are detected as the nifti file names under src_dir
self.expr = '^.' + src_filename + '(.*).nii.gz$'
self.expr = f'^.{src_filename}_(.*).nii.gz$'

@staticmethod
def resample_one_subject(src_file: str,
Expand Down Expand Up @@ -665,17 +665,17 @@ def __init__(self, src_dir, resampled_dir, transform_dir,
# Src directory contains either 'R' or 'L' a subdirectory
self.src_file = join(
self.src_dir,
'%(side)s' + src_filename + '%(subject)s.nii.gz')
f'%(side)s{src_filename}_%(subject)s.nii.gz')

# Names of files in function of dictionary: keys -> 'subject' and
# 'side'
self.src_filename = src_filename
self.resampled_file = join(
self.resampled_dir,
'%(side)s' + output_filename + '%(subject)s.nii.gz')
f'%(side)s{output_filename}_%(subject)s.nii.gz')

# subjects are detected as the nifti file names under src_dir
self.expr = '^.' + src_filename + '(.*).nii.gz$'
self.expr = f'^.{src_filename}_(.*).nii.gz$'

@staticmethod
def resample_one_subject(src_file: str,
Expand Down Expand Up @@ -744,15 +744,15 @@ def parse_args(argv):
parser.add_argument(
"-f", "--src_filename", type=str, default=_SKELETON_FILENAME,
help='Filename of sources files. '
'Format is : "<SIDE><src_filename><SUBJECT>.nii.gz" '
'Format is : "<SIDE><src_filename>_<SUBJECT>.nii.gz" '
'Default is : ' + _SKELETON_FILENAME)
parser.add_argument(
"-e",
"--output_filename",
type=str,
default=_RESAMPLED_SKELETON_FILENAME,
help='Filename of output files. '
'Format is : "<SIDE><output_filename><SUBJECT>.nii.gz" '
'Format is : "<SIDE><output_filename>_<SUBJECT>.nii.gz" '
'Default is : ' +
_RESAMPLED_SKELETON_FILENAME)
parser.add_argument(
Expand All @@ -761,27 +761,18 @@ def parse_args(argv):
'If no option is provided then logging.INFO is selected. '
'If one option -v (or -vv) or more is provided '
'then logging.DEBUG is selected.')

params = {}


args = parser.parse_args(argv)

setup_log(args,
log_dir=f"{args.output_dir}",
prog_name=basename(__file__),
suffix='right' if args.side == 'R' else 'left')

params['src_dir'] = args.src_dir
params['input_type'] = args.input_type
params = vars(args)
params['resampled_dir'] = args.output_dir
params['transform_dir'] = args.transform_dir
params['side'] = args.side
params['out_voxel_size'] = args.out_voxel_size
params['parallel'] = args.parallel
# Checks if nb_subjects is either the string "all" or a positive integer
params['nb_subjects'] = get_number_subjects(args.nb_subjects)
params['src_filename'] = args.src_filename
params['output_filename'] = args.output_filename

# Removes renamed params
# So that we can use params dictionary directly as function arguments
Expand Down