Exemplo n.º 1
0
def index(request: HttpRequest, voucher_code: str, gene_code: str) -> HttpResponse:
    """Runs a local blast for voucher code and gene code

    Show results to user in a table
    """
    blast = BLAST('local', voucher_code, gene_code)
    blast.save_seqs_to_file()

    if not blast.is_blast_db_up_to_date():
        try:
            blast.create_blast_db()
        except CalledProcessError:
            log.warning("there are no sequences for gene %s", gene_code)

    was_sequence_saved = blast.save_query_to_file()
    if was_sequence_saved:
        blast.do_blast()
        result = blast.parse_blast_output()
        blast.delete_query_output_files()
    else:
        result = {
            "error": "Query sequence has no valid codons, only question marks",
        }
    context = get_context(request)
    context["result"] = result
    return render(request, 'blast_local/index.html', context)
Exemplo n.º 2
0
def results(request):
    context = get_context(request)

    if request.method == 'POST':
        log.debug(request.POST)
        form = BLASTNewForm(request.POST)

        if form.is_valid():
            cleaned_data = form.cleaned_data

            blast = BLASTNew(
                blast_type='new',
                name=cleaned_data['name'],
                sequence=cleaned_data['sequence'],
                gene_codes=cleaned_data['gene_codes'],
            )
            blast.save_seqs_to_file()

            if not blast.is_blast_db_up_to_date():
                blast.create_blast_db()

            blast.save_query_to_file()
            blast.do_blast()
            result = blast.parse_blast_output()
            if not result:
                result = None
            blast.delete_query_output_files()
            context["result"] = result
            return render(request, 'blast_new/results.html', context)
        else:
            context["form"] = form
            return render(request, 'blast_new/index.html', context)

    return HttpResponseRedirect('/blast_new/')
Exemplo n.º 3
0
def index(request: HttpRequest, voucher_code: str,
          gene_code: str) -> HttpResponse:
    """Runs a local blast for voucher code and gene code

    Show results to user in a table
    """
    blast = BLAST('local', voucher_code, gene_code)
    blast.save_seqs_to_file()

    if not blast.is_blast_db_up_to_date():
        try:
            blast.create_blast_db()
        except CalledProcessError:
            log.warning("there are no sequences for gene %s", gene_code)

    was_sequence_saved = blast.save_query_to_file()
    if was_sequence_saved:
        blast.do_blast()
        result = blast.parse_blast_output()
        blast.delete_query_output_files()
    else:
        result = {
            "error": "Query sequence has no valid codons, only question marks",
        }
    context = get_context(request)
    context["result"] = result
    return render(request, 'blast_local/index.html', context)
Exemplo n.º 4
0
def show_voucher(request, voucher_code):
    context = get_context(request)

    try:
        voucher_queryset = Vouchers.objects.get(code__iexact=voucher_code)
    except Vouchers.DoesNotExist:
        raise Http404

    flickr_images_queryset = FlickrImages.objects.filter(voucher=voucher_code)
    local_images_queryset = LocalImages.objects.filter(voucher=voucher_code)
    images_queryset = list(chain(flickr_images_queryset,
                                 local_images_queryset))

    seqs_queryset = Sequences.objects.filter(code=voucher_code).values(
        'code',
        'gene_code',
        'number_ambiguous_bp',
        'accession',
        'lab_person',
        'total_number_bp',
    )
    sorted_seqs_queryset = sorted(seqs_queryset,
                                  key=lambda x: x['gene_code'].lower())

    context['voucher'] = voucher_queryset
    context['images'] = images_queryset
    context['sequences'] = sorted_seqs_queryset
    context['google_maps_api_key'] = settings.GOOGLE_MAPS_API_KEY
    return render(request, 'public_interface/show_voucher.html', context)
