-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi all,
I've been tasked with getting someone's R script working in our galaxy
installation and I'm struggling to resolve an issue with an bioconductor
function that appears to not like the galaxy naming convention (e.g.
dataset_2.dat) for the bam index file.
The R script can run from the command line like this;
Rscript script.R input1.xls alignment.bam alignment.bai p
so I have created a wrapper using planemo that does this, and that's fine.
The problem is, when I run the script in galaxy, I get the following
error from R;
Error in value[[3L]](cond) :
failed to open BamFile: failed to load BAM index
file: /tmp/tmpdP2eBC/files/000/dataset_3.dat
Calls: f_oGRSeparateStrands ... tryCatch -> tryCatchList -> tryCatchOne
-> <Anonymous>
In addition: Warning messages:
In doTryCatch(return(expr), name, parentenv, handler) :
[bam_index_load] fail to load BAM index.
Execution halted
The function that reads the bam + bai file in the script is;
bam = readGAlignments(file=bam.file, index=bai.file,
param=ScanBamParam(which=gr.signal))
http://www.rdocumentation.org/packages/GenomicRanges/html/GAlignments.html
In the documentation for this function it states the following;
"file, index, The path to the BAM file to read, and to the index file of
the BAM file to read, respectively. The latter is given /without/ the
'.bai' extension. See |scanBam
<http://www.rdocumentation.org/packages/Rsamtools/functions/scanBam.html>|
for more information."
I've played around with this a little and from the command line I've
been successfully able to run the script to completion when the input
bam file and bai are completely different names;
e.g.
Rscript script.R input1.xls something.bam meh.bai p
but I can't run it if I change the extension, e.g.
Rscript script.R input1.xls something.dat meh.dat p
Error in value[[3L]](cond) :
failed to open BamFile: failed to load BAM index
file: /tmp/tmpdP2eBC/files/000/dataset_3.dat
Calls: f_oGRSeparateStrands ... tryCatch -> tryCatchList -> tryCatchOne
-> <Anonymous>
In addition: Warning messages:
In doTryCatch(return(expr), name, parentenv, handler) :
[bam_index_load] fail to load BAM index.
Execution halted
Does anyone have any experience of resolving this kind of issue?
- --
- --
Dr. Martin Vickers
Data Manager/HPC Systems Administrator
Institute of Biological, Environmental and Rural Sciences
IBERS New Building
Aberystwyth University
SY23 3FG
w: http://www.martin-vickers.co.uk/
e: mjv08(a)aber.ac.uk
t: 01970 62 2807
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iQEcBAEBAgAGBQJWDlUgAAoJEHa0a8GkKQgIpUcIAK9OZ9402FRaROF89b6bO1CY
d+KP/X0NCxY+AXEddU3lhXi8O9haaKRA/pmxsGyydP0VQfaCrSSlS9nzhncG6Zav
gpXe5NjFkwe8a/qaZTVf0YjlYq0sI81S7QAJnzlKXvYSjcz1xNDE9O4qSHqdhefX
oI6GWmR+vHi7CTqNuHwpyY9Qoafd5nls0oQoCYDh9YWrn9GZ8fe1qQ9W7iUli/oT
dPMYwWs0OL8NfSCuIcz2Dbr1XMt+o5HpQY/afoGWaq3zz5Ie0NhCLKz34bFps3IW
8K0DEROmCTxsXBa54gnnkhVgCI3zkfFCfa47xp13vT2dJALdzYoT6vDj8aC/mes=
=ijgr
-----END PGP SIGNATURE-----
Hi all,
I'm wondering if there is any documentation of the JSON structures
returned by particular Galaxy REST API calls.
Some aspects of the Galaxy API are effectively documented via
bioblend's structure, and others are documented at
http://galaxy.readthedocs.org/en/master/api_doc.html . However I don't
know where to look to find out the actual JSON structure that should
be returned by an API call. Does this exist?
For instance, if I call (using bioblend)
gi.histories.show_history(..., contents=True, details="all"),
I will get back a list of dicts where each dict contains dataset metadata, e.g.:
{ u'api_type': u'file',
u'create_time': u'2015-09-28T06:00:19.850421',
u'data_type': u'galaxy.datatypes.sequence.FastqSanger',
u'file_name': u'/mnt/galaxy/files/000/dataset_2.dat',
....
I'd like to know how to find out what dictionary keys to expect for a
particular API call in a particular Galaxy version. In this example,
IIRC at some point the key 'file_name' changed to 'file_path', but I
don't know how to determine which version of Galaxy uses which
convention. I don't think this change would necessarily be reflected
in bioblend, because bioblend just returns the entire JSON structure
as a Python object without caring much about its contents.
I also don't know how to derive this information from the Galaxy
source code itself (even though I know where the API code is under
webapp), so alternatively any guidance on that would be helpful!
Thanks,
Clare