I would say the best base for a virus would be :
cond
*.key *.keyvalue !=
start
50 .repro store
*.thisgene .mkvirus store
31999 .vshoot store
stop
This will primarily target the alge, and make it hard to find food unless you're prepared for it.
I'm using something similar in Ebola if you want to see it in action.
From that point you can always add more but it will also take more time to charge.
The second virus in Pacifist actualy hides it's presence while it's deleting genes and taking over, and initialy it didn't kill the victim, but the league fights where taking ages so I made it more lethal. (The fights can still take a long time though, but not nearly as long as they did initialy. Personaly I just use the auto win button when I can see the other bot no longer has a chance)
The downside is the time it takes to charge the virus, which is also why the first virus is a lot shorter.
The purpose of the viruses in pacifist isn't to be used as a weapon though.
In the end I don't think you can make a perfect virus, it all depends on how you plan to use it.