Example #1
0
def get_container_from_id(flowcell):
    if flowcell[7:].startswith('00000000'):
        #Miseq
        proc = lims.get_processes(type='MiSeq Run (MiSeq) 4.0',
                                  udf={'Flow Cell ID': flowcell[7:]})[0]
        c = lims.get_containers(name=proc.udf['Reagent Cartridge ID'])[0]
    else:
        #NovaSeq (S1, S2, S4 and SP),HiSeq2500 (Illumina Flow Cell) and HiSeqX (Patterned Flow Cell)
        if lims.get_containers(name=flowcell[8:],
                               type=[
                                   'S1', 'S2', 'S4', 'SP',
                                   'Illumina Flow Cell', 'Patterned Flow Cell'
                               ]):
            c = lims.get_containers(name=flowcell[8:])[0]
        else:
            try:
                #NextSeq500
                proc = lims.get_processes(
                    type='Illumina Sequencing (NextSeq) v1.0',
                    udf={'Flow Cell ID': flowcell[8:]})[0]
            except IndexError:
                #NextSeq2000
                proc = lims.get_processes(
                    type='Illumina Sequencing (NextSeq) v1.0',
                    udf={'Flow Cell ID': flowcell.split('_')[1]})[0]
            c = lims.get_containers(name=proc.udf['Reagent Cartridge ID'])[0]
    return c
Example #2
0
    def post(self):
        project_id = self.get_argument('project_id', '')
        responsible = self.get_argument('responsible', '')
        if not project_id or not responsible:
            self.set_status(400)
            self.write('no project_id or bioinfo_responsible')
            return
        lims_project = LIMSProject(lims, id=project_id)
        if not lims_project:
            self.set_status(400)
            self.write('lims project not found: {}'.format(project_id))
            return
        project_name = lims_project.name
        stepname=['Project Summary 1.3']
        processes=lims.get_processes(type=stepname, projectname=project_name)
        if processes == []:
            error = "{} for {} is not available in LIMS.".format(stepname, limsproject)
            self.set_status(400)
            self.write(error)
            return

        for process in processes:
            process.get(force=True)
            process.udf['Bioinfo responsible'] = responsible
            try:
                process.put()
            except Exception, e:
                # still try to update everything
                # but will print error anyway
                self.set_status(400)
                self.write(e.message)
                continue
    def post(self):
        project_id = self.get_argument('project_id', '')
        responsible = self.get_argument('responsible', '')
        if not project_id or not responsible:
            self.set_status(400)
            self.write('no project_id or bioinfo_responsible')
            return
        lims_project = LIMSProject(lims, id=project_id)
        if not lims_project:
            self.set_status(400)
            self.write('lims project not found: {}'.format(project_id))
            return
        project_name = lims_project.name
        stepname=['Project Summary 1.3']
        process=lims.get_processes(type=stepname, projectname=project_name)
        if process == []:
            error = "{} for {} is not available in LIMS.".format(stepname, limsproject)
            self.set_status(400)
            self.write(error)
            return

        process = process[0]
        process.udf['Bioinfo responsible'] = responsible
        try:
            process.put()
        except Exception, e:
            self.set_status(400)
            self.write(e.message)
            return
Example #4
0
    def post(self):
        project_id = self.get_argument('project_id', '')
        responsible = self.get_argument('responsible', '')
        if not project_id or not responsible:
            self.set_status(400)
            self.write('no project_id or bioinfo_responsible')
            return
        lims_project = LIMSProject(lims, id=project_id)
        if not lims_project:
            self.set_status(400)
            self.write('lims project not found: {}'.format(project_id))
            return
        project_name = lims_project.name
        stepname=['Project Summary 1.3']
        processes=lims.get_processes(type=stepname, projectname=project_name)
        if processes == []:
            error = "{} for {} is not available in LIMS.".format(stepname, limsproject)
            self.set_status(400)
            self.write(error)
            return

        for process in processes:
            process.get(force=True)
            process.udf['Bioinfo responsible'] = responsible
            try:
                process.put()
            except Exception, e:
                # still try to update everything
                # but will print error anyway
                self.set_status(400)
                self.write(e.message)
                continue
Example #5
0
def get_container_from_id(flowcell):
    if flowcell[7:].startswith('00000000'):
        #Miseq
        proc=lims.get_processes(type='MiSeq Run (MiSeq) 4.0',udf={'Flow Cell ID': flowcell[7:]})[0]
        c = lims.get_containers(name=proc.udf['Reagent Cartridge ID'])[0]
    else:
        #Hiseq
        c = lims.get_containers(name=flowcell[8:])[0]
    return c
