diff --git a/lib/galaxy/webapps/galaxy/api/genomes.py b/lib/galaxy/webapps/galaxy/api/genomes.py index ae62ad905ecf..9195d7d26f07 100644 --- a/lib/galaxy/webapps/galaxy/api/genomes.py +++ b/lib/galaxy/webapps/galaxy/api/genomes.py @@ -43,3 +43,36 @@ def show( self, trans, id, num=None, chrom=None, low=None, high=None, **kwd ): else: rval = self.app.genomes.chroms( trans, dbkey=id, num=num, chrom=chrom, low=low ) return rval + + @web.expose_api_raw_anonymous + def indexes(self, trans, id, **kwd): + """ + GET /api/genomes/{id}/indexes?type={table name} + + Returns all available indexes for a genome id for type={table name} + For instance, /api/genomes/hg19/indexes?type=fasta_indexes + """ + index_extensions = {'fasta_indexes': '.fai'} + id = get_id( id, kwd.get( 'format', None ) ) + index_type = kwd.get('type', None) + + tbl_entries = self.app.tool_data_tables.data_tables[index_type].data + index_file_name = [x[-1] for x in tbl_entries if id in x].pop() + + if_open = open(index_file_name + index_extensions[index_type], mode='r') + return if_open.read() + + @web.expose_api_raw_anonymous + def sequences(self, trans, id, num=None, chrom=None, low=None, high=None, **kwd ): + """ + GET /api/genomes/{id}/sequences + + This is a wrapper for accepting sequence requests that + want a raw return, not json + """ + id = get_id( id, kwd.get( 'format', None ) ) + reference = is_true( kwd.get( 'reference', False ) ) + if reference: + region = self.app.genomes.reference( trans, dbkey=id, chrom=chrom, low=low, high=high ) + rval = { 'dataset_type': 'refseq', 'data': region.sequence } + return rval['data']