Mercurial > repos > imgteam > permutate_axis
annotate permutate_axis.py @ 1:5b82f2186244 draft
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit b2acc1845a25828181597fe5b6982fe116a7796d
author | imgteam |
---|---|
date | Mon, 22 Jul 2019 05:04:15 -0400 |
parents | 0bbe34198e24 |
children | 91e255c78eb5 |
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 sys |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
3 import warnings |
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 |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
6 import skimage.util |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
7 |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
8 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
|
9 images = [] |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
10 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
|
11 for i in permutate: |
1
5b82f2186244
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit b2acc1845a25828181597fe5b6982fe116a7796d
imgteam
parents:
0
diff
changeset
|
12 # TODO generalise |
0
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
13 if axis == 0: |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
14 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
|
15 elif axis == 1: |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
16 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
|
17 elif axis == 2: |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
18 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
|
19 elif axis == 3: |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
20 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
|
21 elif axis == 4: |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
22 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
|
23 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
|
24 |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
25 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
|
26 with warnings.catch_warnings(): |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
27 warnings.simplefilter("ignore") |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
28 res = skimage.util.img_as_uint(res) #Attention: precision loss |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
29 skimage.io.imsave(output_image_path, res, plugin='tifffile') |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
30 |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
31 if __name__ == "__main__": |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
32 parser = argparse.ArgumentParser() |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
33 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
|
34 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
|
35 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
|
36 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
|
37 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
|
38 |
0bbe34198e24
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/permutate_axis/ commit c3f4b766f03770f094fda6bda0a5882c0ebd4581
imgteam
parents:
diff
changeset
|
39 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
|
40 permutate_axis(args.input_file.name, args.out_file.name, args.axis, permutate) |