Sha256: 38ced8fd3ef4935b665ad2add0ca25d1ae066c9c56e534a396ac1451a55bfa3c

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: 'application/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-1.1.0.beta12 public/js/alignment_exporter.js
sequenceserver-1.1.0.beta11 public/js/alignment_exporter.js
sequenceserver-1.1.0.beta10 public/js/alignment_exporter.js
sequenceserver-1.1.0.beta8 public/js/alignment_exporter.js
sequenceserver-1.1.0.beta7 public/js/alignment_exporter.js
sequenceserver-1.1.0.beta6 public/js/alignment_exporter.js
sequenceserver-1.1.0.beta5 public/js/alignment_exporter.js
sequenceserver-1.1.0.beta4 public/js/alignment_exporter.js
sequenceserver-1.1.0.beta3 public/js/alignment_exporter.js
sequenceserver-1.1.0.beta2 public/js/alignment_exporter.js
sequenceserver-1.1.0.beta public/js/alignment_exporter.js