annotate plot_smb_tiff.py @ 3:6be076b081c4 draft

planemo upload for repository https://github.com/rolfverberg/galaxytools commit b5d7c209a0ba024789ccfb89ec874e8b9c280149-dirty
author rv43
date Mon, 13 Mar 2023 15:49:12 +0000
parents 9f331fb5be2c
children 0ffa2fbc7546
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
1 #!/usr/bin/env python3
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
2
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
3 import logging
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
4
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
5 import argparse
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
6 import matplotlib.pyplot as plt
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
7 import os
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
8 #from re import compile as re_compile
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
9 import sys
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
10
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
11 def __main__():
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
12
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
13 # Parse command line arguments
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
14 parser = argparse.ArgumentParser(
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
15 description='Plot an image for the SMB schema')
3
6be076b081c4 planemo upload for repository https://github.com/rolfverberg/galaxytools commit b5d7c209a0ba024789ccfb89ec874e8b9c280149-dirty
rv43
parents: 0
diff changeset
16 parser.add_argument('-o', '--output_file',
6be076b081c4 planemo upload for repository https://github.com/rolfverberg/galaxytools commit b5d7c209a0ba024789ccfb89ec874e8b9c280149-dirty
rv43
parents: 0
diff changeset
17 help='''Output file name.''')
0
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
18 parser.add_argument('--cycle',
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
19 required=True,
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
20 help='''Run cycle.''')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
21 parser.add_argument('--station',
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
22 required=True,
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
23 choices=['id1a3', 'id3a'],
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
24 help='''Beamline station.''')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
25 parser.add_argument('--btr',
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
26 required=True,
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
27 help='''BTR.''')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
28 parser.add_argument('--sample',
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
29 required=True,
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
30 help='''Sample name.''')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
31 parser.add_argument('--scan_number',
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
32 default=-1,
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
33 type=int,
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
34 help='SPEC scan number')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
35 parser.add_argument('--image_index',
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
36 default=0,
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
37 type=int,
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
38 help='Image index relative the first')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
39 parser.add_argument('-l', '--log',
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
40 # type=argparse.FileType('w'),
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
41 default=sys.stdout,
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
42 help='Logging stream or filename')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
43 parser.add_argument('--log_level',
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
44 choices=logging._nameToLevel.keys(),
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
45 default='INFO',
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
46 help='''Specify a preferred logging level.''')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
47 args = parser.parse_args()
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
48
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
49 # Set log configuration
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
50 # When logging to file, the stdout log level defaults to WARNING
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
51 logging_format = '%(asctime)s : %(levelname)s - %(module)s : %(funcName)s - %(message)s'
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
52 level = logging.getLevelName(args.log_level)
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
53 if args.log is sys.stdout:
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
54 logging.basicConfig(format=logging_format, level=level, force=True,
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
55 handlers=[logging.StreamHandler()])
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
56 else:
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
57 if isinstance(args.log, str):
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
58 logging.basicConfig(filename=f'{args.log}', filemode='w',
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
59 format=logging_format, level=level, force=True)
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
60 elif isinstance(args.log, io.TextIOWrapper):
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
61 logging.basicConfig(filemode='w', format=logging_format, level=level,
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
62 stream=args.log, force=True)
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
63 else:
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
64 raise(ValueError(f'Invalid argument --log: {args.log}'))
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
65 stream_handler = logging.StreamHandler()
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
66 logging.getLogger().addHandler(stream_handler)
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
67 stream_handler.setLevel(logging.WARNING)
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
68 stream_handler.setFormatter(logging.Formatter(logging_format))
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
69
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
70 # Log command line arguments
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
71 logging.info(f'cycle = {args.cycle}')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
72 logging.info(f'station = {args.station}')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
73 logging.info(f'btr = {args.btr}')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
74 logging.info(f'sample = {args.sample}')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
75 logging.info(f'scan_number = {args.scan_number}')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
76 logging.info(f'image_index = {args.image_index}')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
77 logging.debug(f'log = {args.log}')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
78 logging.debug(f'is log stdout? {args.log is sys.stdout}')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
79
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
80 # Check input parameters
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
81 if args.image_index < 0:
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
82 raise ValueError(f'Invalid "image_index" parameter ({args.image_index})')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
83
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
84 # Check work directory
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
85 workdir = f'/nfs/chess/{args.station}/{args.cycle}/{args.btr}/{args.sample}'
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
86 logging.info(f'workdir = {workdir}')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
87 if not os.path.isdir(workdir):
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
88 raise ValueError('Invalid work directory: {workdir}')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
89
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
90 # Get all available scan_numbers
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
91 scan_numbers = [int(v) for v in os.listdir(workdir) if v.isdigit() and
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
92 os.path.isdir(f'{workdir}/{v}')]
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
93
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
94 if args.scan_number == -1:
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
95 # Pick lowest scan_number with image files
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
96 image_file = None
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
97 for scan_number in sorted(scan_numbers):
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
98 if 'nf' in os.listdir(f'{workdir}/{scan_number}'):
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
99 # indexRegex = re_compile(r'\d+')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
100 path = f'{workdir}/{scan_number}/nf'
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
101 # image_files = [f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f)) and
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
102 # f.endswith(".tif") and indexRegex.search(f)]
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
103 image_files = [f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f))
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
104 and f.endswith(".tif")]
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
105 if len(image_files):
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
106 image_file = f'{path}/{image_files[0]}'
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
107 break
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
108 else:
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
109 # Pick requested image file
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
110 scan_number = args.scan_number
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
111 if not os.path.isdir(f'{workdir}/{scan_number}'):
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
112 raise ValueError('Invalid scan_number (non-existing directory {workdir}/{scan_number})')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
113 path = f'{workdir}/{scan_number}/nf'
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
114 if 'nf' not in os.listdir(f'{workdir}/{scan_number}'):
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
115 raise ValueError('Unable to find directory {path}')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
116 image_files = [f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f))
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
117 and f.endswith(".tif")]
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
118 if args.image_index >= len(image_files):
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
119 raise ValueError('Unable to open the {args.image_index}th image file in {path}')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
120 image_file = f'{path}/{image_files[args.image_index]}'
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
121
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
122 # Plot image to file
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
123 if image_file is None:
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
124 raise ValueError('Unable to find a valid image')
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
125 data = plt.imread(image_file)
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
126 title = 'image_files[0]'
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
127 plt.figure(title)
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
128 plt.imshow(data)
3
6be076b081c4 planemo upload for repository https://github.com/rolfverberg/galaxytools commit b5d7c209a0ba024789ccfb89ec874e8b9c280149-dirty
rv43
parents: 0
diff changeset
129 plt.savefig(args.output_file)
0
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
130 plt.close(fig=title)
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
131
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
132 if __name__ == "__main__":
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
133 __main__()
9f331fb5be2c planemo upload for repository https://github.com/rolfverberg/galaxytools commit ec74ae97e0ca220d04cb668baa656358abf190e9
rv43
parents:
diff changeset
134