Why not just use:
cond
*.counter *.genes >
start
0 .counter store
stop
cond
*.vtimer 0 =
start
*.genes *.counter sub .mkvirus store
.counter inc
stop
This way it would vshoot the genome from bottom to top.
If you want to go really basic just use: *.genes rnd .mkvirus store this'll eventually vshoot all the genes, just not in a particullarly orderly manner.