Exemplo n.º 5
0
def results(request, dataset_id):
    context = get_context(request)
    try:
        dataset = Dataset.objects.get(id=dataset_id)
    except Dataset.DoesNotExist:
        raise Http404(f'such dataset {dataset_id} does not exist')

    if dataset.sister_dataset_id:
        aa_dataset = dataset
        try:
            nucleotide_dataset = Dataset.objects.get(
                id=aa_dataset.sister_dataset_id)
        except Dataset.DoesNotExist:
            raise Http404(f'such dataset {dataset_id} does not exist')
    else:
        nucleotide_dataset = dataset
        aa_dataset = None

    if aa_dataset:
        context['aa_dataset'] = aa_dataset
        context['nucleotide_dataset'] = nucleotide_dataset
        return render(request, 'create_dataset/results_bankit.html', context)
    else:
        context['dataset'] = nucleotide_dataset
        return render(request, 'create_dataset/results.html', context)
Exemplo n.º 6
0
def results(request):
    context = get_context(request)

    if request.method == 'POST':
        log.debug(request.POST)
        form = BLASTNewForm(request.POST)

        if form.is_valid():
            cleaned_data = form.cleaned_data

            blast = BLASTNew(
                blast_type='new',
                name=cleaned_data['name'],
                sequence=cleaned_data['sequence'],
                gene_codes=cleaned_data['gene_codes'],
            )
            blast.save_seqs_to_file()

            if not blast.is_blast_db_up_to_date():
                blast.create_blast_db()

            blast.save_query_to_file()
            blast.do_blast()
            result = blast.parse_blast_output()
            if not result:
                result = None
            blast.delete_query_output_files()
            context["result"] = result
            return render(request, 'blast_new/results.html', context)
        else:
            context["form"] = form
            return render(request, 'blast_new/index.html', context)

    return HttpResponseRedirect('/blast_new/')
Exemplo n.º 7
0
def show_voucher(request, voucher_code):
    context = get_context(request)

    try:
        voucher_queryset = Vouchers.objects.get(code__iexact=voucher_code)
    except Vouchers.DoesNotExist:
        raise Http404

    flickr_images_queryset = FlickrImages.objects.filter(voucher=voucher_code)
    local_images_queryset = LocalImages.objects.filter(voucher=voucher_code)
    images_queryset = list(chain(flickr_images_queryset, local_images_queryset))

    seqs_queryset = Sequences.objects.filter(code=voucher_code).values(
        'code',
        'gene_code',
        'number_ambiguous_bp',
        'accession',
        'lab_person',
        'total_number_bp',
    )
    sorted_seqs_queryset = sorted(seqs_queryset, key=lambda x: x['gene_code'].lower())

    context['voucher'] = voucher_queryset
    context['images'] = images_queryset
    context['sequences'] = sorted_seqs_queryset
    context['google_maps_api_key'] = settings.GOOGLE_MAPS_API_KEY
    return render(request, 'public_interface/show_voucher.html', context)
Exemplo n.º 8
0
def search(request):
    """Simple search tool"""
    context = get_context(request)
    context['simple_query'] = get_simple_query(request)

    if 'q' not in request.GET:
        return redirect('/')

    query = request.GET['q'].strip()
    if query == '':
        return redirect('/')

    form = SearchForm(request.GET)
    page = request.GET.get('page')
    if settings.ELASTICSEARCH is True:
        sqs = form.search()
        sqs.spelling_suggestion()
        results = ""
        paginator = ""
        if sqs:
            paginator = Paginator(sqs, 25)
            try:
                results = paginator.page(page)
            except PageNotAnInteger:
                # If page is not an integer, deliver first page.
                results = paginator.page(1)
            except EmptyPage:
                # If page is out of range (e.g. 9999), deliver last page of results.
                results = paginator.page(paginator.num_pages)

        context['page'] = results
        context['paginator'] = paginator
        context['results'] = results
        context['voucher_code_list'] = get_voucher_code_list(sqs)
        context['url_encoded_query'] = get_correct_url_query(
            request.GET.urlencode())
        context['result_count'] = len(sqs)
        return render(request, 'public_interface/search_results.html', context)
    else:
        sqs = Vouchers.objects.filter(
            Q(orden__icontains=query) | Q(genus__icontains=query)
            | Q(species__icontains=query) | Q(code__icontains=query), )
        results = ""
        paginator = ""
        if sqs:
            paginator = Paginator(sqs, 25)
            try:
                results = paginator.page(page)
            except PageNotAnInteger:
                # If page is not an integer, deliver first page.
                results = paginator.page(1)
            except EmptyPage:
                # If page is out of range (e.g. 9999), deliver last page of results.
                results = paginator.page(paginator.num_pages)
        context["result_count"] = sqs.count()
        context['page'] = results
        context['paginator'] = paginator
        context['results'] = results
        return render(request, 'public_interface/search_results.html', context)
