Mercurial > repos > rv43 > tomo
annotate tomo_find_center.py @ 73:adb84c450789 draft
planemo upload for repository https://github.com/rolfverberg/galaxytools commit 366e516aef0735af2998c6ff3af037181c8d5213-dirty
| author | rv43 | 
|---|---|
| date | Mon, 20 Mar 2023 17:30:24 +0000 | 
| parents | 1cf15b61cd83 | 
| children | d5e1d4ea2b7e | 
| rev | line source | 
|---|---|
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 1 #!/usr/bin/env python3 | 
| 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 2 | 
| 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 3 import logging | 
| 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 4 | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 5 import argparse | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 6 import pathlib | 
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 7 import sys | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 8 #import tracemalloc | 
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 9 | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 10 from workflow.run_tomo import Tomo | 
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 11 | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 12 #from memory_profiler import profile | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 13 #@profile | 
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 14 def __main__(): | 
| 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 15 # Parse command line arguments | 
| 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 16 parser = argparse.ArgumentParser( | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 17 description='Reduce tomography data') | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 18 parser.add_argument('-i', '--input_file', | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 19 required=True, | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 20 type=pathlib.Path, | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 21 help='''Full or relative path to the input file (in Nexus format).''') | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 22 parser.add_argument('-o', '--output_file', | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 23 required=False, | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 24 type=pathlib.Path, | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 25 help='''Full or relative path to the output file (in yaml format).''') | 
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 26 parser.add_argument('--center_rows', | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 27 nargs=2, | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 28 type=int, | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 29 help='''Center finding rows.''') | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 30 parser.add_argument('--galaxy_flag', | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 31 action='store_true', | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 32 help='''Use this flag to run the scripts as a galaxy tool.''') | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 33 parser.add_argument('-l', '--log', | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 34 # type=argparse.FileType('w'), | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 35 default=sys.stdout, | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 36 help='Logging stream or filename') | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 37 parser.add_argument('--log_level', | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 38 choices=logging._nameToLevel.keys(), | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 39 default='INFO', | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 40 help='''Specify a preferred logging level.''') | 
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 41 args = parser.parse_args() | 
| 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 42 | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 43 # Set log configuration | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 44 # When logging to file, the stdout log level defaults to WARNING | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 45 logging_format = '%(asctime)s : %(levelname)s - %(module)s : %(funcName)s - %(message)s' | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 46 level = logging.getLevelName(args.log_level) | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 47 if args.log is sys.stdout: | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 48 logging.basicConfig(format=logging_format, level=level, force=True, | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 49 handlers=[logging.StreamHandler()]) | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 50 else: | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 51 if isinstance(args.log, str): | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 52 logging.basicConfig(filename=f'{args.log}', filemode='w', | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 53 format=logging_format, level=level, force=True) | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 54 elif isinstance(args.log, io.TextIOWrapper): | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 55 logging.basicConfig(filemode='w', format=logging_format, level=level, | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 56 stream=args.log, force=True) | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 57 else: | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 58 raise(ValueError(f'Invalid argument --log: {args.log}')) | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 59 stream_handler = logging.StreamHandler() | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 60 logging.getLogger().addHandler(stream_handler) | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 61 stream_handler.setLevel(logging.WARNING) | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 62 stream_handler.setFormatter(logging.Formatter(logging_format)) | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 63 | 
| 15 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 rv43 parents: 
13diff
changeset | 64 # Starting memory monitoring | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 65 # tracemalloc.start() | 
| 15 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 rv43 parents: 
13diff
changeset | 66 | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 67 # Log command line arguments | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 68 logging.info(f'input_file = {args.input_file}') | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 69 logging.info(f'output_file = {args.output_file}') | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 70 logging.info(f'center_rows = {args.center_rows}') | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 71 logging.info(f'galaxy_flag = {args.galaxy_flag}') | 
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 72 logging.debug(f'log = {args.log}') | 
| 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 73 logging.debug(f'is log stdout? {args.log is sys.stdout}') | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 74 logging.debug(f'log_level = {args.log_level}') | 
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 75 | 
| 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 76 # Instantiate Tomo object | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 77 tomo = Tomo(galaxy_flag=args.galaxy_flag) | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 78 | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 79 # Read input file | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 80 data = tomo.read(args.input_file) | 
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 81 | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 82 # Find the calibrated center axis info | 
| 71 
1cf15b61cd83
planemo upload for repository https://github.com/rolfverberg/galaxytools commit 366e516aef0735af2998c6ff3af037181c8d5213
 rv43 parents: 
69diff
changeset | 83 data = tomo.find_centers(data, center_rows=args.center_rows) | 
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 84 | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 85 # Write output file | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 86 data = tomo.write(data, args.output_file) | 
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 87 | 
| 15 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 rv43 parents: 
13diff
changeset | 88 # Displaying memory usage | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 89 # logging.info(f'Memory usage: {tracemalloc.get_traced_memory()}') | 
| 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 90 | 
| 15 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 rv43 parents: 
13diff
changeset | 91 # stopping memory monitoring | 
| 69 
fba792d5f83b
planemo upload for repository https://github.com/rolfverberg/galaxytools commit ab9f412c362a4ab986d00e21d5185cfcf82485c1
 rv43 parents: 
68diff
changeset | 92 # tracemalloc.stop() | 
| 15 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 rv43 parents: 
13diff
changeset | 93 | 
| 3 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 94 if __name__ == "__main__": | 
| 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 rv43 parents: diff
changeset | 95 __main__() | 
