Drug design methods - docking software, binding affinity
I mainly work with simulation (MD), so take these answers with a grain of salt.


  
  Is it the case that when designing drugs (i.e. these proteins) we attempt to optimize binding affinity (maximize?)
  


Computational docking usually employes two methods: A force field based estimation of the free energy of binding, and exploration of the conformational space for the ligand.

After a docking run you will end up with set of different ligands, a set of conformations (or poses) for each ligand, and a corresponding score value for each conformation. The score is usually based on the binding constant and Gibbs free energy (which is based on various numbers of physicochemical parameters, and may or may not include parameters like desolvation and entropic effects). Different software use different scoring functions and methods to estimate the free energy.


  
  How well does Autodock Vina compute this affinity? Is it opinionated? I've seen a few docking software, it looks like there are different methods to compute docking score? (can you recommend further reading for me in this regard).
  


As far as I can tell, it is hard or impossible to make general statements about which piece of software is the best, since it depends a lot on what you are trying to use it for. Some of the limitations of the AutoDock suite (implicit hydrogens, spherically symmetric H-bond potentials etc.) are given in this publication. 


  
  Is there a linear correlation between binding affinity and drug efficacy? I.e. does it mean that higher binding affinity directly means we have a better drug, or is there some sweet point kinda thing?
  


Not necessarily. A docking run gives you an (rough) estimation of the ligand affinity for the receptor you chose. It might be that the ligand also binds strongly to a lot of other proteins, making it less effective in an in vivo setting.


  
  Why can't we use very complex molecules, more than 300 characters in SMILES length to combat viruses for example? I noticed everyone was trying to minimise ligands?
  


You can, but not necessarily with the AutoDock suite. Large compounds have too many degrees of freedom, and the software is not capable of properly exploring the conformational space. Usually these large compounds are split in to smaller fragments which are then docked individually.


  
  How can software like AutoDock tools prepare your proteins for docking, is there a standard method (they add hydrogens, add Gasteiger charges). Is that guaranteed to be accurate in every case?
  


Again, depends on the software. You listed some of the features of AutoDock, and you can find the details of the receptor preparation scheme from their website. It is definitely not accurate in every case. As far as I know, most docking runs are performed on protein structures obtained with X-ray methods, and there is no guarantee that the conformation of the protein in crystal is a good representation of the conformation in the solvent phase.