Exemplo n.º 9
0
def results(request):
    context = get_context(request)
    if request.method == 'POST':
        form = GeneTableForm(request.POST)
        if form.is_valid():
            table = GeneTable(form.cleaned_data)
            response = create_excel_file(table.stats)
            return response

    context["form"] = GeneTableForm()
    return render(request, 'gene_table/index.html', context)
Exemplo n.º 10
0
def results(request):
    context = get_context(request)
    if request.method == 'POST':
        form = GeneTableForm(request.POST)
        if form.is_valid():
            table = GeneTable(form.cleaned_data)
            response = create_excel_file(table.stats)
            return response

    context["form"] = GeneTableForm()
    return render(request, 'gene_table/index.html', context)
Exemplo n.º 11
0
def index(request: HttpRequest, voucher_code: str, gene_code: str) -> HttpResponse:
    """Executes blast of sequence against NCBI genbank"""
    blast = BLASTNcbi(blast_type="remote", voucher_code=voucher_code,
                      gene_code=gene_code)
    blast.save_query_to_file()

    blast.do_blast()
    result = blast.parse_blast_output()
    blast.delete_query_output_files()
    context = get_context(request)
    context["result"] = result
    return render(request, 'blast_local/index.html', context)
Exemplo n.º 12
0
def index(request: HttpRequest, voucher_code: str, gene_code: str) -> HttpResponse:
    """Executes blast of sequence against NCBI genbank"""
    blast = BLASTNcbi(blast_type="remote", voucher_code=voucher_code,
                      gene_code=gene_code)
    blast.save_query_to_file()

    blast.do_blast()
    result = blast.parse_blast_output()
    blast.delete_query_output_files()
    context = get_context(request)
    context["result"] = result
    return render(request, 'blast_local/index.html', context)
Exemplo n.º 13
0
def results(request):
    context = get_context(request)

    if request.method == 'POST':
        form = GenBankFastaForm(request.POST)

        if form.is_valid():
            cleaned_data = form.cleaned_data
            cleaned_data['file_format'] = 'GenBankFASTA'
            cleaned_data['number_genes'] = ''
            cleaned_data['translations'] = False
            cleaned_data['aminoacids'] = False
            cleaned_data['positions'] = 'ALL'
            cleaned_data['partition_by_positions'] = 'by gene'
            cleaned_data['taxon_names'] = ['CODE', 'GENUS', 'SPECIES']
            cleaned_data['outgroup'] = ''

            dataset_creator = CreateDataset(cleaned_data)
            dataset = dataset_creator.dataset_str
            dataset_short = dataset[
                0:
                1500] + '\n...\n\n\n' + '#######\nComplete dataset file available for download.\n#######'  # noqa
            errors = dataset_creator.errors
            warnings = dataset_creator.warnings
            dataset_file_abs = dataset_creator.dataset_file
            items_with_accession = dataset_creator.sequences_skipped
            if dataset_file_abs is not None:
                dataset_file = os.path.basename(dataset_file_abs)
            else:
                dataset_file = False

            cleaned_data['aminoacids'] = True
            dataset_creator = CreateDataset(cleaned_data)
            aa_dataset = dataset_creator.dataset_str
            aa_dataset_file_abs = dataset_creator.dataset_file
            if aa_dataset_file_abs is not None:
                aa_dataset_file = os.path.basename(aa_dataset_file_abs)
            else:
                aa_dataset_file = False

            context['items_with_accession'] = items_with_accession
            context['dataset'] = dataset_short
            context['fasta_file'] = dataset_file
            context['protein'] = aa_dataset
            context['errors'] = errors
            context['protein_file'] = aa_dataset_file
            context['warnings'] = warnings
            return render(request, 'genbank_fasta/results.html', context)
        else:
            context["form"] = form
            return render(request, 'genbank_fasta/index.html', context)

    return HttpResponseRedirect('/genbank_fasta/')