Example #6
0
    def post(self):
        project_id = self.get_argument('project_id', '')
        responsible = self.get_argument('responsible', '')
        if not project_id or not responsible:
            self.set_status(400)
            self.write('no project_id or bioinfo_responsible')
            return
        lims_project = LIMSProject(lims, id=project_id)
        if not lims_project:
            self.set_status(400)
            self.write('lims project not found: {}'.format(project_id))
            return
        project_name = lims_project.name
        stepname = ['Project Summary 1.3']
        processes = lims.get_processes(type=stepname, projectname=project_name)
        if processes == []:
            error = "{} for {} is not available in LIMS.".format(
                stepname, project_name)
            self.set_status(400)
            self.write(error)
            return

        for process in processes:
            process.get(force=True)
            process.udf['Bioinfo responsible'] = responsible
            try:
                process.put()
            except Exception as e:
                # still try to update everything
                # but will print error anyway
                self.set_status(400)
                self.write(e.message)
                continue

        # update status db
        # if lims was not updated, after a while this change will be discarded
        doc_id = None
        view = self.application.projects_db.view("project/project_id")
        for row in view[project_id]:
            doc_id = row.value
            break
        if doc_id == None:
            self.set_status(400)
            self.write('Status DB has not been updated: project not found')
            return

        doc = self.application.projects_db.get(doc_id)
        doc['project_summary'][
            'bioinfo_responsible'] = responsible if responsible != 'unassigned' else None
        try:
            self.application.projects_db.save(doc)
        except Exception as e:
            self.set_status(400)
            self.write(e.message)

        self.set_status(201)
        self.write({'success': 'success!!'})
Example #7
0
def get_container_from_id(flowcell):
    if flowcell[7:].startswith('00000000'):
        #Miseq
        proc = lims.get_processes(type='MiSeq Run (MiSeq) 4.0',
                                  udf={'Flow Cell ID': flowcell[7:]})[0]
        c = lims.get_containers(name=proc.udf['Reagent Cartridge ID'])[0]
    else:
        #Hiseq
        c = lims.get_containers(name=flowcell[8:])[0]
    return c
Example #8
0
    def post(self):
        project_id = self.get_argument('project_id', '')
        responsible = self.get_argument('responsible', '')
        if not project_id or not responsible:
            self.set_status(400)
            self.write('no project_id or bioinfo_responsible')
            return
        lims_project = LIMSProject(lims, id=project_id)
        if not lims_project:
            self.set_status(400)
            self.write('lims project not found: {}'.format(project_id))
            return
        project_name = lims_project.name
        stepname=['Project Summary 1.3']
        processes=lims.get_processes(type=stepname, projectname=project_name)
        if processes == []:
            error = "{} for {} is not available in LIMS.".format(stepname, project_name)
            self.set_status(400)
            self.write(error)
            return

        for process in processes:
            process.get(force=True)
            process.udf['Bioinfo responsible'] = responsible
            try:
                process.put()
            except Exception as e:
                # still try to update everything
                # but will print error anyway
                self.set_status(400)
                self.write(e.message)
                continue

        # update status db
        # if lims was not updated, after a while this change will be discarded
        doc_id = None
        view = self.application.projects_db.view("project/project_id")
        for row in view[project_id]:
            doc_id = row.value
            break
        if doc_id == None:
            self.set_status(400)
            self.write('Status DB has not been updated: project not found')
            return

        doc=self.application.projects_db.get(doc_id)
        doc['project_summary']['bioinfo_responsible'] = responsible if responsible != 'unassigned' else None
        try:
            self.application.projects_db.save(doc)
        except Exception as e:
            self.set_status(400)
            self.write(e.message)

        self.set_status(201)
        self.write({'success': 'success!!'})
Example #9
0
    def get(self, project_id):

        project=Project(lims, id=project_id)
        processes=lims.get_processes(projectname=project.name, type='Project Summary 1.3')
        samples=lims.get_samples(projectname=project.name)
        self.getProjectSummaryFields(lims)
        

        t = self.application.loader.load("project_summary.html")
        self.write(t.generate(gs_globals=self.application.gs_globals,
                              project_id=project_id,
                              processes=processes,
                              samples=samples,
                              step_fields=self.step_fields,
                              sample_fields=self.sample_fields))
Example #10
0
    def get(self, project_id):

        project=Project(lims, id=project_id)
        processes=lims.get_processes(projectname=project.name, type='Project Summary 1.3')
        samples=lims.get_samples(projectname=project.name)
        self.getProjectSummaryFields(lims)


        t = self.application.loader.load("project_summary.html")
        self.write(t.generate(gs_globals=self.application.gs_globals,
                              project_id=project_id,
                              processes=processes,
                              samples=samples,
                              step_fields=self.step_fields,
                              sample_fields=self.sample_fields))