Example #1
0
 def render_to_response(self, context, **response_kwargs):
     print("Render to response")
     if BrowseView.output: # or self.download:
         BrowseView.output = False
         response = HttpResponse(content_type='text/csv')
         response['Content-Disposition'] = 'attachment: filename="output.csv"'
         writer = csv.writer(response, delimiter="\t")
         dump(self.qs, write=False, writer=writer, exclude=('created','updated', 'choice'))
         return response
     else:
         return super(BrowseView, self).render_to_response(context, **response_kwargs)
Example #2
0
def search(request, keyword=None, template_name='longevitydb/search.html'):
    print("Searching", keyword)
    print(request.POST)
    variants = Variant.objects.all()
    context_data = {}
    if request.method == 'POST':
    #
         if ('keyword' in request.POST): # or (keyword and keyword != "Nothing"):
             print("Keyword is true")
             #print(request.POST)
             if keyword and keyword != "Nothing":
                 keyword = keyword
             else:
                keyword = request.POST['keyword']
             try:
                query = float(keyword)
                variants1 = variants.filter(Q(odds_ratio=query) |
                                                Q(pvalue=query) |
                                                Q(pmid=query) |
                                                Q(factor__entrez_gene_id=query))
             except Exception as e:
                variants1 = variants.filter(Q(polymorphism__icontains=keyword) |
                                             Q(location__icontains=keyword) |
                                             Q(initial_number__icontains=keyword) |
                                             Q(replication_number__icontains=keyword) |
                                             Q(age_of_cases__icontains=keyword) |
                                             Q(factor__symbol=keyword) |
                                             Q(factor__name__icontains=keyword) |
                                             Q(factor__ensembl_gene_id=keyword) |
                                             Q(description__icontains=keyword) |
                                             Q(longer_lived_allele__icontains=keyword) |
                                             Q(shorter_lived_allele__icontains=keyword) |
                                             Q(ethnicity__name__icontains=keyword) |
                                             Q(study_type__name__icontains=keyword) |
                                             Q(technology__name__icontains=keyword) |
                                             Q(reference__title__icontains=keyword)).order_by('-id').order_by('pvalue')

    #         keyword = 'Nothing'
    #     if ('term' in request.POST) or (t and t != "Nothing"):
    #         if t and t != "Nothing":
    #             term = t
    #         else:
             term = request.POST['keyword'].replace('"', '')
    #
             if 'GO:' in term:
                 terms = GO.objects.filter(go_id=term)
             else:
                 terms = GO.objects.filter(go_term__icontains=term)
             ids = ["Q(factor__entrez_gene_id=%s)" % go.entrez_gene_id for go in terms]
             if ids:
                 sql = " | ".join(ids)
                 print('SQL: %s' % sql.count('factor__entrez_gene'))
                 variants2 = eval("variants.filter("+sql+")")
                 variants = variants1 | variants2
             else:
                 variants = variants1
         else:
             try:
                query = float(keyword)
                variants1 = variants.filter(Q(odds_ratio=query) |
                                                Q(pvalue=query) |
                                                Q(pmid=query) |
                                                Q(factor__entrez_gene_id=query))
             except Exception as e:
                variants1 = variants.filter(Q(polymorphism__icontains=keyword) |
                                             Q(location__icontains=keyword) |
                                             Q(initial_number__icontains=keyword) |
                                             Q(replication_number__icontains=keyword) |
                                             Q(age_of_cases__icontains=keyword) |
                                             Q(factor__symbol=keyword) |
                                             Q(factor__name__icontains=keyword) |
                                             Q(factor__ensembl_gene_id=keyword) |
                                             Q(description__icontains=keyword) |
                                             Q(longer_lived_allele__icontains=keyword) |
                                             Q(shorter_lived_allele__icontains=keyword) |
                                             Q(ethnicity__name__icontains=keyword) |
                                             Q(study_type__name__icontains=keyword) |
                                             Q(technology__name__icontains=keyword) |
                                             Q(reference__title__icontains=keyword)).order_by('-id').order_by('pvalue')

             term = keyword
             if 'GO:' in term:
                 terms = GO.objects.filter(go_id=term)
             else:
                 terms = GO.objects.filter(go_term__icontains=term)
             ids = ["Q(factor__entrez_gene_id=%s)" % go.entrez_gene_id for go in terms]
             sql = " | ".join(ids)
             #print("SQL = " % sql.count('factor__entrez_gene_id'))
             variants2 = eval("variants.filter("+sql+")")
             variants = variants1 | variants2
             qs = variants.distinct().order_by('pvalue')  #.exclude(choice__name__contains='Review')
             #response_dict = {'keyword': keyword, 'term': term}
             response = HttpResponse(content_type='text/csv')
             response['Content-Disposition'] = 'attachment: filename="output.csv"'
             writer = csv.writer(response, delimiter="\t")
             dump(qs, write=False, writer=writer, exclude=('created','updated', 'choice'))

             return response
    #     else:
    #         term = 'Nothing'
        # from itertools import chain
         #variants = list(chain(variants1, variants2))

         qs = variants.distinct().order_by('pvalue') #.exclude(choice__name__contains='Review')
    #     context_data['keyword'] = keyword
         context_data['term'] = term
         # if keyword:
         #     keyword = keyword
         #     term = keyword
         #     response_dict = {'keyword': keyword, 'term': term}
         #     response = HttpResponse(content_type='text/csv')
         #     response['Content-Disposition'] = 'attachment: filename="output.csv"'
         #     writer = csv.writer(response, delimiter="\t")
         #     dump(qs, write=False, writer=writer, exclude=('created','updated', 'choice'))
         #     return response
    #
         table = VariantTable(qs)
         RequestConfig(request).configure(table)
         context_data['table'] = table
         #context_data = {}

         return render(request, template_name, context_data)
    else:
        table = VariantTable(Variant.objects.all().order_by('pvalue').exclude(pvalue=None))
        RequestConfig(request).configure(table)
        context_data = {'keyword': "Nothing", 'table': table}
        return render(request, template_name, context_data)
Example #3
0
if __name__ == "__main__":
    import service.generateRawInfo as generateRawInfo
    import configuration.config as config_interface
    import yinterface.yInterface as md_interface
    import marketApi.algoritms as algorithms_interface
    import utils.dumper as dumper

    value = generateRawInfo.GenerateRawInfo(config_interface, md_interface,
                                            algorithms_interface).do()
    dumper.dump(value, "d:\\tmp\\dumps")