digraph frameshiftHMM {

    graph [start=1,
           overlap=scale,
           splines=true
          ]

    edge [color=green]

    I -> P1
    I -> P2
    I -> P3

    edge [color=blue]

    P1 -> P2 
    P2 -> P3
    P3 -> P1
    
    edge [color=red]
    
    P1 -> E
    P2 -> E
    P3 -> E
    
    edge [color=purple]
    
    P1 -> G1_1 -> G1_2 -> G1_3 -> P1
    
    P2 -> G2_1 -> G2_2 -> G2_3 -> P2

    P3 -> G3_1 -> G3_2 -> G3_3 -> P3
    
    edge [color=orange]
    
    P1 -> FI2 -> P3
    P2 -> FI3 -> P1
    P3 -> FI1 -> P2
    
    FI1 -> FI2 -> FI3 

    edge [style=dashed]
    
    P1 -> P3
    P2 -> P1
    P3 -> P2
    
    P1 -> P1
    P2 -> P2
    P3 -> P3
    
    
    
}