Sha256: 23b8946ca241d40b227585be1514e722bf1c14d95efd7a58a52f57321afe8513

Contents?: true

Size: 1.42 KB

Versions: 11

Compression:

Stored size: 1.42 KB

Contents

import * as Exporter from './exporter';
import _ from 'underscore';
export default class AlignmentExporter {
    constructor() {}

    wrap_string(str, width) {
        var idx = 0;
        var wrapped = '';
        while(true) {
          wrapped += str.substring(idx, idx + width);
          idx += width;
          if(idx < str.length) {
            wrapped += '\n';
          } else {
            break;
          }
        }
        return wrapped;
    }

    generate_fasta(hsps) {

        var fasta = "";

        _.each(hsps, _.bind(function (hsp) {
            fasta += ">"+hsp.query_id+":"+hsp.qstart+"-"+hsp.qend+"\n";
            fasta += hsp.qseq+"\n";
            fasta += ">"+hsp.query_id+":"+hsp.qstart+"-"+hsp.qend+"_alignment_"+hsp.hit_id+":"+hsp.sstart+"-"+hsp.send+"\n";
            fasta += hsp.midline+"\n";
            fasta += ">"+hsp.hit_id+":"+hsp.sstart+"-"+hsp.send+"\n";
            fasta += hsp.sseq+"\n";
        }, this));
        return fasta;
    }

    export_alignments(hsps, filename_prefix) {
        var fasta = this.generate_fasta(hsps);

        var blob = new Blob([fasta], { type: 'text/fasta' });
        // var filename_prefix = query_def + '_' + subject_def;
        // var filename_prefix = query_id + '_' + subject_id;
        var filename = Exporter.sanitize_filename(filename_prefix) + '.txt';
        Exporter.download_blob(blob, filename);
    }

    export_alignments_of_all(hsps, name) {

    }
}

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
sequenceserver-2.0.0.rc8 public/js/alignment_exporter.js
sequenceserver-2.0.0.rc7 public/js/alignment_exporter.js
sequenceserver-2.0.0.rc6 public/js/alignment_exporter.js
sequenceserver-2.0.0.rc5 public/js/alignment_exporter.js
sequenceserver-2.0.0.rc4 public/js/alignment_exporter.js
sequenceserver-2.0.0.rc3 public/js/alignment_exporter.js
sequenceserver-2.0.0.rc2 public/js/alignment_exporter.js
sequenceserver-2.0.0.rc1 public/js/alignment_exporter.js
sequenceserver-2.0.0.beta4 public/js/alignment_exporter.js
sequenceserver-2.0.0.beta3 public/js/alignment_exporter.js
sequenceserver-2.0.0.beta1 public/js/alignment_exporter.js