docs: def calcTm(seq, mv_conc=50, dv_conc=0, dntp_conc=0.8, dna_conc=50,
             max_nn_length=60, tm_method='santalucia',
             salt_corrections_method='santalucia'):
      ''' Return the tm of `seq` as a float.
      '''
      tm_meth = _tm_methods.get(tm_method)
      if tm_meth is None:
          raise ValueError('{} is not a valid tm calculation method'.format(
                           tm_method))
      salt_meth = _salt_corrections_methods.get(salt_corrections_method)
      if salt_meth is None:
          raise ValueError('{} is not a valid salt correction method'.format(
                           salt_corrections_method))
      # For whatever reason mv_conc and dna_conc have to be ints
      args = [pjoin(PRIMER3_HOME, 'oligotm'),
              '-mv',  str(mv_conc),
              '-dv',  str(dv_conc),
              '-n',   str(dntp_conc),
              '-d',   str(dna_conc),
              '-tp',  str(tm_meth),
              '-sc',  str(salt_meth),
              seq]
      tm = subprocess.check_output(args, stderr=DEV_NULL,
                                   env=os.environ)
      return float(tm)