You have already seen the graphs. Pretty much self-explanatory. Think of them in terms of data flow.

One funny aside. Not all dependencies are alike.

from import bulk

from asr.relax import main as relax
from import main as gs

atoms = bulk('Ag')

relaxrecord = relax(atoms, calculator=dict(name='emt'))
relaxed_atoms = relaxrecord.result.atoms

gsrecord = gs(relaxed_atoms,
              calculator=dict(name='gpaw', precision='low', txt=None))

The same behaviour can be obtained at the command line:

$ ase build Ag unrelaxed.json -x fcc

$ asr run "relax --calculator name='emt'" | asr run "gs --atoms stdin.result.atoms --calculator name='gpaw',precision='low',txt=None"