Esempio n. 1
0
def create_project_report_on_gdocs(fc, qc, encoded_credentials, gdocs_folder):
    """Upload the sample read distribution for a project to google docs.
    """
    success = True
    # Create a client class which will make HTTP requests with Google Docs server.
    client = g_spreadsheet.get_client(encoded_credentials)
    doc_client = g_document.get_client(encoded_credentials)

    # Get a reference to the parent folder
    parent_folder = g_document.get_folder(doc_client, gdocs_folder)

    if not parent_folder:
        parent_folder = g_document.add_folder(doc_client, gdocs_folder)
        log.info("Folder {!r} created".format(gdocs_folder))

    parent_folder_title = _from_unicode(parent_folder.title.text)

    # Loop over the projects
    for project_name in fc.get_project_names():

        # Get a flowcell object containing just the data for the project
        project_fc = fc.prune_to_project(project_name)

        ssheet_title = project_name + "_sequencing_results"
        ssheet = g_spreadsheet.get_spreadsheet(client, ssheet_title)
        if not ssheet:
            ssheet = g_document.add_spreadsheet(doc_client, ssheet_title)
            g_document.move_to_folder(doc_client, ssheet, parent_folder)
            ssheet = g_spreadsheet.get_spreadsheet(client, ssheet_title)
            log.info("Spreadsheet {!r} created in " \
                     "folder {!r}".format(_from_unicode(ssheet.title.text), \
                                          parent_folder_title))

        success &= bc_metrics._write_project_report_to_gdocs(
            client, ssheet, project_fc)
        success &= bc_metrics.write_project_report_summary_to_gdocs(
            client, ssheet)
        success &= qc_metrics.write_run_report_to_gdocs(project_fc, \
                                                        qc, \
                                                        ssheet_title, \
                                                        encoded_credentials)

        log.info("Sequencing results report written to spreadsheet '%s'" \
            % _from_unicode(ssheet.title.text))

    return success
Esempio n. 2
0
def create_project_report_on_gdocs(fc, qc, encoded_credentials, gdocs_folder):
    """Upload the sample read distribution for a project to google docs.
    """
    success = True
    # Create a client class which will make HTTP requests with Google Docs server.
    client = g_spreadsheet.get_client(encoded_credentials)
    doc_client = g_document.get_client(encoded_credentials)

    # Get a reference to the parent folder
    parent_folder = g_document.get_folder(doc_client, gdocs_folder)

    if not parent_folder:
        parent_folder = g_document.add_folder(doc_client, gdocs_folder)
        log.info("Folder {!r} created".format(gdocs_folder))

    parent_folder_title = _from_unicode(parent_folder.title.text)

    # Loop over the projects
    for project_name in fc.get_project_names():

        # Get a flowcell object containing just the data for the project
        project_fc = fc.prune_to_project(project_name)

        ssheet_title = project_name + "_sequencing_results"
        ssheet = g_spreadsheet.get_spreadsheet(client, ssheet_title)
        if not ssheet:
            ssheet = g_document.add_spreadsheet(doc_client, ssheet_title)
            g_document.move_to_folder(doc_client, ssheet, parent_folder)
            ssheet = g_spreadsheet.get_spreadsheet(client, ssheet_title)
            log.info("Spreadsheet {!r} created in " \
                     "folder {!r}".format(_from_unicode(ssheet.title.text), \
                                          parent_folder_title))

        success &= bc_metrics._write_project_report_to_gdocs(client, ssheet, project_fc)
        success &= bc_metrics.write_project_report_summary_to_gdocs(client, ssheet)
        success &= qc_metrics.write_run_report_to_gdocs(project_fc, \
                                                        qc, \
                                                        ssheet_title, \
                                                        encoded_credentials)

        log.info("Sequencing results report written to spreadsheet '%s'" \
            % _from_unicode(ssheet.title.text))

    return success
Esempio n. 3
0
def get_spreadsheet(ssheet_title, encoded_credentials):
    """Connect to Google docs and get a spreadsheet"""

    # Convert the spreadsheet title to unicode
    ssheet_title = _to_unicode(ssheet_title)

    # Create a client class which will make HTTP requests with Google Docs server.
    client = g_spreadsheet.get_client()
    bcbio.google.connection.authenticate(client, encoded_credentials)

    # Locate the spreadsheet
    ssheet = g_spreadsheet.get_spreadsheet(client, ssheet_title)

    # Check that we got a result back
    if not ssheet:
        logger2.warn("No document with specified title '%s' found in \
                      GoogleDocs repository" % ssheet_title)
        return (None, None)

    return (client, ssheet)