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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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)