Esempio n. 1
0
File: app.py Progetto: nkrumm/gauss
def do_GeneAnnotationWorker():
    """
    This function starts the GeneAnnotationWorker/Manager combo
    in order to add annotations for a set of upload genes in the POST
    variable
    """
    if request.method == 'POST':
        file_obj = request.files['file']
        filetype = request.form["filetype"]
        filter_name = request.form["filter_name"]
        filter_desc = request.form["filter_desc"]
        if file_obj and allowed_file(file_obj.filename):
            filename = secure_filename(file_obj.filename)
            save_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
            file_obj.save(save_path)
            if filetype=='type_gene':
                filter_mgr = filter_manager(db="test",conn=g.conn)
                filter_mgr.create_filter(filter_name, filter_desc)
                manager = annotation.GaussWorkerManager(db="test",conn=g.conn)
                worker = annotation.GeneAnnotationWorker2("mygeneworker")
                #manager.register_worker(worker)
                manager.start_worker(worker, args=(filter_name,save_path))
                flash("Job successfully queued", "success")
                return redirect(url_for("filters"))
    
    flash("Error in queueing job!", "error")
    return redirect("/filters")        
Esempio n. 2
0
File: app.py Progetto: nkrumm/gauss
def get_variants(gene=None, sample_id=None, chrom=None, start=None, end=None):
    """
    Flask function for variants endpoint. Sets up basic query string
    which is passed in to the javascript datatables AJAX call.
    """
    isoform = None
    if sample_id is not None:
        title = "%s" % sample_id
        query_string = "sample_id=%s" % sample_id

    elif gene is not None:
        title = "<em>%s</em>" % gene
        query_string = "gene=%s" % gene

    elif chrom is not None:
        chrom_int = int(chrom.lower().replace("chr",""))
        title="%s: %s - %s" % (chrom, start, end)
        query_string = "chrom=%s&start=%s&end=%s" % (chrom, start, end)
    else:
        title = 'All variants'
        query_string = ""

    filter_mgr = filter_manager(db="test",conn=g.conn)
    filters = filter_mgr.get_all_filters()
    return render_template("view_variants.html", title=Markup(title), query_string=Markup(query_string), filters=filters, isoform=isoform)
Esempio n. 3
0
File: app.py Progetto: nkrumm/gauss
def jsonfilters():
    """
    Returns jsonified list of filters for use in AJAX calls
    and in modals that display current filters, etc
    """
    filter_mgr = filter_manager(db="test",conn=g.conn)
    rows = filter_mgr.get_all_filters()
    return jsonify(result=[i for i in rows])
Esempio n. 4
0
File: app.py Progetto: nkrumm/gauss
def filters():
    """
    Show a list of current filters and user-defined/uploaded
    sets.
    """
    filter_mgr = filter_manager(db="test",conn=g.conn)
    rows = filter_mgr.get_all_filters()
    return render_template("filters.html", rows=rows, columns=["filter_name","description", "type", "date_added","color"])
Esempio n. 5
0
File: app.py Progetto: nkrumm/gauss
def delete_filter(name):
    """
    Delete a user-defined set. It is not possible to delete filters
    defined by GAUSS
    """
    filter_mgr = filter_manager(db="test",conn=g.conn)
    filter_mgr.delete_filter(name)
    # manager = annotation.GaussWorkerManager(db="test",conn=g.conn)
    # worker = annotation.GeneAnnotationWorker2("mygeneworker")
    # manager.register_worker(worker)
    # manager.start_worker(worker, args=[filter_name]))
    flash("Filter successfully deleted","success")
    return redirect(url_for("filters"))
Esempio n. 6
0
    def __init__(self, db, conn):
        super(GaussQuery, self).__init__()
        self.db = db
        self.conn = conn

        self.var_mgr = variant_manager(db=self.db, conn=self.conn)
        self.filter_mgr = filter_manager(db=self.db, conn=self.conn)

        self.column_list = ["chrom", "start", "end", "sample_name", "id", "ref", "alt"]
        self.custom_column_list = []
        self.projection = {k: True for k in self.column_list}
        #del self.projection["end"]  # may not be necessary
        self.projection["filter"] = True  # can add to column_list?
        self.projection["annotations.EFF"] = True  # can add to column list?
        self.grouped = False
        self.skip = 0
        self.limit = 1000
        self.query = defaultdict(lambda: defaultdict(list))