Source code for dragonfly.utils.sim_setup

#!/usr/bin/env python

'''Module to make simulated data.

This module provides a convenience wrapper that sequentially runs the
entire simulation pipeline: make_densities, make_intensities, make_detector,
and make_data.

Functions:
    main: Command-line interface to run full simulation pipeline.
'''

import sys
import os
import subprocess
import argparse
import logging

from dragonfly.utils import make_densities, make_intensities
from dragonfly.utils import make_detector, make_data

[docs] def main(): '''Runs through simulation utilities to generate data. Sequentially executes the following utilities: - **make_densities**: Generate electron density from PDB - **make_intensities**: Generate intensity from density - **make_detector**: Generate detector geometry - **make_data**: Generate photon diffraction patterns ''' logging.basicConfig(filename="simdata.log", level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') parser = argparse.ArgumentParser(description='Generates simulated data using standard pipeline') parser.add_argument("-c", "--config_file", dest="config_file", default="config.ini") parser.add_argument("-y", "--yes", action="store_true") parser.add_argument("--skip_densities", action="store_true") parser.add_argument("--skip_intensities", action="store_true") parser.add_argument("--skip_detector", action="store_true") parser.add_argument("--skip_data", action="store_true") args = parser.parse_args() logging.info("\n\nStarting.... setup") logging.info(' '.join(sys.argv)) base_dir = os.path.realpath(os.path.dirname(args.config_file)) print(base_dir) curr_dir = os.getcwd() os.chdir(base_dir) # Sequentially step through the simulation workflow if not args.skip_densities: print('make_densities...') make_densities.make_dens(args.config_file, yes=args.yes, verbose=True) if not args.skip_intensities: print('make_intensities...') make_intensities.make_intens(args.config_file, yes=args.yes, verbose=True) if not args.skip_detector: print('make_detector...') make_detector.make_detector(args.config_file, yes=args.yes, verbose=True) if not args.skip_data: print('make_data...') make_data.make_data(args.config_file, yes=args.yes, verbose=True) os.chdir(curr_dir)
if __name__ == "__main__": main()