/* L system set up to enter observed data of Geotrichum. Data rounded to nearest 5. Adapted for both lsys and Lsys2midi Fran Soddell Date: 17 Feb 04 Last Updated: 17 Feb 04 */ #define maxgen 150 #define step 0.05 #define maxLength 65 #define pause 5 START : H(0,0,-1,0,-1,0,0)f(pause*step*4) p1:G(x):x=0-> p2:G(x)->F(step*x) /* alternate 3-5 insert a pause at the end of each branch */ /* no tip data */ /* p3:H(x,y,b,z,c,s,g):g=(maxgen-2)&s=1->Tf(pause*step) p4:H(x,y,b,z,c,s,g):g=(maxgen-2)&x>0->G(x)f(pause*step) p5:H(x,y,b,z,c,s,g):g=(maxgen-2)->f(pause*step) */ /* alternate 3-5 end of branch with no pause */ /* no tip data - assume */ p3:H(x,y,b,z,c,s,g):g=(maxgen-2)&s=1->T p4:H(x,y,b,z,c,s,g):g=(maxgen-2)&x>0->G(x) p5:H(x,y,b,z,c,s,g):g=(maxgen-2)-> /* frequency of interbranch distances */ p6:H(x,y,b,z,c,s,g):b=-1->(0.05263)H(x,0,0,z,c,s,g+1) ->(0.15789)H(x,0,5,z,c,s,g+1) ->(0.05263)H(x,0,10,z,c,s,g+1) ->(0.15789)H(x,0,15,z,c,s,g+1) ->(0.15789)H(x,0,20,z,c,s,g+1) ->(0.15789)H(x,0,25,z,c,s,g+1) ->(0.05263)H(x,0,30,z,c,s,g+1) ->(0.00001)H(x,0,35,z,c,s,g+1) ->(0.05263)H(x,0,40,z,c,s,g+1) ->(0.05263)H(x,0,45,z,c,s,g+1) ->(0.00001)H(x,0,50,z,c,s,g+1) ->(0.00001)H(x,0,55,z,c,s,g+1) ->(0.05263)H(x,0,60,z,c,s,g+1) ->(0.05263)H(x,0,65,z,c,s,g+1) /* frequency of distances between changes in direction */ p7:H(x,y,b,z,c,s,g):c=-1->(0.26882)H(x,y,b,0,5,s,g+1) ->(0.37634)H(x,y,b,0,10,s,g+1) ->(0.15054)H(x,y,b,0,15,s,g+1) ->(0.07527)H(x,y,b,0,20,s,g+1) ->(0.05376)H(x,y,b,0,25,s,g+1) ->(0.03226)H(x,y,b,0,30,s,g+1) ->(0.02151)H(x,y,b,0,35,s,g+1) ->(0.01075)H(x,y,b,0,40,s,g+1) ->(0.00000)H(x,y,b,0,45,s,g+1) ->(0.01075)H(x,y,b,0,50,s,g+1) /* branch and change direction */ p8:H(x,y,b,z,c,s,g):y=b&z=c->G(x) MB(g+1) XC H(0,0,-1,0,-1,1,g+1) /* branch */ p9:H(x,y,b,z,c,s,g):y=b->G(x) MB(g+1) H(0,0,-1,z,c,2,g+1) /* change direction */ p10:H(x,y,b,z,c,s,g):z=c->G(x) XC H(0,y,b,0,-1,1,g+1) /* draw (sound note) if step is maximum length */ p11:H(x,y,b,z,c,s,g):x=maxLength->G(x) H(0,y,b,z,c,s,g+1) /* growing between branches and changes of direction */ p12:H(x,y,b,z,c,s,g)->H(x+1,y+1,b,z+1,c,s,g+1) /* 13-15 debugging aids p13:M->[+(90)f(0.1)F(0.1)f(0.2)F(0.1)f(0.1)F(0.1)f(1)] p14:X->[-(90)f(0.1)F(0.2)f(0.1)F(0.2)f(0.1)F(0.2)f(0.1)F(0.2)f(0.1)F(0.2)f(1)] */ /* p15:Y->[+(45)f(0.1)F(0.3)f(0.3)F(0.3)f(0.1)][-(45)f(0.1)F(0.3)f(0.3)F(0.3)f(0.1)] */ /* observed branching angles and frequencies */ /* 11 left 8 right */ /* assume equal probability left, right as for Mucor */ p16:B(g)->(0.05263)[+(30)H(0,0,-1,0,-1,0,g+1)] ->(0.05263)[-(30)H(0,0,-1,0,-1,0,g+1)] ->(0.02632)[+(40)H(0,0,-1,0,-1,0,g+1)] ->(0.02632)[-(40)H(0,0,-1,0,-1,0,g+1)] ->(0.02632)[+(45)H(0,0,-1,0,-1,0,g+1)] ->(0.02632)[-(45)H(0,0,-1,0,-1,0,g+1)] ->(0.05263)[+(55)H(0,0,-1,0,-1,0,g+1)] ->(0.05263)[-(55)H(0,0,-1,0,-1,0,g+1)] ->(0.05263)[+(60)H(0,0,-1,0,-1,0,g+1)] ->(0.05263)[-(60)H(0,0,-1,0,-1,0,g+1)] ->(0.05263)[+(65)H(0,0,-1,0,-1,0,g+1)] ->(0.05263)[-(65)H(0,0,-1,0,-1,0,g+1)] ->(0.05263)[+(70)H(0,0,-1,0,-1,0,g+1)] ->(0.05263)[-(70)H(0,0,-1,0,-1,0,g+1)] ->(0.02632)[+(75)H(0,0,-1,0,-1,0,g+1)] ->(0.02632)[-(75)H(0,0,-1,0,-1,0,g+1)] ->(0.02632)[+(80)H(0,0,-1,0,-1,0,g+1)] ->(0.02632)[-(80)H(0,0,-1,0,-1,0,g+1)] ->(0.02632)[+(85)H(0,0,-1,0,-1,0,g+1)] ->(0.02632)[-(85)H(0,0,-1,0,-1,0,g+1)] ->(0.05263)[+(90)H(0,0,-1,0,-1,0,g+1)] ->(0.05263)[-(90)H(0,0,-1,0,-1,0,g+1)] ->(0.05262)[+(95)H(0,0,-1,0,-1,0,g+1)] ->(0.05262)[-(95)H(0,0,-1,0,-1,0,g+1)] /* observed angles of changes of direction and frequencies */ /* 46 left 47 right */ /* Like Mucor, assume equal probability right and left */ p17:C->(0.00537)+(0.04) ->(0.00537)-(0.04) ->(0.02151)+(5) ->(0.02151)-(5) ->(0.04839)+(10) ->(0.04839)-(10) ->(0.06989)+(15) ->(0.06989)-(15) ->(0.08065)+(20) ->(0.08065)-(20) ->(0.10753)+(25) ->(0.10753)-(25) ->(0.03763)+(30) ->(0.03763)-(30) ->(0.06452)-(35) ->(0.06452)-(35) ->(0.03763)+(40) ->(0.03763)-(40) ->(0.01613)+(45) ->(0.01613)-(45) ->(0.00538)+(60) ->(0.00538)-(60) ->(0.00537)+(85) ->(0.00537)-(85) /* observed tip lengths */ /* since no data for Mucor */ /* assume 10 */ p18:T->F(10*step)