Homology workflow
There are many kinds of DNA data derived from many species in DDBJ. It makes possible to carry out the comparative study of genes of multiple species. The workflow provides a list of species and their genes that are similar to a human gene in response to a name of the human gene.
Preview
Run
Run this Workflow in the Taverna Workbench...
Option 1:
Copy and paste this link into File > 'Open workflow location...'
http://myexperiment.org/workflows/1256/download?version=1
[ More Info ]
Taverna is available from http://taverna.sourceforge.net/
If you are having problems downloading it in Taverna, you may need to provide your username and password in the URL so that Taverna can access the Workflow:
Replace http:// in the link above with http://yourusername:yourpassword@
Workflow Components
![]() | ![]() |
None
![]() | ![]() |
Homology workflow |
![]() | ![]() |
None
![]() | ![]() |
None
Inputs (1) | ![]() |
Name | Description |
---|---|
human_gene_name | Specify name of a human gene |
Processors (17) | ![]() |
Name | Type | Description |
---|---|---|
Make_query_for_searching_against_DDBJ_by_human_gene_name | beanshell |
ScriptString baseUrl = "http://xml.nig.ac.jp/rest/Invoke"; String service = "ARSA"; String method = "searchByXMLPath"; String count = "100"; String offset = "1"; String encode = "UTF8"; String queryPath = "/ENTRY/DDBJ/division=='HUM' AND (/ENTRY/DDBJ/length>=300 AND /ENTRY/DDBJ/length<=1000) " + "AND (/ENTRY/DDBJ/feature-table/feature{/f_key = 'CDS' AND " + "/f_quals/qualifier{/q_name = 'gene' AND /q_value=='" + geneName + "'}})"; String returnPath = "/ENTRY/DDBJ/primary-accession"; //make url String url = baseUrl + "?" + "queryPath=" + URLEncoder.encode(queryPath, encode) + "&returnPath=" + URLEncoder.encode(returnPath, encode) + "&service=" + URLEncoder.encode(service, encode) + "&method=" + URLEncoder.encode(method, encode) + "&count=" + URLEncoder.encode(count, encode) + "&offset="+ URLEncoder.encode(offset, encode); |
Get_DDBJ_list_by_ARSA_searchByXMLPath | localworker |
ScriptURL inputURL = null; if (base != void) { inputURL = new URL(new URL(base), url); } else { inputURL = new URL(url); } URLConnection con = inputURL.openConnection(); InputStream in = con.getInputStream(); InputStreamReader isr = new InputStreamReader(in); Reader inReader = new BufferedReader(isr); StringBuffer buf = new StringBuffer(); int ch; while ((ch = inReader.read()) > -1) { buf.append((char)ch); } inReader.close(); contents = buf.toString(); //String NEWLINE = System.getProperty("line.separator"); // //URL inputURL = null; //if (base != void) { // inputURL = new URL(new URL(base), url); //} else { // inputURL = new URL(url); //} //StringBuffer result = new StringBuffer(); //BufferedReader reader = new BufferedReader(new InputStreamReader(inputURL.openStream())); //String line = null; //while ((line = reader.readLine()) != null) { // result.append(line); // result.append(NEWLINE); //} // //contents = result.toString(); |
Split_string_DDBJ_list_by_enter | localworker |
ScriptList split = new ArrayList(); if (!string.equals("")) { String regexString = ","; if (regex != void) { regexString = regex; } String[] result = string.split(regexString); for (int i = 0; i < result.length; i++) { split.add(result[i]); } } |
Split_string_enter | stringconstant |
Value\n |
Get_representative_accession | beanshell |
ScriptString repAccession = (String)arsaResultLines.get(2); |
Make_query_for_retrieving_sequence | beanshell |
ScriptString baseUrl = "http://xml.nig.ac.jp/rest/Invoke"; String service = "GetEntry"; String method = "getFASTA_DDBJEntry"; String url = baseUrl +"?service=" + service +"&method=" + method +"&accession=" + accession; |
Get_first_DNA_sequence_by_GetEntry_getFASTA_DDBJEntry | localworker |
ScriptURL inputURL = null; if (base != void) { inputURL = new URL(new URL(base), url); } else { inputURL = new URL(url); } URLConnection con = inputURL.openConnection(); InputStream in = con.getInputStream(); InputStreamReader isr = new InputStreamReader(in); Reader inReader = new BufferedReader(isr); StringBuffer buf = new StringBuffer(); int ch; while ((ch = inReader.read()) > -1) { buf.append((char)ch); } inReader.close(); contents = buf.toString(); //String NEWLINE = System.getProperty("line.separator"); // //URL inputURL = null; //if (base != void) { // inputURL = new URL(new URL(base), url); //} else { // inputURL = new URL(url); //} //StringBuffer result = new StringBuffer(); //BufferedReader reader = new BufferedReader(new InputStreamReader(inputURL.openStream())); //String line = null; //while ((line = reader.readLine()) != null) { // result.append(line); // result.append(NEWLINE); //} // //contents = result.toString(); |
Make_query_for_BLAST | beanshell |
ScriptString service = "Blast"; String method = "searchParam"; String program = "blastn"; String encode = "UTF8"; String query = "service=" + service +"&method=" + method +"&program=" + program +"&database=" + URLEncoder.encode(database,encode) +"&query=" + URLEncoder.encode(dnaSeq,encode) +"¶m=" + URLEncoder.encode(param,encode); |
Execute_BLAST | beanshell |
ScriptURL url = new URL("http://xml.nig.ac.jp/rest/Invoke"); URLConnection urlc = url.openConnection(); urlc.setDoOutput(true); urlc.setAllowUserInteraction(false); PrintStream ps = new PrintStream(urlc.getOutputStream()); ps.print(query); ps.close(); BufferedReader br = new BufferedReader(new InputStreamReader(urlc.getInputStream())); StringBuffer sb = new StringBuffer(); String line = null; while ((line = br.readLine()) != null) { sb.append(line + "\n"); } String contents = sb.toString(); br.close(); |
Split_string_BLAST_result_by_enter | localworker |
ScriptList split = new ArrayList(); if (!string.equals("")) { String regexString = ","; if (regex != void) { regexString = regex; } String[] result = string.split(regexString); for (int i = 0; i < result.length; i++) { split.add(result[i]); } } |
Get_accession_and_similarity_score_form_BLAST_result | beanshell |
Script//extract accession number and similariy from blast result. ArrayList parsedBlastResult = new ArrayList(); for (int i = 0; i < lines.size(); i++) { String[] cols = lines.get(i).toString().split("\t"); String accession = (String)cols[1].substring(0, cols[1].indexOf("|")); String[] accessionAndSimilarity = { accession, cols[2] }; parsedBlastResult.add(accessionAndSimilarity); } result = parsedBlastResult.toArray(); |
Make_query_for_retrieving_species_name | beanshell |
ScriptString baseUrl = "http://xml.nig.ac.jp/rest/Invoke"; String service = "ARSA"; String method = "searchByXMLPath"; String count = "100"; String offset = "1"; String encode = "UTF8"; String queryPath = "/ENTRY/DDBJ/primary-accession=='" + blastResult.get(0) + "'"; String returnPath = "/ENTRY/DDBJ/organism"; //make url String url = baseUrl + "?" + "queryPath=" + URLEncoder.encode(queryPath, encode) + "&returnPath=" + URLEncoder.encode(returnPath, encode) + "&service=" + URLEncoder.encode(service, encode) + "&method=" + URLEncoder.encode(method, encode) + "&count=" + URLEncoder.encode(count, encode) + "&offset="+ URLEncoder.encode(offset, encode); |
Print_Result | beanshell |
ScriptHashtable organismAccession = new Hashtable(); for (int i = 0; i < organismNameResult.size(); i++) { String[] organismLines = organismNameResult.get(i).split("\n"); String organism = organismLines[2]; if (!organismAccession.containsKey(organism)) { organismAccession.put(organism, accessionAndSimilarity.get(i).get(0) + "\t" + accessionAndSimilarity.get(i).get(1)); } } String[] keys = new String[organismAccession.size()]; Enumeration enu = organismAccession.keys(); int count = 0; while (enu.hasMoreElements()) { keys[count] = (String) enu.nextElement(); count++; } Arrays.sort(keys); StringBuffer sb = new StringBuffer(); sb.append("DDBJ entries:\t" + arsaResultNum + "\n"); sb.append("Representative accession:\t" + representiveAccession + "\n"); sb.append("Organism name\tDDBJ accession number\tSequence similarity \n"); for (int i = 0; i < keys.length; i++) { sb.append(keys[i] + "\t" + (String)organismAccession.get(keys[i]) + "\n"); } result = sb.toString(); |
Get_species_name_by_ARSA_searchByXMLPath | localworker |
ScriptURL inputURL = null; if (base != void) { inputURL = new URL(new URL(base), url); } else { inputURL = new URL(url); } URLConnection con = inputURL.openConnection(); InputStream in = con.getInputStream(); InputStreamReader isr = new InputStreamReader(in); Reader inReader = new BufferedReader(isr); StringBuffer buf = new StringBuffer(); int ch; while ((ch = inReader.read()) > -1) { buf.append((char)ch); } inReader.close(); contents = buf.toString(); //String NEWLINE = System.getProperty("line.separator"); // //URL inputURL = null; //if (base != void) { // inputURL = new URL(new URL(base), url); //} else { // inputURL = new URL(url); //} //StringBuffer result = new StringBuffer(); //BufferedReader reader = new BufferedReader(new InputStreamReader(inputURL.openStream())); //String line = null; //while ((line = reader.readLine()) != null) { // result.append(line); // result.append(NEWLINE); //} // //contents = result.toString(); |
database | stringconstant |
Valueddbjpri ddbjrod ddbjmam ddbjvrt ddbjinv |
param | stringconstant |
Value-m 8 -b 50 -v 50 -e 0.0001 |
Get_hit_count | beanshell |
ScripthitCount = (String)arsaResultLines.get(0).replaceAll("hitscount =", "").trim(); |
Beanshells (9) | ![]() |
Name | Description | Inputs | Outputs |
---|---|---|---|
Make_query_for_searching_against_DDBJ_by_human_gene_name | geneName | url | |
Get_representative_accession | arsaResultLines | repAccession | |
Make_query_for_retrieving_sequence | accession | url | |
Make_query_for_BLAST |
database dnaSeq param |
query | |
Execute_BLAST |
query baseUrl |
contents | |
Get_accession_and_similarity_score_form_BLAST_result | lines | result | |
Make_query_for_retrieving_species_name | blastResult | url | |
Print_Result |
organismNameResult accessionAndSimilarity arsaResultNum representiveAccession |
result | |
Get_hit_count | arsaResultLines | hitCount |
Outputs (1) | ![]() |
Name | Description |
---|---|
Species_name_that_has_orthologue_gene_and_accession_number_and_degree_of_similarity |
Datalinks (22) | ![]() |
Source | Sink |
---|---|
human_gene_name | Make_query_for_searching_against_DDBJ_by_human_gene_name:geneName |
Make_query_for_searching_against_DDBJ_by_human_gene_name:url | Get_DDBJ_list_by_ARSA_searchByXMLPath:url |
Split_string_enter:value | Split_string_DDBJ_list_by_enter:regex |
Get_DDBJ_list_by_ARSA_searchByXMLPath:contents | Split_string_DDBJ_list_by_enter:string |
Split_string_DDBJ_list_by_enter:split | Get_representative_accession:arsaResultLines |
Get_representative_accession:repAccession | Make_query_for_retrieving_sequence:accession |
Make_query_for_retrieving_sequence:url | Get_first_DNA_sequence_by_GetEntry_getFASTA_DDBJEntry:url |
Get_first_DNA_sequence_by_GetEntry_getFASTA_DDBJEntry:contents | Make_query_for_BLAST:dnaSeq |
database:value | Make_query_for_BLAST:database |
param:value | Make_query_for_BLAST:param |
Make_query_for_BLAST:query | Execute_BLAST:query |
Split_string_enter:value | Split_string_BLAST_result_by_enter:regex |
Execute_BLAST:contents | Split_string_BLAST_result_by_enter:string |
Split_string_BLAST_result_by_enter:split | Get_accession_and_similarity_score_form_BLAST_result:lines |
Get_accession_and_similarity_score_form_BLAST_result:result | Make_query_for_retrieving_species_name:blastResult |
Get_species_name_by_ARSA_searchByXMLPath:contents | Print_Result:organismNameResult |
Get_hit_count:hitCount | Print_Result:arsaResultNum |
Get_representative_accession:repAccession | Print_Result:representiveAccession |
Get_accession_and_similarity_score_form_BLAST_result:result | Print_Result:accessionAndSimilarity |
Make_query_for_retrieving_species_name:url | Get_species_name_by_ARSA_searchByXMLPath:url |
Split_string_DDBJ_list_by_enter:split | Get_hit_count:arsaResultLines |
Print_Result:result | Species_name_that_has_orthologue_gene_and_accession_number_and_degree_of_similarity |
Coordinations (1) | ![]() |
Controller | Target |
---|---|
Get_species_name_by_ARSA_searchByXMLPath | Print_Result |
Workflow Type
Version 1
(of 1)
Log in to add Tags
Shared with Groups (0)
None
Statistics
Reviews
(0)
Other workflows that use similar services
(0)
There are no workflows in myExperiment that use similar services to this Workflow.
No comments yet
Log in to make a comment