def __init__(self): submod = get_service_name() or 'kb_hisat2' self.userlog = log.log(submod, ip_address=True, authuser=True, module=True, method=True, call_id=True, changecallback=self.logcallback, config=get_config_file()) self.serverlog = log.log(submod, ip_address=True, authuser=True, module=True, method=True, call_id=True, logfile=self.userlog.get_log_file()) self.serverlog.set_log_level(6) self.rpc_service = JSONRPCServiceCustom() self.method_authentication = dict() self.rpc_service.add(impl_kb_hisat2.run_hisat2, name='kb_hisat2.run_hisat2', types=[dict]) self.method_authentication['kb_hisat2.run_hisat2'] = 'required' # noqa self.rpc_service.add(impl_kb_hisat2.status, name='kb_hisat2.status', types=[dict]) authurl = config.get(AUTH) if config else None self.auth_client = _KBaseAuth(authurl)
def setUpClass(cls): token = environ.get('KB_AUTH_TOKEN', None) config_file = environ.get('KB_DEPLOYMENT_CONFIG', None) cls.cfg = {} config = ConfigParser() config.read(config_file) for nameval in config.items('kb_hisat2'): cls.cfg[nameval[0]] = nameval[1] # Getting username from Auth profile for token auth_url = cls.cfg['auth-service-url'] auth_client = _KBaseAuth(auth_url) user_id = auth_client.get_user(token) # WARNING: don't call any logging methods on the context object, # it'll result in a NoneType error cls.ctx = MethodContext(None) cls.ctx.update({ 'token': token, 'user_id': user_id, 'provenance': [{ 'service': 'kb_hisat2', 'method': 'please_never_use_it_in_production', 'method_params': [] }], 'authenticated': 1 }) cls.wsURL = cls.cfg['workspace-url'] cls.ws_client = Workspace(cls.wsURL) cls.serviceImpl = kb_hisat2(cls.cfg) cls.scratch = cls.cfg['scratch'] cls.callback_url = os.environ['SDK_CALLBACK_URL'] cls.srv_wiz_url = cls.cfg['srv-wiz-url'] # set up the test workspace cls.ws_name = "test_kb_hisat2_{}".format(int(time.time() * 1000)) cls.ws_client.create_workspace({"workspace": cls.ws_name}) cls.dfu = DataFileUtil(cls.callback_url) # Upload test genome gbk_file = os.path.join(cls.scratch, os.path.basename(TEST_GBK_FILE)) shutil.copy(TEST_GBK_FILE, gbk_file) cls.genome_ref = load_genbank_file(cls.callback_url, cls.ws_name, gbk_file, "my_test_genome") # Upload test reads - SingleEnd reads_file = os.path.join(cls.scratch, os.path.basename(TEST_READS_WT_1_FILE)) shutil.copy(TEST_READS_WT_1_FILE, reads_file) cls.single_end_ref_wt_1 = load_reads(cls.callback_url, cls.ws_name, "Illumina", reads_file, None, "reads_wt_1") reads_file = os.path.join(cls.scratch, os.path.basename(TEST_READS_WT_2_FILE)) shutil.copy(TEST_READS_WT_2_FILE, reads_file) cls.single_end_ref_wt_2 = load_reads(cls.callback_url, cls.ws_name, "Illumina", reads_file, None, "reads_wt_2") # reads_file = os.path.join(cls.scratch, os.path.basename(TEST_READS_HY5_1_FILE)) # shutil.copy(TEST_READS_HY5_1_FILE, reads_file) # cls.single_end_ref_hy5_1 = load_reads( # cls.callback_url, cls.ws_name, "Illumina", reads_file, None, "reads_hy5_1" # ) # reads_file = os.path.join(cls.scratch, os.path.basename(TEST_READS_HY5_2_FILE)) # shutil.copy(TEST_READS_HY5_2_FILE, reads_file) # cls.single_end_ref_hy5_2 = load_reads( # cls.callback_url, cls.ws_name, "Illumina", reads_file, None, "reads_hy5_2" # ) # Upload test reads - PairedEnd # Upload test ReadsSet of single end reads reads_set = [{ "ref": cls.single_end_ref_wt_1, "label": "rs_wt1" }, { "ref": cls.single_end_ref_wt_2, "label": "rs_wt2" }] cls.single_end_reads_set = load_reads_set(cls.srv_wiz_url, cls.ws_name, reads_set, "se_reads_set") # Upload test SampleSet of single end reads cls.reads_refs = [cls.single_end_ref_wt_1, cls.single_end_ref_wt_2] conditions = ["ss_wt1", "ss_wt2"] cls.single_end_sampleset = load_sample_set(cls.wsURL, cls.ws_name, cls.reads_refs, conditions, "SingleEnd", "se_sampleset") genome_obj_info = cls.ws_client.get_objects2({ 'objects': [{ 'ref': cls.genome_ref }], 'no_data': 1 }) # get the list of genome refs from the returned info. # if there are no refs (or something funky with the return), this will be an empty list. # this WILL fail if data is an empty list. But it shouldn't be, and we know because # we have a real genome reference, or get_objects2 would fail. genome_obj_refs = genome_obj_info.get('data', [{}])[0].get('refs', []) # see which of those are of an appropriate type (ContigSet or Assembly), if any. assembly_ref = list() ref_params = [{'ref': x} for x in genome_obj_refs] ref_info = cls.ws_client.get_object_info3({'objects': ref_params}) for idx, info in enumerate(ref_info.get('infos')): if "KBaseGenomeAnnotations.Assembly" in info[ 2] or "KBaseGenomes.ContigSet" in info[2]: assembly_ref.append(";".join(ref_info.get('paths')[idx])) cls.assembly_ref = assembly_ref[0]
def setUpClass(cls): token = environ.get('KB_AUTH_TOKEN', None) config_file = environ.get('KB_DEPLOYMENT_CONFIG', None) cls.cfg = {} config = ConfigParser() config.read(config_file) for nameval in config.items('kb_hisat2'): cls.cfg[nameval[0]] = nameval[1] # Getting username from Auth profile for token auth_url = cls.cfg['auth-service-url'] auth_client = _KBaseAuth(auth_url) user_id = auth_client.get_user(token) # WARNING: don't call any logging methods on the context object, # it'll result in a NoneType error cls.ctx = MethodContext(None) cls.ctx.update({ 'token': token, 'user_id': user_id, 'provenance': [{ 'service': 'kb_hisat2', 'method': 'please_never_use_it_in_production', 'method_params': [] }], 'authenticated': 1 }) cls.wsURL = cls.cfg['workspace-url'] cls.ws_client = workspaceService(cls.wsURL) cls.serviceImpl = kb_hisat2(cls.cfg) cls.scratch = cls.cfg['scratch'] cls.callback_url = os.environ['SDK_CALLBACK_URL'] cls.srv_wiz_url = cls.cfg['srv-wiz-url'] # set up the test workspace cls.ws_name = "test_kb_hisat2_{}".format(int(time.time() * 1000)) cls.ws_client.create_workspace({"workspace": cls.ws_name}) cls.dfu = DataFileUtil(cls.callback_url) # Upload test genome gbk_file = os.path.join(cls.scratch, os.path.basename(TEST_GBK_FILE)) shutil.copy(TEST_GBK_FILE, gbk_file) cls.genome_ref = load_genbank_file(cls.callback_url, cls.ws_name, gbk_file, "my_test_genome") # Upload test reads - SingleEnd reads_file = os.path.join(cls.scratch, os.path.basename(TEST_READS_WT_1_FILE)) shutil.copy(TEST_READS_WT_1_FILE, reads_file) cls.single_end_ref_wt_1 = load_reads(cls.callback_url, cls.ws_name, "Illumina", reads_file, None, "reads_wt_1") reads_file = os.path.join(cls.scratch, os.path.basename(TEST_READS_WT_2_FILE)) shutil.copy(TEST_READS_WT_2_FILE, reads_file) cls.single_end_ref_wt_2 = load_reads(cls.callback_url, cls.ws_name, "Illumina", reads_file, None, "reads_wt_2") # reads_file = os.path.join(cls.scratch, os.path.basename(TEST_READS_HY5_1_FILE)) # shutil.copy(TEST_READS_HY5_1_FILE, reads_file) # cls.single_end_ref_hy5_1 = load_reads( # cls.callback_url, cls.ws_name, "Illumina", reads_file, None, "reads_hy5_1" # ) # reads_file = os.path.join(cls.scratch, os.path.basename(TEST_READS_HY5_2_FILE)) # shutil.copy(TEST_READS_HY5_2_FILE, reads_file) # cls.single_end_ref_hy5_2 = load_reads( # cls.callback_url, cls.ws_name, "Illumina", reads_file, None, "reads_hy5_2" # ) # Upload test reads - PairedEnd # Upload test ReadsSet of single end reads reads_set = [{ "ref": cls.single_end_ref_wt_1, "label": "rs_wt1" }, { "ref": cls.single_end_ref_wt_2, "label": "rs_wt2" }] cls.single_end_reads_set = load_reads_set(cls.srv_wiz_url, cls.ws_name, reads_set, "se_reads_set") # Upload test SampleSet of single end reads cls.reads_refs = [cls.single_end_ref_wt_1, cls.single_end_ref_wt_2] conditions = ["ss_wt1", "ss_wt2"] cls.single_end_sampleset = load_sample_set(cls.wsURL, cls.ws_name, cls.reads_refs, conditions, "SingleEnd", "se_sampleset")