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
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.
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.
- Once the job is complete, note the
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)¶