Exemplo n.º 14
0
def results(request):
    context = get_context(request)
    if request.method == 'POST':
        form = VoucherTableForm(request.POST)
        if form.is_valid():
            table = VoucherTable(form.cleaned_data)
            response = table.create_csv_file()
            return response
        else:
            context["form"] = form
            return render(request, 'voucher_table/index.html', context)
    return HttpResponseRedirect('/create_voucher_table/')
Exemplo n.º 15
0
def results(request):
    context = get_context(request)

    if request.method == 'POST':
        form = GenBankFastaForm(request.POST)

        if form.is_valid():
            cleaned_data = form.cleaned_data
            cleaned_data['file_format'] = 'GenBankFASTA'
            cleaned_data['number_genes'] = ''
            cleaned_data['translations'] = False
            cleaned_data['aminoacids'] = False
            cleaned_data['positions'] = 'ALL'
            cleaned_data['partition_by_positions'] = 'by gene'
            cleaned_data['taxon_names'] = ['CODE', 'GENUS', 'SPECIES']
            cleaned_data['outgroup'] = ''

            dataset_creator = CreateDataset(cleaned_data)
            dataset = dataset_creator.dataset_str
            dataset_short = dataset[0:1500] + '\n...\n\n\n' + '#######\nComplete dataset file available for download.\n#######'  # noqa
            errors = dataset_creator.errors
            warnings = dataset_creator.warnings
            dataset_file_abs = dataset_creator.dataset_file
            items_with_accession = dataset_creator.sequences_skipped
            if dataset_file_abs is not None:
                dataset_file = os.path.basename(dataset_file_abs)
            else:
                dataset_file = False

            cleaned_data['aminoacids'] = True
            dataset_creator = CreateDataset(cleaned_data)
            aa_dataset = dataset_creator.dataset_str
            aa_dataset_file_abs = dataset_creator.dataset_file
            if aa_dataset_file_abs is not None:
                aa_dataset_file = os.path.basename(aa_dataset_file_abs)
            else:
                aa_dataset_file = False

            context['items_with_accession'] = items_with_accession
            context['dataset'] = dataset_short
            context['fasta_file'] = dataset_file
            context['protein'] = aa_dataset
            context['errors'] = errors
            context['protein_file'] = aa_dataset_file
            context['warnings'] = warnings
            return render(request, 'genbank_fasta/results.html', context)
        else:
            context["form"] = form
            return render(request, 'genbank_fasta/index.html', context)

    return HttpResponseRedirect('/genbank_fasta/')
Exemplo n.º 16
0
def search_advanced(request):
    """Uses the haystack index `advanced_search` to find values based on a
    combination of queries for one or more fields.
    Works in a similar way to **genus:Mopho AND species:helenor**

    :param request: HTTP request from the url dispatcher.
    :return: response to html template.
    """
    context = get_context(request)

    if request.method == 'GET' and bool(request.GET) is not False:
        form = AdvancedSearchForm(request.GET)

        page = request.GET.get('page')
        if form.is_valid():
            sqs = form.search()
            results = ""
            paginator = ""
            if sqs:
                paginator = Paginator(sqs, 25)
                try:
                    results = paginator.page(page)
                except PageNotAnInteger:
                    # If page is not an integer, deliver first page.
                    results = paginator.page(1)
                except EmptyPage:
                    # If page is out of range (e.g. 9999), deliver last page of results.
                    results = paginator.page(paginator.num_pages)
            if sqs is not None:
                context['page'] = results
                context['paginator'] = paginator
                context['results'] = results
                context['voucher_code_list'] = get_voucher_code_list(sqs)
                context['simple_query'] = get_simple_query(request)
                context['url_encoded_query'] = get_correct_url_query(
                    request.GET.urlencode())
                context['result_count'] = len(sqs)
                return render(request, 'public_interface/search_results.html',
                              context)
            else:
                context["form"] = form
                return render(request, 'public_interface/search_results.html',
                              context)
        else:
            context["form"] = form
            return render(request, 'public_interface/search.html', context)
    else:
        form = AdvancedSearchForm()
        context["form"] = form
        return render(request, 'public_interface/search.html', context)
