digraph exptphase {
        ranksep=".5 equally";
	node [shape=record,fontname="Helvetica"];
prephadata [label="{Prepare Data for HA Search | {{(REVISE)|<ecalc1> (ECALC)} | {<f0>|<ecalc2> (ECALC)} | {<f0>|<mtz2v1> (MTZ2VARIOUS)} | {(REVISE)|<mtz2v2> (MTZ2VARIOUS)}}}"];
        node [shape=ellipse,fixedsize,width=2.0,height=1.0,fontname="Helvetica"];
	unique_free [label="unique\nreflections\nwith FREE flag"];
	cad [shape=box,label="Merge\nDatasets\n(CAD)"];
	comb_data [label="combined\ndata"];
	scaleit [shape=box,label="Scale\nDatasets\nFHSCAL/SCALEIT"];
	scal_data [label="scaled data\n(native &\n'derivatives')"];
	node [shape=ellipse];
	fft_patt [shape=box,label="Generate\nPatterson Map\n(FFT)"];
	extern_prog [shape=box,style=filled,fillcolor=lightgrey,label="External\nPrograms"];
	mad_ea [label="MAD data\n'EA'"];
	sirsad1 [label="SIR/SAD\ndifferences\nDiso/Dano"];
	sirsad2 [label="SIR/SAD\ndifferences\nDiso/Dano"];
	mad_fa [label="MAD data\n'FA'"];
	map_peaks [label="map\nwith\npeaks"];
	acorn [shape=box,label="Acorn\nab initio Phasing"];
	rantan [shape=box,label="Rantan\nDirect Methods"];
	shelx [shape=box,label="Shelx\nHeavy Atom Search\n(Direct Methods\nor Patterson)"];
	oasis [shape=box,label="Oasis\nSAD/SIR phasing"];
	rsps [shape=box,label="Real Space\nPatterson Search"];
	ha_sites [label="heavy\natom\nsites"];
	mlphare [shape=box,label="Run MLPHARE"];
	professs [shape=box,label="Professs\nNCS from HA"];
	dmphases_out [label="phases ready for\ndensity\nmodification"];
	sites_phases [label="refined sites\nand calculated\nphases"];
	fft_diff [shape=box,label="Difference Fourier\n(FFT)"];
	more_sites [label="more sites"];
	ncsop [label="NCS operators"];
	blank [style=invis];
//
	unique_free -> cad -> comb_data -> scaleit -> scal_data;
	scal_data -> prephadata [weight=8];
	scal_data -> oasis [weight=4];
	scal_data -> fft_patt;
	scal_data -> extern_prog;
	fft_patt -> extern_prog [style=invis];
	prephadata:ecalc1 -> mad_ea [weight=8];
	prephadata:ecalc2 -> sirsad1 [weight=8];
	prephadata:mtz2v1 -> sirsad2 [weight=8];
	prephadata:mtz2v2 -> mad_fa [weight=8];
	mad_ea -> acorn [weight=8];
	sirsad1 -> rantan [weight=8];
	mad_ea -> rantan;
	sirsad1 -> acorn;
	sirsad2 -> shelx;
	mad_fa -> shelx;
	acorn -> rantan -> shelx -> oasis -> rsps [style=invis];
	fft_patt -> map_peaks -> rsps;
	acorn -> ha_sites;
	rantan -> ha_sites;
	shelx -> ha_sites;
	oasis -> ha_sites;
	rsps -> ha_sites;
	extern_prog -> ha_sites;
	ha_sites -> more_sites [style=invis];
	more_sites -> mlphare;
	more_sites -> fft_diff [dir=back];
	fft_diff -> blank [style=invis];
	blank -> mlphare [style=invis];
	fft_diff -> sites_phases -> mlphare [dir=back];
	ha_sites -> professs -> ncsop;
	ha_sites -> mlphare [weight=8];
	mlphare -> dmphases_out;
	{rank=same;fft_patt;extern_prog};
	{rank=same;acorn;rantan;shelx;oasis;rsps};
	{rank=same;fft_diff;blank;mlphare;professs};
}
digraph exptphase {
        ranksep=".5 equally";
	node [shape=record,fontname="Helvetica"];
prephadata [label="{Prepare Data for HA Search | {{(REVISE)|<ecalc1> (ECALC)} | {<f0>|<ecalc2> (ECALC)} | {<f0>|<mtz2v1> (MTZ2VARIOUS)} | {(REVISE)|<mtz2v2> (MTZ2VARIOUS)}}}"];
        node [shape=ellipse,fixedsize,width=2.0,height=1.0,fontname="Helvetica"];
	unique_free [label="unique\nreflections\nwith FREE flag"];
	cad [shape=box,label="Merge\nDatasets\n(CAD)"];
	comb_data [label="combined\ndata"];
	scaleit [shape=box,label="Scale\nDatasets\nFHSCAL/SCALEIT"];
	scal_data [label="scaled data\n(native &\n'derivatives')"];
	node [shape=ellipse];
	fft_patt [shape=box,label="Generate\nPatterson Map\n(FFT)"];
	extern_prog [shape=box,style=filled,fillcolor=lightgrey,label="External\nPrograms"];
	mad_ea [label="MAD data\n'EA'"];
	sirsad1 [label="SIR/SAD\ndifferences\nDiso/Dano"];
	sirsad2 [label="SIR/SAD\ndifferences\nDiso/Dano"];
	mad_fa [label="MAD data\n'FA'"];
	map_peaks [label="map\nwith\npeaks"];
	acorn [shape=box,label="Acorn\nab initio Phasing"];
	rantan [shape=box,label="Rantan\nDirect Methods"];
	shelx [shape=box,label="Shelx\nHeavy Atom Search\n(Direct Methods\nor Patterson)"];
	oasis [shape=box,label="Oasis\nSAD/SIR phasing"];
	rsps [shape=box,label="Real Space\nPatterson Search"];
	ha_sites [label="heavy\natom\nsites"];
	mlphare [shape=box,label="Run MLPHARE"];
	professs [shape=box,label="Professs\nNCS from HA"];
	dmphases_out [label="phases ready for\ndensity\nmodification"];
	sites_phases [label="refined sites\nand calculated\nphases"];
	fft_diff [shape=box,label="Difference Fourier\n(FFT)"];
	more_sites [label="more sites"];
	ncsop [label="NCS operators"];
	blank [style=invis];
//
	unique_free -> cad -> comb_data -> scaleit -> scal_data;
	scal_data -> prephadata [weight=8];
	scal_data -> oasis [weight=4];
	scal_data -> fft_patt;
	scal_data -> extern_prog;
	fft_patt -> extern_prog [style=invis];
	prephadata:ecalc1 -> mad_ea [weight=8];
	prephadata:ecalc2 -> sirsad1 [weight=8];
	prephadata:mtz2v1 -> sirsad2 [weight=8];
	prephadata:mtz2v2 -> mad_fa [weight=8];
	mad_ea -> acorn [weight=8];
	sirsad1 -> rantan [weight=8];
	mad_ea -> rantan;
	sirsad1 -> acorn;
	sirsad2 -> shelx;
	mad_fa -> shelx;
	acorn -> rantan -> shelx -> oasis -> rsps [style=invis];
	fft_patt -> map_peaks -> rsps;
	acorn -> ha_sites;
	rantan -> ha_sites;
	shelx -> ha_sites;
	oasis -> ha_sites;
	rsps -> ha_sites;
	extern_prog -> ha_sites;
	ha_sites -> more_sites [style=invis];
	more_sites -> mlphare;
	more_sites -> fft_diff [dir=back];
	fft_diff -> blank [style=invis];
	blank -> mlphare [style=invis];
	fft_diff -> sites_phases -> mlphare [dir=back];
	ha_sites -> professs -> ncsop;
	ha_sites -> mlphare [weight=8];
	mlphare -> dmphases_out;
	{rank=same;fft_patt;extern_prog};
	{rank=same;acorn;rantan;shelx;oasis;rsps};
	{rank=same;fft_diff;blank;mlphare;professs};
}
