def geneseekr_query(request):
    form = GeneSeekrForm()
    if request.method == 'POST':
        form = GeneSeekrForm(request.POST, request.FILES)
        if form.is_valid():
            seqids, query_sequence, name = form.cleaned_data
            geneseekr_request = GeneSeekrRequest.objects.create(
                user=request.user, seqids=seqids)
            # Use query sequence if entered. Otherwise, read in the FASTA file provided.
            if query_sequence != '':
                geneseekr_request.query_sequence = query_sequence
            else:
                input_sequence_file = request.FILES['query_file']
                # Pointer is at end of file in request, so move back to beginning before doing the read.
                input_sequence_file.seek(0)
                input_sequence = input_sequence_file.read().decode('utf-8')
                geneseekr_request.query_sequence = input_sequence
            geneseekr_request.status = 'Processing'
            if (name):
                geneseekr_request.name = name
            geneseekr_request.save()
            run_geneseekr.apply_async(queue='geneseekr',
                                      args=(geneseekr_request.pk, ),
                                      countdown=10)

            return redirect('geneseekr:geneseekr_processing',
                            geneseekr_request_pk=geneseekr_request.pk)

    return render(request, 'geneseekr/geneseekr_query.html', {
        'form': form,
    })
Exemple #2
0
 def test_invalid_form_no_sequences_in_exclude_genus(self):
     form = GeneSeekrForm({
         'genus': 'Listeria',
         'query_sequence': '>fasta_name\nATCGACTGACTAGTCA',
         'everything_but': True,
     })
     self.assertFalse(form.is_valid())
Exemple #3
0
def geneseekr_query(request):
    form = GeneSeekrForm()
    if request.method == 'POST':
        form = GeneSeekrForm(request.POST, request.FILES)
        if form.is_valid():
            # seqid_input = form.cleaned_data.get('seqids')
            # seqids = seqid_input.split()
            seqids, query_sequence = form.cleaned_data
            geneseekr_request = GeneSeekrRequest.objects.create(
                user=request.user, seqids=seqids)
            # Use query sequence if entered. Otherwise, read in the FASTA file provided.
            if query_sequence != '':
                geneseekr_request.query_sequence = query_sequence
            else:
                input_sequence_file = request.FILES['query_file']
                # Pointer is at end of file in request, so move back to beginning before doing the read.
                input_sequence_file.seek(0)
                input_sequence = input_sequence_file.read()
                geneseekr_request.query_sequence = input_sequence
            geneseekr_request.status = 'Processing'
            geneseekr_request.save()
            run_geneseekr(geneseekr_request_pk=geneseekr_request.pk)
            return redirect('geneseekr:geneseekr_processing',
                            geneseekr_request_pk=geneseekr_request.pk)
    return render(request, 'geneseekr/geneseekr_query.html', {'form': form})
Exemple #4
0
 def test_invalid_form_bad_fasta_file(self):
     with open('olc_webportalv2/geneseekr/tests/bad_fasta.fasta',
               'rb') as upload_file:
         form = GeneSeekrForm({'seqids': '2015-SEQ-0711 2015-SEQ-0712'}, {
             'query_file':
             SimpleUploadedFile(upload_file.name, upload_file.read())
         })
         self.assertFalse(form.is_valid())
Exemple #5
0
 def test_invalid_form_fasta_too_long(self):
     form = GeneSeekrForm({
         'seqids':
         '2015-SEQ-0711 2015-SEQ-0712',
         'query_sequence':
         '>fasta_name\nATCGACTGACTAGTCA' + 'A' * 10000
     })
     self.assertFalse(form.is_valid())
Exemple #6
0
 def test_valid_geneseekr_form_genus_input_fasta_text(self):
     form = GeneSeekrForm({
         'genus': 'Listeria',
         'query_sequence': '>fasta_name\nATCGACTGACTAGTCA'
     })
     self.assertTrue(form.is_valid())
     seqid_list, query_sequence = form.cleaned_data
     self.assertEqual(seqid_list, ['2015-SEQ-0711', '2015-SEQ-0712'])
     self.assertEqual(query_sequence, '>fasta_name\nATCGACTGACTAGTCA')
Exemple #7
0
 def test_valid_form_exclude_genus(self):
     form = GeneSeekrForm({
         'genus': 'Salmonella',
         'query_sequence': '>fasta_name\nATCGACTGACTAGTCA',
         'everything_but': True,
     })
     self.assertTrue(form.is_valid())
     seqid_list, query_sequence = form.cleaned_data
     self.assertEqual(seqid_list, ['2015-SEQ-0711', '2015-SEQ-0712'])
     self.assertEqual(query_sequence, '>fasta_name\nATCGACTGACTAGTCA')
Exemple #8
0
 def test_valid_geneseekr_form_genus_input_fasta_file(self):
     with open('olc_webportalv2/geneseekr/tests/good_fasta.fasta',
               'rb') as upload_file:
         form = GeneSeekrForm({'genus': 'Listeria'}, {
             'query_file':
             SimpleUploadedFile(upload_file.name, upload_file.read())
         })
         self.assertTrue(form.is_valid())
         seqid_list, query_sequence = form.cleaned_data
         self.assertEqual(seqid_list, ['2015-SEQ-0711', '2015-SEQ-0712'])
Exemple #9
0
 def test_invalid_form_no_sequences_in_genus(self):
     form = GeneSeekrForm({
         'genus': 'TotallyFakeGenus',
         'query_sequence': '>fasta_name\nATCGACTGACTAGTCA'
     })
     self.assertFalse(form.is_valid())
Exemple #10
0
 def test_invalid_form_missing_seqid(self):
     form = GeneSeekrForm({
         'seqids': '2222-SEQ-0711 2015-SEQ-0712',
         'query_sequence': '>fasta_name\nATCGACTGACTAGTCA'
     })
     self.assertFalse(form.is_valid())