Exemplo n.º 17
0
def generate_results(request):
    context = get_context(request)

    if request.method == 'POST':
        form = CreateDatasetForm(request.POST)

        if form.is_valid():
            dataset_obj_id = schedule_dataset(form.cleaned_data, request.user)
            return HttpResponseRedirect(
                reverse('create-dataset-results',
                        kwargs={'dataset_id': dataset_obj_id}))
        else:
            log.debug("invalid form")
            context["form"] = form
            return render(request, 'create_dataset/index.html', context)
Exemplo n.º 18
0
def browse(request):
    context = get_context(request)
    queryset = Vouchers.objects.order_by('-modified')[:10]

    vouchers_with_images = []
    # Lookups that span relationships
    #  https://docs.djangoproject.com/en/1.8/topics/db/queries/#lookups-that-span-relationships
    for i in Vouchers.objects.filter(flickrimages__voucher_id__isnull=False):
        vouchers_with_images.append(i.code)

    for i in Vouchers.objects.filter(localimages__voucher_id__isnull=False):
        vouchers_with_images.append(i.code)

    context["results"] = queryset
    context['vouchers_with_images'] = set(vouchers_with_images)
    return render(request, 'public_interface/browse.html', context)
Exemplo n.º 19
0
def browse(request):
    context = get_context(request)
    queryset = Vouchers.objects.order_by('-modified')[:10]

    vouchers_with_images = []
    # Lookups that span relationships
    #  https://docs.djangoproject.com/en/1.8/topics/db/queries/#lookups-that-span-relationships
    for i in Vouchers.objects.filter(flickrimages__voucher_id__isnull=False):
        vouchers_with_images.append(i.code)

    for i in Vouchers.objects.filter(localimages__voucher_id__isnull=False):
        vouchers_with_images.append(i.code)

    context["results"] = queryset
    context['vouchers_with_images'] = set(vouchers_with_images)
    return render(request, 'public_interface/browse.html', context)
Exemplo n.º 20
0
def index(request: HttpRequest, voucher_code: str, gene_code: str
          ) -> HttpResponse:
    """Execute a blast of sequence against all sequences in the database"""
    blast = BLASTFull('full', voucher_code, gene_code)
    blast.save_seqs_to_file()

    if not blast.is_blast_db_up_to_date():
        blast.create_blast_db()

    blast.save_query_to_file()
    blast.do_blast()
    result = blast.parse_blast_output()
    blast.delete_query_output_files()
    context = get_context(request)
    context['result'] = result
    return render(request, 'blast_local/index.html', context)
Exemplo n.º 21
0
def index(request: HttpRequest, voucher_code: str, gene_code: str
          ) -> HttpResponse:
    """Execute a blast of sequence against all sequences in the database"""
    blast = BLASTFull('full', voucher_code, gene_code)
    blast.save_seqs_to_file()

    if not blast.is_blast_db_up_to_date():
        blast.create_blast_db()

    blast.save_query_to_file()
    blast.do_blast()
    result = blast.parse_blast_output()
    blast.delete_query_output_files()
    context = get_context(request)
    context['result'] = result
    return render(request, 'blast_local/index.html', context)
Exemplo n.º 22
0
def search_advanced(request):
    """Uses the haystack index `advanced_search` to find values based on a
    combination of queries for one or more fields.
    Works in a similar way to **genus:Mopho AND species:helenor**

    :param request: HTTP request from the url dispatcher.
    :return: response to html template.
    """
    context = get_context(request)

    if request.method == 'GET' and bool(request.GET) is not False:
        form = AdvancedSearchForm(request.GET)

        page = request.GET.get('page')
        if form.is_valid():
            sqs = form.search()
            results = ""
            paginator = ""
            if sqs:
                paginator = Paginator(sqs, 25)
                try:
                    results = paginator.page(page)
                except PageNotAnInteger:
                    # If page is not an integer, deliver first page.
                    results = paginator.page(1)
                except EmptyPage:
                    # If page is out of range (e.g. 9999), deliver last page of results.
                    results = paginator.page(paginator.num_pages)
            if sqs is not None:
                context['page'] = results
                context['paginator'] = paginator
                context['results'] = results
                context['voucher_code_list'] = get_voucher_code_list(sqs)
                context['simple_query'] = get_simple_query(request)
                context['url_encoded_query'] = get_correct_url_query(request.GET.urlencode())
                context['result_count'] = len(sqs)
                return render(request, 'public_interface/search_results.html', context)
            else:
                context["form"] = form
                return render(request, 'public_interface/search_results.html', context)
        else:
            context["form"] = form
            return render(request, 'public_interface/search.html', context)
    else:
        form = AdvancedSearchForm()
        context["form"] = form
        return render(request, 'public_interface/search.html', context)
