schrodinger.seam.examples.rescount module

A workflow that reads in a set of structures and returns the total number of residues in them.

COMPLEXITY: low CONCEPTS: autoscaling, log processing, monitoring, error handling, checkpointing

TUTORIAL EXERCISES

  1. Run the example with the default settings:

    $SCHRODINGER/run seam_example.py rescount
    
  • Notice in the log how the workflow gets split into stages

  • Explore the “seam/” directory that’s generated. It contains logs and

    other information about the workflow. See the “seam/logs/README” file for information on how to interpret the logs.

  1. Run the example with a per-residue CPU time of 2 seconds (job will take ~3 minutes):

    $SCHRODINGER/run seam_example.py rescount --per-residue-cpu-time 2 -HOST localhost:12
    
  • You can poll the job status and the subjobs it generates by running $SCHRODINGER/jsc list

  • Notice how only 8 subjobs are started. This is because based on the amount of work, we only

    need 8 subjobs.

  • The job will report what percentage of stages are complete

  • To visually monitor the job, run $SCHRODINGER/run seamcli.py watcher

  • Once the job is complete, note the seam/ directory again. Notice the additional logs from

    the subjobs.

  1. Set the environment variable SCHRODINGER_CRASH_RESCOUNT to True and run the example:

    > export SCHRODINGER_CRASH_RESCOUNT=True
    > $SCHRODINGER/run seam_example.py rescount
    
  • Notice how the job fails and the logs in the seam/ directory show the error.

Unset the environment variable and run the example again to see it succeed:

unset SCHRODINGER_CRASH_RESCOUNT
$SCHRODINGER/run seamcli.py resume seam/
schrodinger.seam.examples.rescount.analyze(residue, sleep_time=0)

Analyze a residue.

This function just sleeps and then returns the residue. It is used to demonstrate how seam works with computationally expensive transforms.

schrodinger.seam.examples.rescount.parse_args(args)
schrodinger.seam.examples.rescount.main(args=None)