code: def send_request(**kwargs):
      
      skiprows = kwargs.pop('skiprows', None)
      res = requests.get(cbio_url, params=kwargs)
      if res.status_code == 200:
          # Adaptively skip rows based on number of comment lines
          if skiprows == -1:
              lines = res.text.split('\n')
              skiprows = 0
              for line in lines:
                  if line.startswith('#'):
                      skiprows += 1
                  else:
                      break
          csv_StringIO = StringIO(res.text)
          df = pandas.read_csv(csv_StringIO, sep='\t', skiprows=skiprows)
          return df
      else:
          logger.error('Request returned with code %d' % res.status_code)
docs: Return a data frame from a web service request to cBio portal.
  
      Sends a web service requrest to the cBio portal with arguments given in
      the dictionary data and returns a Pandas data frame on success.
  
      More information about the service here:
      http://www.cbioportal.org/web_api.jsp
  
      Parameters
      ----------
      kwargs : dict
          A dict of parameters for the query. Entries map directly to web service
          calls with the exception of the optional 'skiprows' entry, whose value
          is used as the number of rows to skip when reading the result data
          frame.
  
      Returns
      -------
      df : pandas.DataFrame
          Response from cBioPortal as a Pandas DataFrame.