digraph molrep {
        ranksep=".5 equally";
        node [fixedsize,width=2.0,height=1.0,fontname="Helvetica"];
	merged_data [label="merged\nreflection\ndata"];
	modelmap [label="model\n(E-)map"];
	modelcoords [label="model\ncoordinates"];
	sfall [shape=box,label="Create Input SFs\nfrom Model\n(SFALL)"];
	ecalc [shape=box,label="(ECALC)"];
	node [shape=record];
		modeller [label="{Edit Protein Structure | (MODELLER)}"];
	node [shape=ellipse];
	modelsfs_es [label="model\nstructure factors\nor Es"];
	opt_mrmodel [label="optimised\nMR model(s)"];
	mr_database [shape=box,label="AMoRe\nModel Database"];
	mrmodel [label="MR model(s)"];
	beast [shape=box,label="Beast - likelihood\nbased MR"];
	molrep [shape=box,label="Molrep - auto MR"];
	amore [shape=box,label="AMoRe"];
	nextsol [label="solutions\nready for\nnext stage"];
	beastmrsol [label="MR\nsolutions"];
	amoremrsol [label="MR\nsolutions"];
	mr_edit [shape=box,label="Edit AMoRe\nSolution File"];
	pdbset [shape=box,label="Edit PDB File\n(PDBSET)"];
	mr_solution [shape=box,label="Build AMoRe\nOutput Model\n(PDBSET/DISTANG)"];
	coordsready [label="coordinates ready\nfor model building &\nrefinement"];
	node [shape=record];
                modeller2 [label="{Edit Protein Structure | (MODELLER)}"];
        node [shape=ellipse];
	blank [style=invis];
	coords_out [fixedsize=false,label="sequence-adapted coordinates\nready for\nmodel building & refinement"];
//
	merged_data -> beast -> beastmrsol -> pdbset -> coordsready;
	merged_data -> molrep -> coordsready -> modeller2 -> coords_out;
	merged_data -> mr_database -> mrmodel -> amore -> amoremrsol -> mr_solution -> coordsready;
	beast -> molrep -> blank -> amore [style=invis];
	merged_data -> modelmap -> modelcoords [style=invis];
	modelmap -> sfall -> modelsfs_es -> mr_database;
	modelcoords -> sfall [style=dashed];
	modelcoords -> ecalc -> modelsfs_es [style=dashed];
	modelcoords -> mr_database [style=dashed];
	modelcoords -> modeller -> opt_mrmodel -> mr_database;
	amore -> nextsol -> mr_edit [dir=back,style=dashed];
	amoremrsol -> mr_edit [style=dashed];
//
	{rank=same;beast;molrep;blank;amore};
	{rank=same;merged_data;modelmap;modelcoords};
	{rank=same;sfall;ecalc;modeller};
	{rank=same;amore;nextsol};
	{rank=same;amoremrsol;mr_edit};
}
