Mercurial > repos > yating-l > jbrowsearchivecreator
comparison util/index/TrixIndex.py @ 25:31a41ce128cc draft
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
| author | yating-l |
|---|---|
| date | Fri, 13 Oct 2017 12:44:31 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 24:bb6fdccef474 | 25:31a41ce128cc |
|---|---|
| 1 #!/usr/bin/python | |
| 2 | |
| 3 import os | |
| 4 import collections | |
| 5 import shutil | |
| 6 import logging | |
| 7 from ExternIndex import ExternIndex | |
| 8 | |
| 9 class TrixIndex(ExternIndex): | |
| 10 def __init__(self, indexIx, indexIxx, trackName, mySpecieFolderPath, trixId, **args): | |
| 11 self.logger = logging.getLogger(__name__) | |
| 12 self.indexIx = indexIx | |
| 13 self.indexIxx = indexIxx | |
| 14 self.trackName = trackName | |
| 15 self.mySpecieFolderPath = mySpecieFolderPath | |
| 16 self.trixId = trixId.strip() | |
| 17 if not self.trixId: | |
| 18 self.logger.error("Didn't specify the Trix identifier. To use TRIX index, you need to specify the identifier") | |
| 19 exit(1) | |
| 20 if "default_index" in args: | |
| 21 self.default_index = args["default_index"] | |
| 22 else: | |
| 23 self.default_index = None | |
| 24 self.index_settings = collections.OrderedDict() | |
| 25 | |
| 26 def setExtLink(self): | |
| 27 self.setSearchIndex() | |
| 28 self.moveIndexFile() | |
| 29 self.index_settings["searchTrix"] = "trix/%s" % self.indexIxName | |
| 30 return self.index_settings | |
| 31 | |
| 32 def moveIndexFile(self): | |
| 33 indexFolder = os.path.join(self.mySpecieFolderPath, 'trix') | |
| 34 self.indexIxName = "".join( ( self.trackName, ".ix") ) | |
| 35 self.indexIxxName = "".join( ( self.trackName, ".ixx") ) | |
| 36 if not os.path.exists(indexFolder): | |
| 37 os.makedirs(indexFolder) | |
| 38 | |
| 39 # Move index files to the index folder | |
| 40 self.indexIxPath = os.path.join(indexFolder, self.indexIxName) | |
| 41 shutil.copyfile(self.indexIx, self.indexIxPath) | |
| 42 self.indexIxxPath = os.path.join(indexFolder, self.indexIxxName) | |
| 43 shutil.copyfile(self.indexIxx, self.indexIxxPath) | |
| 44 | |
| 45 def setSearchIndex(self): | |
| 46 if self.default_index: | |
| 47 set_index = set() | |
| 48 set_index.add(self.trixId) | |
| 49 set_index.add(self.default_index) | |
| 50 search_index = ",".join(set_index) | |
| 51 else: | |
| 52 search_index = self.trixId | |
| 53 logging.debug("trixId= %s, searchIndex= %s", self.trixId, search_index) | |
| 54 self.index_settings["searchIndex"] = search_index | |
| 55 |
