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