Exemplo n.º 23
0
def index(request):
    context = get_context(request)
    voucher_count = get_voucher_count()

    queryset = Genes.objects.all().values()
    result = []
    for i in queryset:
        gene_code = i['gene_code']
        try:
            i['voucher_count'] = voucher_count[gene_code]
        except KeyError:
            continue
        result.append(i)
    result = sorted(result, key=lambda k: k['gene_code'].lower())

    context["result"] = result
    return render(request, 'view_genes/index.html', context)
Exemplo n.º 24
0
def index(request):
    context = get_context(request)
    voucher_count = get_voucher_count()

    queryset = Genes.objects.all().values()
    result = []
    for i in queryset:
        gene_code = i['gene_code']
        try:
            i['voucher_count'] = voucher_count[gene_code]
        except KeyError:
            continue
        result.append(i)
    result = sorted(result, key=lambda k: k['gene_code'].lower())

    context["result"] = result
    return render(request, 'view_genes/index.html', context)
Exemplo n.º 25
0
def show_sequence(request, voucher_code, gene_code):
    context = get_context(request)

    try:
        queryset = Vouchers.objects.get(code__iexact=voucher_code)
    except Vouchers.DoesNotExist:
        raise Http404

    seqs_queryset = Sequences.objects.get(code=voucher_code, gene_code=gene_code)
    images_queryset = FlickrImages.objects.filter(voucher=voucher_code)
    primers_queryset = Primers.objects.filter(for_sequence=seqs_queryset)

    context['voucher'] = queryset
    context['sequence'] = seqs_queryset
    context['images'] = images_queryset
    context['primers'] = primers_queryset

    return render(request, 'public_interface/show_sequence.html', context)
Exemplo n.º 26
0
def search(request):
    """Simple search tool"""
    context = get_context(request)
    if 'q' not in request.GET:
        return redirect('/')

    query = request.GET['q'].strip()
    if query == '':
        return redirect('/')

    form = SearchForm(request.GET)
    page = request.GET.get('page')
    if settings.ELASTICSEARCH is True:
        sqs = form.search()
        sqs.spelling_suggestion()
        results = ""
        paginator = ""
        if sqs:
            paginator = Paginator(sqs, 25)
            try:
                results = paginator.page(page)
            except PageNotAnInteger:
                # If page is not an integer, deliver first page.
                results = paginator.page(1)
            except EmptyPage:
                # If page is out of range (e.g. 9999), deliver last page of results.
                results = paginator.page(paginator.num_pages)

        context['page'] = results
        context['paginator'] = paginator
        context['results'] = results
        context['voucher_code_list'] = get_voucher_code_list(sqs)
        context['simple_query'] = get_simple_query(request)
        context['url_encoded_query'] = get_correct_url_query(request.GET.urlencode())
        context['result_count'] = len(sqs)
        return render(request, 'public_interface/search_results.html', context)
    else:
        sqs = Vouchers.objects.filter(
            Q(genus__icontains=query) | Q(species__icontains=query) | Q(code__icontains=query),
        )
        context["result_count"] = len(sqs)
        context["page"] = {'object_list': sqs}
        return render(request, 'public_interface/search_results.html', context)
Exemplo n.º 27
0
def show_sequence(request, voucher_code, gene_code):
    context = get_context(request)

    try:
        queryset = Vouchers.objects.get(code__iexact=voucher_code)
    except Vouchers.DoesNotExist:
        raise Http404

    seqs_queryset = Sequences.objects.filter(
        code=voucher_code, gene__gene_code=gene_code).first()
    images_queryset = FlickrImages.objects.filter(voucher=voucher_code)
    primers_queryset = Primers.objects.filter(for_sequence=seqs_queryset)

    context['voucher'] = queryset
    context['sequence'] = seqs_queryset
    context['images'] = images_queryset
    context['primers'] = primers_queryset

    return render(request, 'public_interface/show_sequence.html', context)
