def enrich_kegg(): "use the input key and value to find contigs, then based on type to generate enrich_info" args = query_format(['key','value']) if args: t_op = 'eq' if type(args['value'])!=list else 'in_' ctg_set = views.contig_v().filter(args['key'],t_op,args['value']) res = views.contig_v(ctg_set).enrich_kegg() return jsonify(res)
def contig_seq(): args = query_format(['key','value','seq_type']) if args: t_op = 'eq' if type(args['value'])!=list else 'in_' ctg_set = views.contig_v().filter(args['key'],t_op,args['value']) res = views.contig_v(ctg_set).seq_info(args.get('seq_type',None)) if res: return jsonify({'seqs':res})
def contig_detail(): "based key and value to search contig model, if value contain ',', the operator will be 'in_', not 'eq'" args = query_format(['key','value']) res={} if args: t_op = 'eq' if type(args['value'])==str else 'in_' t_contig = views.contig_v().filter(args['key'],t_op,args['value']) if t_contig.count(): res['ids'] = [x.id for x in t_contig] res['seqs']=views.contig_v(t_contig).seq_info() res['count_info']=views.count_v([x.counts.get() for x in t_contig]).data() res['taxa']=views.contig_v(t_contig).lineage_info() return jsonify(res)
def contig_fpkm(): args = query_format(['key','value']) if args: t_op = 'eq' if type(args['value'])==str else 'in_' t_contig = views.contig_v().filter(args['key'],t_op,args['value']) t_fpkm = [x.fpkms.get() for x in t_contig if x.fpkms.count()] if t_fpkm: return jsonify(views.fpkm_v(t_fpkm).fpkm())
def contig_search(): "search contig by name" args = query_format(['name']) if args: res = views.contig_v().text_search('name',args['name']) return jsonify(views.contig_v(res).search_info())