Mercurial > repos > bcclaywell > microbiome_pplacer_suite
diff pplacer.py @ 0:d4690e65afcd draft
Uploaded
author | bcclaywell |
---|---|
date | Thu, 26 Feb 2015 18:16:36 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pplacer.py Thu Feb 26 18:16:36 2015 -0500 @@ -0,0 +1,54 @@ +import json +from galaxy.datatypes.data import Text +from galaxy.datatypes.images import Html + +class Jplace(Text): + file_ext = "jplace" + + def sniff(self, filename): + try: + with open(filename, "r") as f: + data = json.load(f) + if all (k in data for k in ("version", "tree", "placements", "fields")): + return True + except: + pass + + return False + + def get_mime(self): + return "application/json" + +class AutoPrimaryComposite(Html): + composite_type = "auto_primary_file" + + def __init__(self, **kwd): + Html.__init__(self, **kwd) + + def regenerate_primary_file(self,dataset): + """ + cannot do this until we are setting metadata + """ + bn = dataset.metadata.base_name + efp = dataset.extra_files_path + flist = os.listdir(efp) + rval = ['<html><head><title>Files for Composite Dataset %s</title></head><body><p/>Composite %s contains:<p/><ul>' % (dataset.name,dataset.name)] + for i,fname in enumerate(flist): + sfname = os.path.split(fname)[-1] + f,e = os.path.splitext(fname) + rval.append( '<li><a href="%s">%s</a></li>' % ( sfname, sfname) ) + rval.append( '</ul></body></html>' ) + f = file(dataset.file_name,'w') + f.write("\n".join( rval )) + f.write('\n') + f.close() + + def set_meta(self, dataset, **kwd): + Html.set_meta(self, dataset, **kwd) + self.regenerate_primary_file(dataset) + + def get_mime(self): + return "text/html" + +class BasicHtmlComposite(Html): + composite_type = "basic"