Exemplo n.º 28
0
def gene(request, gene_code):
    context = get_context(request)

    queryset = Genes.objects.filter(gene_code=gene_code)
    if not queryset:
        item = ''
    else:
        item = queryset[0]

        if ';' in item.intron:
            introns = item.intron.split(';')
            j = 1
            out = ''
            for i in introns:
                out += '<b>Intron ' + str(j) + ':</b> ' + i + ' > '
                j += 1
            item.intron = out.rstrip(' > ')

    context["item"] = item
    return render(request, 'view_genes/gene.html', context)
Exemplo n.º 29
0
def index(request):
    context = get_context(request)

    genes = Genes.objects.all().order_by('gene_code')
    vouchers = OverviewTable.objects.all()

    paginator = Paginator(vouchers, 100)

    page = request.GET.get('page')
    try:
        vouchers_for_page = paginator.page(page)
    except PageNotAnInteger:
        vouchers_for_page = paginator.page(1)
    except EmptyPage:
        vouchers_for_page = paginator.page(paginator.num_pages)

    context["data"] = vouchers_for_page
    context["genes"] = genes
    context["page_range"] = paginator.page_range
    return render(request, 'overview_table/index.html', context)
Exemplo n.º 30
0
def results(request, dataset_id):
    context = get_context(request)

    try:
        aa_dataset = Dataset.objects.get(id=dataset_id)
    except Dataset.DoesNotExist:
        raise Http404(f'such dataset {dataset_id} does not exist')

    try:
        nucleotide_dataset = Dataset.objects.get(
            id=aa_dataset.sister_dataset_id
        )
    except Dataset.DoesNotExist:
        raise Http404(f'such dataset {dataset_id} does not exist')

    context['errors'] = list(nucleotide_dataset.errors or []) + list(aa_dataset.errors or [])
    context['warnings'] = list(nucleotide_dataset.warnings or []) + list(aa_dataset.warnings or [])
    context['nucleotide_dataset'] = nucleotide_dataset
    context['aa_dataset'] = aa_dataset
    return render(request, 'genbank_fasta/results.html', context)
Exemplo n.º 31
0
def gene(request, gene_code):
    context = get_context(request)

    queryset = Genes.objects.filter(gene_code=gene_code)
    if not queryset:
        item = ''
    else:
        item = queryset[0]

        if ';' in item.intron:
            introns = item.intron.split(';')
            j = 1
            out = ''
            for i in introns:
                out += '<b>Intron ' + str(j) + ':</b> ' + i + ' > '
                j += 1
            item.intron = out.rstrip(' > ')

    context["item"] = item
    return render(request, 'view_genes/gene.html', context)
Exemplo n.º 32
0
def show_voucher(request, voucher_code):
    context = get_context(request)

    try:
        voucher_queryset = Vouchers.objects.get(code__iexact=voucher_code)
    except Vouchers.DoesNotExist:
        raise Http404

    flickr_images_queryset = FlickrImages.objects.filter(voucher=voucher_code)
    local_images_queryset = LocalImages.objects.filter(voucher=voucher_code)
    images_queryset = list(chain(flickr_images_queryset,
                                 local_images_queryset))

    seqs_queryset = Sequences.objects.filter(
        code=voucher_queryset).order_by('gene__gene_code')

    context['voucher'] = voucher_queryset
    context['images'] = images_queryset
    context['sequences'] = seqs_queryset
    context['google_maps_api_key'] = settings.GOOGLE_MAPS_API_KEY
    return render(request, 'public_interface/show_voucher.html', context)
