Rosetta
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
initialization.py
Go to the documentation of this file.
1 import sys
2 import os
3 import os.path
4 
6  """Read rosetta database directory from environment or standard install locations.
7 
8  Returns database path if found, else None."""
9 
10  from rosetta import logger
11  from rosetta import __path__ as rosetta_root
12 
13  candidate = os.path.join(rosetta_root[0], "database")
14  if os.path.isdir(candidate):
15  database = os.path.abspath(candidate)
16  logger.info('Found rosetta database at: %s', database)
17  return database
18 
19  # No database found.
20  return None
21 
22 def init(options='-ex1 -ex2aro', extra_options='', set_logging_handler=True):
23  """Initialize Rosetta. Includes core data and global options.
24 
25  options string with default Rosetta command-line options args.
26  (default: '-ex1 -ex2aro')
27  kargs -
28  extra_options - Extra command line options to pass rosetta init.
29  (default None)
30  set_logging_handler - Route rosetta tracing through logging logger 'rosetta'.
31  (default True)
32 
33  Examples:
34  init() # uses default flags
35  init(extra_options='-pH') # adds flags to supplement the default
36  init('-pH -database /home/me/pyrosetta/rosetta_database') # overrides default flags - be sure to include the dB last
37  """
38 
39  # Initialize rosetta logging handlers.
40  from rosetta import logger, __version__
41 
42  import rosetta.logging_support as logging_support
43 
44  logging_support.initialize_logging()
45 
46  if set_logging_handler:
47  logging_support.set_logging_handler()
48 
49  # Setup library-level exit callbacks
50  from rosetta.utility import PythonPyExitCallback
51  PythonPyExitCallback.setup()
52 
53  # Perform core/protocol level initialization
54  from rosetta.utility import vector1_string
55 
56  args = ['pyrosetta'] + options.split() + extra_options.split()
57 
58  # Attempt to resolve database location from environment if not present, else fallback
59  # to rosetta's standard resolution
60  if not "-database" in args:
61  database = rosetta_database_from_env()
62  if database is not None:
63  args.extend(["-database", database])
64 
65  init_args = vector1_string()
66  init_args.extend(args)
67 
68  logger.info("Version: %s", __version__)
69 
70  try:
71  from rosetta.protocols.init import init
72  except ImportError:
73  from rosetta.core.init import init
74 
75  init(init_args)