code: def calculate_v(nfs):
      
      v = []
      if (nfs.columns != range(1, nfs.columns[-1]+1)).any():
          raise ValueError("Column names invalid in nf_v_frame")
      for i in nfs.columns[:-1]:
          v.append(std(log2(nfs[i]/nfs[i+1]), ddof=1))
      return pd.Series(v, index=nfs.columns[:-1])
docs: Calculates V(n+1/n) values. Useful for establishing the quality of
      your normalization regime. See Vandesompele 2002 for advice on
      interpretation.
  
      :param DataFrame nfs: A matrix of all normalization factors, produced by
         `calculate_all_nfs`.
      :return: a Series of values [V(2/1), V(3/2), V(4/3), ...].