2 new commits in galaxy-central: https://bitbucket.org/galaxy/galaxy-central/commits/3d2ca877e2c4/ Changeset: 3d2ca877e2c4 User: natefoo Date: 2013-10-10 18:48:07 Summary: Convert DOS line endings. Affected #: 1 file diff -r 1706b14098fc7e88e9aa1c54f28857a818beec4d -r 3d2ca877e2c4d7a17c4113be333ec2431b066a7c tools/data_source/microbial_import_code.py --- a/tools/data_source/microbial_import_code.py +++ b/tools/data_source/microbial_import_code.py @@ -1,154 +1,154 @@ - -def load_microbial_data( GALAXY_DATA_INDEX_DIR, sep='\t' ): - # FIXME: this function is duplicated in the DynamicOptions class. It is used here only to - # set data.name in exec_after_process(). - microbe_info= {} - orgs = {} - - filename = "%s/microbial_data.loc" % GALAXY_DATA_INDEX_DIR - for i, line in enumerate( open( filename ) ): - line = line.rstrip( '\r\n' ) - if line and not line.startswith( '#' ): - fields = line.split( sep ) - #read each line, if not enough fields, go to next line - try: - info_type = fields.pop(0) - if info_type.upper() == "ORG": - #ORG 12521 Clostridium perfringens SM101 bacteria Firmicutes CP000312,CP000313,CP000314,CP000315 http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=genomeprj&cmd=Retrieve&dopt=Overview&list_uids=12521 - org_num = fields.pop(0) - name = fields.pop(0) - kingdom = fields.pop(0) - group = fields.pop(0) - chromosomes = fields.pop(0) - info_url = fields.pop(0) - link_site = fields.pop(0) - if org_num not in orgs: - orgs[ org_num ] = {} - orgs[ org_num ][ 'chrs' ] = {} - orgs[ org_num ][ 'name' ] = name - orgs[ org_num ][ 'kingdom' ] = kingdom - orgs[ org_num ][ 'group' ] = group - orgs[ org_num ][ 'chromosomes' ] = chromosomes - orgs[ org_num ][ 'info_url' ] = info_url - orgs[ org_num ][ 'link_site' ] = link_site - elif info_type.upper() == "CHR": - #CHR 12521 CP000315 Clostridium perfringens phage phiSM101, complete genome 38092 110684521 CP000315.1 - org_num = fields.pop(0) - chr_acc = fields.pop(0) - name = fields.pop(0) - length = fields.pop(0) - gi = fields.pop(0) - gb = fields.pop(0) - info_url = fields.pop(0) - chr = {} - chr[ 'name' ] = name - chr[ 'length' ] = length - chr[ 'gi' ] = gi - chr[ 'gb' ] = gb - chr[ 'info_url' ] = info_url - if org_num not in orgs: - orgs[ org_num ] = {} - orgs[ org_num ][ 'chrs' ] = {} - orgs[ org_num ][ 'chrs' ][ chr_acc ] = chr - elif info_type.upper() == "DATA": - #DATA 12521_12521_CDS 12521 CP000315 CDS bed /home/djb396/alignments/playground/bacteria/12521/CP000315.CDS.bed - uid = fields.pop(0) - org_num = fields.pop(0) - chr_acc = fields.pop(0) - feature = fields.pop(0) - filetype = fields.pop(0) - path = fields.pop(0) - data = {} - data[ 'filetype' ] = filetype - data[ 'path' ] = path - data[ 'feature' ] = feature - - if org_num not in orgs: - orgs[ org_num ] = {} - orgs[ org_num ][ 'chrs' ] = {} - if 'data' not in orgs[ org_num ][ 'chrs' ][ chr_acc ]: - orgs[ org_num ][ 'chrs' ][ chr_acc ][ 'data' ] = {} - orgs[ org_num ][ 'chrs' ][ chr_acc ][ 'data' ][ uid ] = data - else: continue - except: continue - for org_num in orgs: - org = orgs[ org_num ] - if org[ 'kingdom' ] not in microbe_info: - microbe_info[ org[ 'kingdom' ] ] = {} - if org_num not in microbe_info[ org[ 'kingdom' ] ]: - microbe_info[ org[ 'kingdom' ] ][org_num] = org - return microbe_info - -#post processing, set build for data and add additional data to history -from galaxy import datatypes, config, jobs, tools -from shutil import copyfile - -def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): - base_dataset = out_data.items()[0][1] - history = base_dataset.history - if history == None: - print "unknown history!" - return - kingdom = param_dict.get( 'kingdom', None ) - #group = param_dict.get( 'group', None ) - org = param_dict.get( 'org', None ) - - #if not (kingdom or group or org): - if not (kingdom or org): - print "Parameters are not available." + +def load_microbial_data( GALAXY_DATA_INDEX_DIR, sep='\t' ): + # FIXME: this function is duplicated in the DynamicOptions class. It is used here only to + # set data.name in exec_after_process(). + microbe_info= {} + orgs = {} + + filename = "%s/microbial_data.loc" % GALAXY_DATA_INDEX_DIR + for i, line in enumerate( open( filename ) ): + line = line.rstrip( '\r\n' ) + if line and not line.startswith( '#' ): + fields = line.split( sep ) + #read each line, if not enough fields, go to next line + try: + info_type = fields.pop(0) + if info_type.upper() == "ORG": + #ORG 12521 Clostridium perfringens SM101 bacteria Firmicutes CP000312,CP000313,CP000314,CP000315 http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=genomeprj&cmd=Retrieve&dopt=Overview&list_uids=12521 + org_num = fields.pop(0) + name = fields.pop(0) + kingdom = fields.pop(0) + group = fields.pop(0) + chromosomes = fields.pop(0) + info_url = fields.pop(0) + link_site = fields.pop(0) + if org_num not in orgs: + orgs[ org_num ] = {} + orgs[ org_num ][ 'chrs' ] = {} + orgs[ org_num ][ 'name' ] = name + orgs[ org_num ][ 'kingdom' ] = kingdom + orgs[ org_num ][ 'group' ] = group + orgs[ org_num ][ 'chromosomes' ] = chromosomes + orgs[ org_num ][ 'info_url' ] = info_url + orgs[ org_num ][ 'link_site' ] = link_site + elif info_type.upper() == "CHR": + #CHR 12521 CP000315 Clostridium perfringens phage phiSM101, complete genome 38092 110684521 CP000315.1 + org_num = fields.pop(0) + chr_acc = fields.pop(0) + name = fields.pop(0) + length = fields.pop(0) + gi = fields.pop(0) + gb = fields.pop(0) + info_url = fields.pop(0) + chr = {} + chr[ 'name' ] = name + chr[ 'length' ] = length + chr[ 'gi' ] = gi + chr[ 'gb' ] = gb + chr[ 'info_url' ] = info_url + if org_num not in orgs: + orgs[ org_num ] = {} + orgs[ org_num ][ 'chrs' ] = {} + orgs[ org_num ][ 'chrs' ][ chr_acc ] = chr + elif info_type.upper() == "DATA": + #DATA 12521_12521_CDS 12521 CP000315 CDS bed /home/djb396/alignments/playground/bacteria/12521/CP000315.CDS.bed + uid = fields.pop(0) + org_num = fields.pop(0) + chr_acc = fields.pop(0) + feature = fields.pop(0) + filetype = fields.pop(0) + path = fields.pop(0) + data = {} + data[ 'filetype' ] = filetype + data[ 'path' ] = path + data[ 'feature' ] = feature + + if org_num not in orgs: + orgs[ org_num ] = {} + orgs[ org_num ][ 'chrs' ] = {} + if 'data' not in orgs[ org_num ][ 'chrs' ][ chr_acc ]: + orgs[ org_num ][ 'chrs' ][ chr_acc ][ 'data' ] = {} + orgs[ org_num ][ 'chrs' ][ chr_acc ][ 'data' ][ uid ] = data + else: continue + except: continue + for org_num in orgs: + org = orgs[ org_num ] + if org[ 'kingdom' ] not in microbe_info: + microbe_info[ org[ 'kingdom' ] ] = {} + if org_num not in microbe_info[ org[ 'kingdom' ] ]: + microbe_info[ org[ 'kingdom' ] ][org_num] = org + return microbe_info + +#post processing, set build for data and add additional data to history +from galaxy import datatypes, config, jobs, tools +from shutil import copyfile + +def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): + base_dataset = out_data.items()[0][1] + history = base_dataset.history + if history == None: + print "unknown history!" + return + kingdom = param_dict.get( 'kingdom', None ) + #group = param_dict.get( 'group', None ) + org = param_dict.get( 'org', None ) + + #if not (kingdom or group or org): + if not (kingdom or org): + print "Parameters are not available." #workflow passes galaxy.tools.parameters.basic.UnvalidatedValue instead of values if isinstance( kingdom, tools.parameters.basic.UnvalidatedValue ): - kingdom = kingdom.value + kingdom = kingdom.value if isinstance( org, tools.parameters.basic.UnvalidatedValue ): org = org.value - GALAXY_DATA_INDEX_DIR = app.config.tool_data_path - microbe_info = load_microbial_data( GALAXY_DATA_INDEX_DIR, sep='\t' ) - new_stdout = "" - split_stdout = stdout.split("\n") - basic_name = "" - for line in split_stdout: - fields = line.split("\t") - if fields[0] == "#File1": - description = fields[1] - chr = fields[2] - dbkey = fields[3] - file_type = fields[4] - name, data = out_data.items()[0] - data.set_size() - basic_name = data.name - data.name = data.name + " (" + microbe_info[kingdom][org]['chrs'][chr]['data'][description]['feature'] +" for " + microbe_info[kingdom][org]['name'] + ":" + chr + ")" - data.dbkey = dbkey - data.info = data.name - data = app.datatypes_registry.change_datatype( data, file_type ) - data.init_meta() - data.set_peek() - app.model.context.add( data ) - app.model.context.flush() - elif fields[0] == "#NewFile": - description = fields[1] - chr = fields[2] - dbkey = fields[3] - filepath = fields[4] - file_type = fields[5] - newdata = app.model.HistoryDatasetAssociation( create_dataset = True, sa_session = app.model.context ) #This import should become a library - newdata.set_size() - newdata.extension = file_type - newdata.name = basic_name + " (" + microbe_info[kingdom][org]['chrs'][chr]['data'][description]['feature'] +" for "+microbe_info[kingdom][org]['name']+":"+chr + ")" - app.model.context.add( newdata ) - app.model.context.flush() - app.security_agent.copy_dataset_permissions( base_dataset.dataset, newdata.dataset ) - history.add_dataset( newdata ) - app.model.context.add( history ) - app.model.context.flush() - try: - copyfile(filepath,newdata.file_name) - newdata.info = newdata.name - newdata.state = jobs.JOB_OK - except: - newdata.info = "The requested file is missing from the system." - newdata.state = jobs.JOB_ERROR - newdata.dbkey = dbkey - newdata.init_meta() - newdata.set_peek() - app.model.context.flush() + GALAXY_DATA_INDEX_DIR = app.config.tool_data_path + microbe_info = load_microbial_data( GALAXY_DATA_INDEX_DIR, sep='\t' ) + new_stdout = "" + split_stdout = stdout.split("\n") + basic_name = "" + for line in split_stdout: + fields = line.split("\t") + if fields[0] == "#File1": + description = fields[1] + chr = fields[2] + dbkey = fields[3] + file_type = fields[4] + name, data = out_data.items()[0] + data.set_size() + basic_name = data.name + data.name = data.name + " (" + microbe_info[kingdom][org]['chrs'][chr]['data'][description]['feature'] +" for " + microbe_info[kingdom][org]['name'] + ":" + chr + ")" + data.dbkey = dbkey + data.info = data.name + data = app.datatypes_registry.change_datatype( data, file_type ) + data.init_meta() + data.set_peek() + app.model.context.add( data ) + app.model.context.flush() + elif fields[0] == "#NewFile": + description = fields[1] + chr = fields[2] + dbkey = fields[3] + filepath = fields[4] + file_type = fields[5] + newdata = app.model.HistoryDatasetAssociation( create_dataset = True, sa_session = app.model.context ) #This import should become a library + newdata.set_size() + newdata.extension = file_type + newdata.name = basic_name + " (" + microbe_info[kingdom][org]['chrs'][chr]['data'][description]['feature'] +" for "+microbe_info[kingdom][org]['name']+":"+chr + ")" + app.model.context.add( newdata ) + app.model.context.flush() + app.security_agent.copy_dataset_permissions( base_dataset.dataset, newdata.dataset ) + history.add_dataset( newdata ) + app.model.context.add( history ) + app.model.context.flush() + try: + copyfile(filepath,newdata.file_name) + newdata.info = newdata.name + newdata.state = jobs.JOB_OK + except: + newdata.info = "The requested file is missing from the system." + newdata.state = jobs.JOB_ERROR + newdata.dbkey = dbkey + newdata.init_meta() + newdata.set_peek() + app.model.context.flush() https://bitbucket.org/galaxy/galaxy-central/commits/33af3a5b36df/ Changeset: 33af3a5b36df User: natefoo Date: 2013-10-10 18:53:10 Summary: Fix outdated usage of states in microbial dataset post-job hook. Affected #: 1 file diff -r 3d2ca877e2c4d7a17c4113be333ec2431b066a7c -r 33af3a5b36df7207ec469d635779329a73117f73 tools/data_source/microbial_import_code.py --- a/tools/data_source/microbial_import_code.py +++ b/tools/data_source/microbial_import_code.py @@ -80,7 +80,7 @@ return microbe_info #post processing, set build for data and add additional data to history -from galaxy import datatypes, config, jobs, tools +from galaxy import datatypes, config, tools from shutil import copyfile def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): @@ -144,10 +144,10 @@ try: copyfile(filepath,newdata.file_name) newdata.info = newdata.name - newdata.state = jobs.JOB_OK + newdata.state = newdata.states.OK except: newdata.info = "The requested file is missing from the system." - newdata.state = jobs.JOB_ERROR + newdata.state = newdata.states.ERROR newdata.dbkey = dbkey newdata.init_meta() newdata.set_peek() Repository URL: https://bitbucket.org/galaxy/galaxy-central/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email.