Warning
This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for galaxy.datatypes.ngsindex
"""
NGS indexes
"""
import logging
import os
from galaxy.datatypes.protocols import (
DatasetProtocol,
HasExtraFilesAndMetadata,
)
from galaxy.util import UNKNOWN
from .metadata import MetadataElement
from .text import Html
log = logging.getLogger(__name__)
[docs]class BowtieIndex(Html):
"""
base class for BowtieIndex
is subclassed by BowtieColorIndex and BowtieBaseIndex
"""
MetadataElement(
name="base_name",
desc="base name for this index set",
default="galaxy_generated_bowtie_index",
set_in_upload=True,
readonly=True,
)
MetadataElement(
name="sequence_space",
desc="sequence_space for this index set",
default=UNKNOWN,
set_in_upload=True,
readonly=True,
)
composite_type = "auto_primary_file"
[docs] def generate_primary_file(self, dataset: HasExtraFilesAndMetadata) -> str:
"""
This is called only at upload to write the html file
cannot rename the datasets here - they come with the default unfortunately
"""
return "<html><head></head><body>AutoGenerated Primary File for Composite Dataset</body></html>"
[docs] def regenerate_primary_file(self, dataset: DatasetProtocol) -> None:
"""
cannot do this until we are setting metadata
"""
bn = dataset.metadata.base_name
flist = os.listdir(dataset.extra_files_path)
rval = [
f"<html><head><title>Files for Composite Dataset {bn}</title></head><p/>Comprises the following files:<p/><ul>"
]
for fname in flist:
sfname = os.path.split(fname)[-1]
rval.append(f'<li><a href="{sfname}">{sfname}</a>')
rval.append("</ul></html>")
with open(dataset.get_file_name(), "w") as f:
f.write("\n".join(rval))
f.write("\n")
[docs] def set_peek(self, dataset: DatasetProtocol, **kwd) -> None:
if not dataset.dataset.purged:
dataset.peek = f"Bowtie index file ({dataset.metadata.sequence_space})"
dataset.blurb = f"{dataset.metadata.sequence_space} space"
else:
dataset.peek = "file does not exist"
dataset.blurb = "file purged from disk"
[docs] def display_peek(self, dataset: DatasetProtocol) -> str:
try:
return dataset.peek
except Exception:
return "Bowtie index file"
[docs]class BowtieColorIndex(BowtieIndex):
"""
Bowtie color space index
"""
MetadataElement(
name="sequence_space",
desc="sequence_space for this index set",
default="color",
set_in_upload=True,
readonly=True,
)
file_ext = "bowtie_color_index"
[docs]class BowtieBaseIndex(BowtieIndex):
"""
Bowtie base space index
"""
MetadataElement(
name="sequence_space",
desc="sequence_space for this index set",
default="base",
set_in_upload=True,
readonly=True,
)
file_ext = "bowtie_base_index"