Exemplo n.º 33
0
def results(request):
    context = get_context(request)

    if request.method == 'POST':
        form = CreateDatasetForm(request.POST)

        if form.is_valid():
            dataset_format = form.cleaned_data['file_format']
            dataset_creator = CreateDataset(form.cleaned_data)
            dataset = "{}{}{}".format(
                dataset_creator.dataset_str[0:1500],
                '\n...\n\n\n',
                '#######\nComplete dataset file available for download.\n#######',
            )
            errors = dataset_creator.errors
            warnings = set(dataset_creator.warnings)

            dataset_file_abs = dataset_creator.dataset_file
            if dataset_file_abs is not None:
                dataset_file = re.search(
                    '([A-Z]+_[a-z0-9]+\.txt)',
                    dataset_file_abs
                ).groups()[0]
            else:
                dataset_file = False

            context['dataset_file'] = dataset_file
            context['charset_block'] = dataset_creator.charset_block
            context['dataset'] = dataset
            context['dataset_format'] = dataset_format
            context['errors'] = errors
            context['warnings'] = warnings
            return render(request, 'create_dataset/results.html', context)
        else:
            log.debug("invalid form")
            context["form"] = form
            return render(request, 'create_dataset/index.html', context)
    else:
        return HttpResponseRedirect('/create_dataset/')
Exemplo n.º 34
0
def results(request):
    context = get_context(request)

    if request.method == 'POST':
        form = CreateDatasetForm(request.POST)

        if form.is_valid():
            dataset_format = form.cleaned_data['file_format']
            dataset_creator = CreateDataset(form.cleaned_data)
            dataset = "{}{}{}".format(
                dataset_creator.dataset_str[0:1500],
                '\n...\n\n\n',
                '#######\nComplete dataset file available for download.\n#######',
            )
            errors = dataset_creator.errors
            warnings = set(dataset_creator.warnings)

            dataset_file_abs = dataset_creator.dataset_file
            if dataset_file_abs is not None:
                dataset_file = re.search('([A-Z]+_[a-z0-9]+\.txt)',
                                         dataset_file_abs).groups()[0]
            else:
                dataset_file = False

            context['dataset_file'] = dataset_file
            context['charset_block'] = dataset_creator.charset_block
            context['dataset'] = dataset
            context['dataset_format'] = dataset_format
            context['errors'] = errors
            context['warnings'] = warnings
            return render(request, 'create_dataset/results.html', context)
        else:
            log.debug("invalid form")
            context["form"] = form
            return render(request, 'create_dataset/index.html', context)
    else:
        return HttpResponseRedirect('/create_dataset/')
Exemplo n.º 35
0
def index(request):
    form = CreateDatasetForm()
    context = get_context(request)
    context["form"] = form

    return render(request, 'create_dataset/index.html', context)
Exemplo n.º 36
0
def index(request):
    context = get_context(request)
    return render(request, 'gbif/index.html', context)
Exemplo n.º 37
0
def index(request):
    context = get_context(request)
    return render(request, 'public_interface/index.html', context)
Exemplo n.º 38
0
def index(request):
    form = CreateDatasetForm()
    context = get_context(request)
    context["form"] = form

    return render(request, 'create_dataset/index.html', context)
Exemplo n.º 39
0
def index(request):
    form = BLASTNewForm()
    context = get_context(request)
    context["form"] = form
    return render(request, 'blast_new/index.html', context=context)
Exemplo n.º 40
0
def index(request):
    form = GenBankFastaForm()
    context = get_context(request)
    context["form"] = form
    return render(request, 'genbank_fasta/index.html', context)
Exemplo n.º 41
0
def index(request):
    form = BLASTNewForm()
    context = get_context(request)
    context["form"] = form
    return render(request, 'blast_new/index.html', context=context)
Exemplo n.º 42
0
def index(request):
    form = GenBankFastaForm()
    context = get_context(request)
    context["form"] = form
    return render(request, 'genbank_fasta/index.html', context)
Exemplo n.º 43
0
def index(request):
    context = get_context(request)
    return render(request, 'public_interface/index.html', context)
Exemplo n.º 44
0
def index(request):
    context = get_context(request)
    context["form"] = VoucherTableForm()
    return render(request, 'voucher_table/index.html', context)
Exemplo n.º 45
0
def index(request):
    form = GeneTableForm()
    context = get_context(request)
    context["form"] = form
    return render(request, 'gene_table/index.html', context)
Exemplo n.º 46
0
def index(request):
    form = GeneTableForm()
    context = get_context(request)
    context["form"] = form
    return render(request, 'gene_table/index.html', context)