Mercurial > repos > imgteam > permutate_axis
annotate permutate_axis.py @ 3:7e7215e721af draft default tip
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
author | imgteam |
---|---|
date | Mon, 13 Nov 2023 22:11:38 +0000 |
parents | 91e255c78eb5 |
children |
rev | line source |
---|---|
0
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
1 import argparse |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
2 import warnings |
3
7e7215e721af
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
imgteam
parents:
2
diff
changeset
|
3 |
0
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
4 import numpy as np |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
5 import skimage.io |
3
7e7215e721af
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
imgteam
parents:
2
diff
changeset
|
6 import skimage.util |
7e7215e721af
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
imgteam
parents:
2
diff
changeset
|
7 |
0
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
8 |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
9 def permutate_axis(input_image_path, output_image_path, axis, permutate): |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
10 images = [] |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
11 raw_image = skimage.io.imread(input_image_path, plugin='tifffile') |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
12 for i in permutate: |
3
7e7215e721af
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
imgteam
parents:
2
diff
changeset
|
13 # TODO generalise |
0
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
14 if axis == 0: |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
15 a_slice = raw_image[i] |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
16 elif axis == 1: |
3
7e7215e721af
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
imgteam
parents:
2
diff
changeset
|
17 a_slice = raw_image[:, i] |
0
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
18 elif axis == 2: |
3
7e7215e721af
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
imgteam
parents:
2
diff
changeset
|
19 a_slice = raw_image[:, :, i] |
0
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
20 elif axis == 3: |
3
7e7215e721af
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
imgteam
parents:
2
diff
changeset
|
21 a_slice = raw_image[:, :, :, i] |
0
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
22 elif axis == 4: |
3
7e7215e721af
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
imgteam
parents:
2
diff
changeset
|
23 a_slice = raw_image[:, :, :, :, i] |
0
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
24 images.append(np.expand_dims(a_slice, axis)) |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
25 |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
26 res = np.concatenate(images, axis) |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
27 with warnings.catch_warnings(): |
3
7e7215e721af
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
imgteam
parents:
2
diff
changeset
|
28 warnings.simplefilter("ignore") |
7e7215e721af
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
imgteam
parents:
2
diff
changeset
|
29 res = skimage.util.img_as_uint(res) # Attention: precision loss |
7e7215e721af
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
imgteam
parents:
2
diff
changeset
|
30 skimage.io.imsave(output_image_path, res, plugin='tifffile') |
7e7215e721af
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/permutate_axis/ commit 2286a6c9da88596349ed9d967c51541409c0a7bf
imgteam
parents:
2
diff
changeset
|
31 |
0
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
32 |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
33 if __name__ == "__main__": |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
34 parser = argparse.ArgumentParser() |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
35 parser.add_argument('input_file', type=argparse.FileType('r'), help='input file') |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
36 parser.add_argument('out_file', type=argparse.FileType('w'), help='out file (TIFF)') |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
37 parser.add_argument('permutate', help='new channel order', default='0,1,2', type=str) |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
38 parser.add_argument('--axis', dest='axis', type=int, default=0, help='concatenation axis') |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
39 args = parser.parse_args() |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
40 |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
41 permutate = [int(item) for item in args.permutate.split(',')] |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
42 permutate_axis(args.input_file.name, args.out_file.name, args.axis, permutate) |