API workflow_execute.py using ldda
Hello, I have been working on running a workflow programmatically on my local galaxy instance using library datasets. It took me a few hours to figure out the problem I was having so I thought I would document it here in case it helps anyone. Also, I have a question regarding 'ldda' IDs (see below). After looking at this post: http://gmod.827538.n3.nabble.com/Running-a-workflow-programatically-td257255... the comments in workflow_execute.py I was trying to run a workflow in the following way: 1) get the dataset ID's from the library ./display.py <api_key> http://localhost:8080/api/libraries/ebfb8f50c6abde6d/contents Collection Members ------------------ #1: /api/libraries/ebfb8f50c6abde6d/contents/c6ca0ddb55be603a016bf252082cbf1f name: / type: folder id: c6ca0ddb55be603a016bf252082cbf1f #2: /api/libraries/ebfb8f50c6abde6d/contents/a0e1686ccf7a028a name: /http://smane.vbi.vt.edu/SRR014335.fastq type: file id: a0e1686ccf7a028a #3: /api/libraries/ebfb8f50c6abde6d/contents/98a64dc1a6526c8e name: /http://smane.vbi.vt.edu/SRR014339.fastq type: file id: 98a64dc1a6526c8e #4: /api/libraries/ebfb8f50c6abde6d/contents/2764e29c8c7b7454 name: /http://smane.vbi.vt.edu/Yeast.gtf type: file id: 2764e29c8c7b7454 2) get input IDs for the workflow ./display.py <api_key> http://localhost:8080/api/workflows/f2db41e1fa331b3e Member Information ------------------ url: /api/workflows/f2db41e1fa331b3e inputs: {'102': {'value': '', 'label': 'Illumina2'}, '104': {'value': '', 'label': 'ReferenceAnnotation'}, '96': {'value': '', 'label': 'Illumina1'}} id: f2db41e1fa331b3e Then I ran: python /opt/galaxy_server/galaxy-dist/scripts/api/workflow_execute.py <api_key> http://localhost:8080/api/workflows f2db41e1fa331b3e 'Test API' '102=ldda=a0e1686ccf7a028a' '104=ldda=2764e29c8c7b7454' '96=ldda=98a64dc1a6526c8e' This gives the following error at the end of the stack trace for HTTP Error 500: *ValueError: invalid literal for int() with base 10: 'file.37'* * * After looking through the code for a while I saw that when the "src id type" is given as "ld" then the decoded name is split and the number is used to retrieve the ldda or "library_dataset_dataset_association" So instead I ran the above command with: '102=ld=a0e1686ccf7a028a' '104=ld=2764e29c8c7b7454' '96=ld=98a64dc1a6526c8e' And everything worked, woo! This brings me to my question: Where can I find ldda ID's ? I imagine I could find them in my database and there looks like some functions in lib/galaxy/web/api/workflows.py for handling them but I am having trouble locating them via an API script or on the library management interface. Note: I am assuming that the ID's returned by display.py are in fact "ld" ID's since this is the ID type I used to avoid the error listed above. Thanks, Andrew
participants (1)
-
Andrew Warren