Question: How to create and run a pipeline using BioBlend and Galaxy API?
0
gravatar for mainulhossain
5 months ago by
mainulhossain10 wrote:

I need to build the following pipeline:

  1. Upload an SRA file from a remote FTP server (with anonymous access)
  2. Convert SRA to FASTQ file
  3. Grooming the FASTQ data
  4. Upload reference dataset from another remote FTP server
  5. Map data from steps 3 and 4 with BWA
  6. Create BAM file from SAM tool

Is it possible to create such a pipeline without using Galaxy UI? Can I make it using only BioBlend? If not, can galaxy API help to create it?

Thanks,

Mainul

bioblend galaxy api pipeline • 190 views
ADD COMMENTlink modified 4 months ago • written 5 months ago by mainulhossain10
1
gravatar for mainulhossain
4 months ago by
mainulhossain10 wrote:

I was at last able to pass input parameters as the following:

params = {
"fastq_R1": {"values":[{"src":"hda", "id":"9ac6c47a8515c831"}]},
"fastq_R2":{"values":[{"src":"hda","id":"6dbc21d257b88b00"}]}
}

Thanks,

ADD COMMENTlink written 4 months ago by mainulhossain10
0
gravatar for Martin Čech
5 months ago by
Martin Čech ♦♦ 4.3k
United States
Martin Čech ♦♦ 4.3k wrote:

You can make this pipeline without the use of Galaxy's UI I believe. Using BioBlend will help you with the Galaxy interactions but you will also have to use some other libraries for the ftp transfers and such (so not only bioblend).

Does this help?

ADD COMMENTlink modified 5 months ago • written 5 months ago by Martin Čech ♦♦ 4.3k

Hi Martin, thanks for your reply. I will try as you suggested.

ADD REPLYlink modified 5 months ago • written 5 months ago by mainulhossain10

Thank you very much. I was able to pass input parameters to run_tool command. But I still have a problem with run_tool. For some tools, for example FASTQ Groomer, where a single input parameter is enough, the command works.

param = {'name': dataset_id}
runtool(history_id, tool_id, param)

But for the tools where I want to give multiple parameters, it's not working. For example, in FastUniq the input params look as follows:

[
{
.... 'name':'fastq_R1', .... .... }, {
..... 'name':'fastq_R2', .... ... }, {
.... ... } ]

I want to pass here two input files, fastq_R1 and fast1_R2. I tried the following:

params = [{'name': dataset_id1}, {'name': dataset_id2}]
runtool(history_id, tool_id, param)

It's not working. I get the following error:

Error at line 19: Unexpected HTTP status code: 500: {"err_msg": "Uncaught exception in exposed API method:", "err_code": 0}

Do you have an idea how to do it?

Regards

ADD REPLYlink modified 4 months ago • written 4 months ago by mainulhossain10
0
gravatar for mainulhossain
4 months ago by
mainulhossain10 wrote:

I think I have got it. The format of input parameters is as below:

params = {
"fastq_R1": {"values":[{"src":"hda", "id":"9ac6c47a8515c831"}]},
"fastq_R2":{"values":[{"src":"hda","id":"6dbc21d257b88b00"}]}
}

Thanks,

ADD COMMENTlink modified 4 months ago • written 4 months ago by mainulhossain10
1

Bunch of examples can also be found at our tests: https://github.com/galaxyproject/galaxy/blob/dev/test/api/test_tools.py

ADD REPLYlink written 4 months ago by Martin Čech ♦♦ 4.3k
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 63 users visited in the last hour