code: def sym_reads_new_config(self, newDir, sym=False, mv=False):
          
          newParams = copy.copy(self)
          for i in range(0,len(self.params["lib_seq"])):
              lib_seq = self.params["lib_seq"][i]
              #update the glob
              newParams.params["lib_seq"][i]["globs"] = [os.path.join(
                  newDir,os.path.basename(x)) for x in lib_seq["globs"]]
              #now update the file paths and move/symlink if necessary
              for j in range(0, len(lib_seq["pairs"])):
                  forward, reverse = lib_seq["pairs"][j]
                  new_forward = os.path.join(newDir, os.path.basename(forward))
                  new_reverse = os.path.join(newDir, os.path.basename(reverse))
                  #move or symlink the files
                  if sym:
                      for each in [new_forward, new_reverse]:
                          if os.path.exists(each):
                              raise ValueError("""Attempted to make a symlink for
                              a reads file, but it already exists. Chances are
                              that you used the same reads for two lines in the
                              Meraculous config file""")
                      os.symlink(forward, new_forward)
                      os.symlink(reverse, new_reverse)
                  #update the reads in the new config
                  newParams.params["lib_seq"][i]["pairs"][j] = [new_forward, new_reverse]
          return newParams
docs: This moves the read files and renames the glob, outputs a new
          ConfigParse object with updated values