code: def download_structure(inputpdbid):
      
      try:
          if len(inputpdbid) != 4 or extract_pdbid(inputpdbid.lower()) == 'UnknownProtein':
              sysexit(3, 'Invalid PDB ID (Wrong format)\n')
          pdbfile, pdbid = fetch_pdb(inputpdbid.lower())
          pdbpath = tilde_expansion('%s/%s.pdb' % (config.BASEPATH.rstrip('/'), pdbid))
          create_folder_if_not_exists(config.BASEPATH)
          with open(pdbpath, 'w') as g:
              g.write(pdbfile)
          write_message('file downloaded as %s\n\n' % pdbpath)
          return pdbpath, pdbid
  
      except ValueError:  # Invalid PDB ID, cannot fetch from RCBS server
          sysexit(3, 'Invalid PDB ID (Entry does not exist)\n')
docs: Given a PDB ID, downloads the corresponding PDB structure.
      Checks for validity of ID and handles error while downloading.
      Returns the path of the downloaded file.