digraph inout {
   Graph [rankdir=TB,overlap=scale]
   Node [shape="rectangle"];

   
   subgraph cluster_fasta {
 
   fasta      [label="fasta\nsequence file",rank=1]
   fastanuc   [label="nucleic fasta",rank=2];
   fastataxid [label="nucleic fasta\nwith taxid tag",rank=3];
   fastapep   [label="peptidic fasta",rank=2];
   
   graph [rankdir=LR]
   fastataxid -> fastanuc
   fastapep -> fasta
   fastanuc -> fasta
   }

   fasta454   [label="nucleic fasta\n454 sequencer (fna)",rank=3];

   fastq      [label="nucleic fastq\nwith quality"]
 
   genbank    [label="nucleic genbank file"]
   embl       [label="nucleic embl file"]
   taxdump    [label="NCBI Taxonomy dump\ntaxdump directory"]
   
   ecopcrout  [label="ecoPCR\nresult file"]
   ecopcrdb   [shape="record" label="{<DB> ecoPCR DB | {<Tax> Taxonomy| <Seq> Sequences}}"]
   
   ecotagout  [label="ecoTag.py\nresult file"]
   ecotagabsfile [label="ecoTag.py\nabstract file"]
   
   specificityrepport [label="taxonomy\nspecificity report"]
   taxstatrepport     [label="taxonomy\nstatistic report"]
   
   rdataframe  [label="R data frame\ntabular file"]
   
   node [shape="oval"];
   edge [arrowhead=open];
   
   convert2fasta [label="convert2fasta.py"]
   
   genbank           -> convert2fasta   [color=red]
   embl              -> convert2fasta   [color=red]
   fasta454          -> convert2fasta   [color=red]
   
   convert2fasta     -> fastanuc        [color=green]

   ecopcr2fasta [label="ecopcr2fasta.py"]
   
   ecopcrout         -> ecopcr2fasta    [color=red]
   ecopcr2fasta      -> fastanuc        [color=green]

   ecotag       [label="ecoTag.py"]
   
   fastanuc          -> ecotag          [color=red]
   ecopcrdb:Tax      -> ecotag          [color=pink,style=dotted,label="taxonomy"]
   fastataxid        -> ecotag          [color=pink,style=dotted,label="reference"]
   ecotag            -> ecotagout       [color=green]
   
   ecotagabstract  [label="ecoTagAbstract.py"]
   
   ecotagout         -> ecotagabstract  [color=red]
   ecopcrdb          -> ecotagabstract  [color=pink,style=dotted,label="taxonomy"]
   ecotagabstract    -> ecotagabsfile   [color=green]
   
   ecotagmargeabstract [label="ecoTagMergeAbstract.py"]
   
   ecotagabsfile     -> ecotagmargeabstract [color=red]
   ecotagabsfile     -> ecotagmargeabstract [color=red]
   ecotagabsfile     -> ecotagmargeabstract [color=red]
   ecotagmargeabstract -> rdataframe        [color=green]
   
   
   ecotaxspecificity [label="ecoTaxSpecificity.py"]
   
   ecopcrout         -> ecotaxspecificity  [color=red]
   ecopcrdb          -> ecotaxspecificity  [decorate,color=pink,style=dashed,label="taxonomy"]
   ecotaxspecificity -> specificityrepport [color=green]
   
   ecotaxstat [label="ecoTaxStat.py"]
   
   ecopcrout         -> ecotaxstat         [color=red]
   ecopcrdb          -> ecotaxstat         [color=pink,style=dotted,label="taxonomy"]
   ecotaxstat        -> taxstatrepport     [color=green]
   
   
   fasta454filter [label="fasta454Filter.py"]
   
   fastanuc          -> fasta454filter     [color=red]
   fasta454filter    -> fastanuc           [color=green]
   

   fastacomplement [label="fastaComplement.py"]
   
   fastanuc          -> fastacomplement [color=red]
   fastacomplement   -> fastanuc        [color=green]
   
   fastacut [label="fastaCut.py"]
   
   fasta             -> fastacut        [color=red]
   fastacut          -> fasta           [color=green]
   
   fastaannotate  [label="fastaAnnotate.py"]
   
   fasta             -> fastaannotate    [color=red]
   fastaannotate     -> fasta           [color=green]
   
   fastagrep  [label="fastaGrep.py"]
   
   fasta             -> fastagrep       [color=red]
   fastagrep         -> fasta           [color=green]
   
   fastalength  [label="fastaLength.py"]
   
   fasta               -> fastalength   [color=red]
   fastalength         -> fasta         [color=green]
   
   fastasplit  [label="fastaSplit.py"]
   
   fasta               -> fastasplit    [color=red]
   fastasplit          -> fasta         [color=green]
   fastasplit          -> fasta         [color=green]
   fastasplit          -> fasta         [color=green]

   fastauniq  [label="fastaUniq.py"]
   
   fasta               -> fastauniq     [color=red]
   fastauniq           -> fasta         [color=green]
   
   ecopcrformat  [label="ecoPCRFormat.py", URL="/trac/ecoPCR"]
   
   genbank           -> ecopcrformat    [color=red]
   embl              -> ecopcrformat    [color=red]
   fastataxid        -> ecopcrformat    [color=red]  
   ecopcrformat      -> ecopcrdb:DB     [color=green]

   buildobitaxonomy [label="buildOBITaxonomy.py"]
   
   taxdump           -> buildobitaxonomy [color=red]
   buildobitaxonomy  -> ecopcrdb:Tax     [color=green]
   
   ecopcr        [label="ecoPCR", URL="/trac/ecoPCR"]
   
   ecopcrdb:DB       -> ecopcr           [color=red]
   ecopcr            -> ecopcrout        [color=green]
}