Exemplo n.º 1
0
def add_sequence(request, pk):
    sl = SequenceListing.objects.get(pk=pk)
    if request.method == 'POST':
        organism = request.POST.get('organism')
        form = SequenceForm(request.POST)

        if form.is_valid():
            cd = form.cleaned_data
            raw_residues = cd['residues']
            
            sequence_instance = Sequence(sequenceListing = sl,
                length = len(cd['residues']),
                moltype = cd['moltype'],
                residues = cd['residues'] 
                )
            
            sequence_instance.save()
            feature_source_helper(sequence_instance, organism)
#             create a note qualifier to indicate the a formula if applicable
            if '(' in raw_residues:
                value_for_note = 'note'
                if cd['moltype'] == 'AA':
                    value_for_note = 'NOTE'
                
                feature_instance = Feature.objects.filter(sequence = sequence_instance)[0]
                note_qualifier_instance = Qualifier.objects.create(feature=feature_instance, 
                                                          qualifierName=value_for_note, 
                                                          qualifierValue=raw_residues)
                note_qualifier_instance.save()
            
            return HttpResponseRedirect(reverse('sequencelistings:detail', args=(pk,)))
    else:
        form = SequenceForm()
    return render(request, 'sequencelistings/add_seq.html', {'form': form, 'pk': pk, 'seql': sl})
Exemplo n.º 2
0
def add_sequence(request, pk):
#     print 'add_sequence invoked'
    if request.method == 'POST':
        organism = request.POST.get('organism')
        form = SequenceForm(request.POST)

        if form.is_valid():
            sl = SequenceListing.objects.get(pk=pk)
            cd = form.cleaned_data
            
            sequence_instance = Sequence(sequenceListing = sl,
                length = len(cd['residues']),
                moltype = cd['moltype'],
                residues = cd['residues'] 
                )
            
            sequence_instance.save()
            
            value_for_source = 'source'
            if cd['moltype'] == 'AA':
                value_for_source = 'SOURCE'
                
            value_for_organism = 'organism'
            if cd['moltype'] == 'AA':
                value_for_organism = 'ORGANISM'
                
            value_for_moltype = 'mol_type'
            if cd['moltype'] == 'AA':
                value_for_moltype = 'MOL_TYPE'
            
            feature_instance = Feature.objects.create(sequence=sequence_instance, 
                                                      featureKey=value_for_source, 
                                                      location='1..%s' % sequence_instance.length)
            feature_instance.save()
            
            organism_qualifier_instance = Qualifier.objects.create(feature=feature_instance, 
                                                          qualifierName=value_for_organism, 
                                                          qualifierValue=organism)
            organism_qualifier_instance.save()
            
            mol_type_qualifier_instance = Qualifier.objects.create(feature=feature_instance, 
                                                          qualifierName=value_for_moltype, 
                                                          qualifierValue=util.MOL_TYPE_QUALIFIER_VALUES[cd['moltype']])
            mol_type_qualifier_instance.save()
            
            return HttpResponseRedirect(reverse('sequencelistings:detail', args=(pk,)))
    else:
        form = SequenceForm()
    return render(request, 'sequencelistings/add_seq.html', {'form': form, 'pk': pk})
Exemplo n.º 3
0
def add_sequence(request, pk):
    sl = SequenceListing.objects.get(pk=pk)
    currentSeqIdNo = len(sl.sequence_set.all()) + 1
    currentSequenceName = 'seq_%i' % currentSeqIdNo
    if request.method == 'POST':
        form = SequenceForm(request.POST)

        if form.is_valid():
            print 'form is valid'
            cd = form.cleaned_data
            raw_residues = cd['residues']

            sequence_instance = Sequence(sequenceListing=sl,
                                         sequenceName=cd['sequenceName'],
                                         length=len(cd['residues']),
                                         moltype=cd['moltype'],
                                         residues=cd['residues'],
                                         skipped=cd['skipped'])
            sequence_instance.save()

            organism = request.POST.get('organism')
            qualmoltype = request.POST.get('qualmoltype')
            feature_source_helper(sequence_instance, organism, qualmoltype)
            #             create a note qualifier to indicate the a formula if applicable
            if '(' in raw_residues:
                value_for_note = 'note'
                if cd['moltype'] == 'AA':
                    value_for_note = 'NOTE'

                feature_instance = Feature.objects.filter(
                    sequence=sequence_instance)[0]
                note_qualifier_instance = Qualifier.objects.create(
                    feature=feature_instance,
                    qualifierName=value_for_note,
                    qualifierValue=raw_residues)
                note_qualifier_instance.save()

            return HttpResponseRedirect(
                reverse('sequencelistings:edit_seql', args=(pk, )))
        else:
            print 'Form not valid.'
    else:
        form = SequenceForm(initial={'sequenceName': currentSequenceName})
    return render(request, 'sequencelistings/add_seq.html', {
        'form': form,
        'pk': pk,
        'seql': sl
    })
def manual_add(request):
	"""Add a fragment manually"""
	if request.method == 'GET':
		meta = MetaForm(request.GET)
		seq = SequenceForm(request.GET)
		if meta.is_valid() and seq.is_valid():
			record = SeqRecord(	seq.cleaned_data['seq'],
								name=meta.cleaned_data['name'], 
								id=meta.cleaned_data['name'],
								description=meta.cleaned_data['desc'])
			Gene.add(record, 'MN', request.user)
			return JsonResponse('OK');
		#figure out what the errors where
		errors = meta.errors
		errors.update(seq.errors)
		return JsonResponse(errors, ERROR)
	raise Http404
Exemplo n.º 5
0
def manual_add(request):
	"""Add a fragment manually"""
	if request.method == 'GET':
		meta = MetaForm(request.GET)
		seq = SequenceForm(request.GET)
		if meta.is_valid() and seq.is_valid():
			record = SeqRecord(	seq.cleaned_data['seq'],
								name=meta.cleaned_data['name'], 
								id=meta.cleaned_data['name'],
								description=meta.cleaned_data['desc'])
			Gene.add(record, 'MN', request.user)
			return JsonResponse('OK');
		#figure out what the errors where
		errors = meta.errors
		errors.update(seq.errors)
		return JsonResponse(errors, ERROR)
	raise Http404