mapping_df.to_csv(mapping_out, sep='\t') # FEEDBACK print("All your files have been written to the directory", output_dir) print("Simply open the file index.html in a browser that has") print("an internet connection to view the interactive phylogram.") plugin = Plugin( name='phylogram', version=__version__, website='https://github.com/ConstantinoSchillebeeckx/q2-phylogram', package='q2_phylogram' ) plugin.visualizers.register_function( function=make_d3_phylogram, inputs={'tree': Phylogeny}, parameters={'otu_metadata': qiime.plugin.Metadata}, name='Visualize phylogram', description='Generate interactive visualization of your phylogenetic tree.' ) def tree_to_biopython_tree(data_dir): with open(os.path.join(data_dir, 'tree.nwk'), 'r') as fh: return Bio.Phylo.read(fh, 'newick') plugin.register_data_layout_reader('tree', 1, Bio.Phylo.Newick.Tree, tree_to_biopython_tree)
ROM_data_layout.register_file('game.gba', GBAFormat) plugin.register_type_to_data_layout(Game[GBA], 'rom', 1) def ROM_data_layout_to_buffered_reader(data_dir): return open(os.path.join(data_dir, 'game.gba'), 'rb') def buffered_reader_to_ROM_data_layout(view, data_dir): with open(os.path.join(data_dir, 'game.gba'), 'wb') as fh: fh.write(view.read()) plugin.register_data_layout(ROM_data_layout) plugin.register_data_layout_reader('rom', 1, io.BufferedReader, ROM_data_layout_to_buffered_reader) plugin.register_data_layout_writer('rom', 1, io.BufferedReader, buffered_reader_to_ROM_data_layout) def play(output_dir : str, rom : io.BufferedReader) -> None: with open(os.path.join(output_dir, 'gameloader.js'), 'wb') as fh: fh.write(b"onDataLoad('" + base64.b64encode(rom.read()) + b"');") copytree(os.path.join(os.path.dirname(__file__), 'assets'), os.path.join(output_dir)) # From http://stackoverflow.com/a/12514470/579416 def copytree(src, dst, symlinks=False, ignore=None):
os.makedirs(dat_dir) with open(os.path.join(output_dir,'index.html'), 'w') as fout: fout.write(index) tree_out = os.path.join(dat_dir,'tree.tre') with open(tree_out, 'w') as fout: fout.write("d3.jsonp.readNewick('%s');" %str(tree).strip()) # add callback around Newick string for use in cross-origin setting plugin = Plugin( name='phylogram', version=__version__, website='https://github.com/ConstantinoSchillebeeckx/q2-phylogram', package='q2_phylogram' ) plugin.visualizers.register_function( function=make_d3_phylogram, inputs={'tree': Phylogeny}, parameters={'otu_metadata': qiime.plugin.Metadata}, name='Visualize phylogram', description='Generate interactive visualization of your phylogenetic tree.' ) def tree_to_skbio_tree(data_dir): with open(os.path.join(data_dir, 'tree.nwk'), 'r') as fh: return read(fh, format="newick", into=TreeNode) plugin.register_data_layout_reader('tree', 1, skbio.TreeNode, tree_to_skbio_tree)