docs: def write_krona_plot(self, sample_names, read_taxonomies, output_krona_filename):
          '''Creates krona plot at the given location. Assumes the krona executable
          ktImportText is available on the shell PATH'''
          tempfiles = []
          for n in sample_names:
              tempfiles.append(tempfile.NamedTemporaryFile(prefix='GraftMkronaInput', suffix=n))
          
          delim=u'\t'
          for _, tax, counts in self._iterate_otu_table_rows(read_taxonomies):
              for i, c in enumerate(counts):
                  if c != 0:
                      tempfiles[i].write(delim.join((str(c),
                                                    delim.join(tax)
                                                    ))+"\n")
                      
          for t in tempfiles:
              t.flush()
          
          cmd = ["ktImportText",'-o',output_krona_filename]
          for i, tmp in enumerate(tempfiles):
              cmd.append(','.join([tmp.name,sample_names[i]]))
  
          # run the actual krona
          cmd = ' '.join(cmd)
          extern.run(cmd)
  
          # close tempfiles
          for t in tempfiles:
              t.close()