Esempio 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})
Esempio n. 2
0
def sequence(request, pk, spk):
    seq = Sequence.objects.get(pk=spk)
    form = SequenceForm(
        instance=seq,
        #                         sn = seq.sequenceName,
        initial={
            'organism': seq.getOrganism(),
            'sequenceName': seq.sequenceName
        })

    form.organism = seq.getOrganism()
    featureFormDic = {}
    qualifierFormDic = {}
    for f in seq.feature_set.all():
        featureFormDic[f] = FeatureForm(instance=f,
                                        mt=seq.moltype,
                                        initial={'featureKey': f.featureKey})

        qualifierFormList = []
        for q in f.qualifier_set.all():
            qualifierFormList.append(
                QualifierForm(feature=f,
                              instance=q,
                              initial={'qualifierName': q.qualifierName}))

        qualifierFormDic[f] = qualifierFormList

    return render(
        request, 'sequencelistings/sequence.html', {
            'form': form,
            'seq': seq,
            'featureFormDic': featureFormDic,
            'qualifierFormDic': qualifierFormDic,
        })
Esempio n. 3
0
def sequence(request, pk, spk):
    seq = Sequence.objects.get(pk=spk)
    form = SequenceForm(instance=seq, initial={'organism': seq.getOrganism()})
    form.organism = seq.getOrganism()
    featureFormDic = {}
    qualifierFormDic = {}
    for f in seq.feature_set.all():
        featureFormDic[f] = FeatureForm(instance=f, mt=seq.moltype, initial={'featureKey': f.featureKey})

        qualifierFormList = []
        for q in f.qualifier_set.all():
            qualifierFormList.append(QualifierForm(feature=f, 
                                                   instance=q, 
                                                   initial={'qualifierName': q.qualifierName}))

        qualifierFormDic[f] = qualifierFormList
            
#     if request.method == 'POST':
         
 
#         if form.is_valid():
#             cd = form.cleaned_data
#             
#             fk = cd['featureKey']
#             fl = cd['location']
#             f = Feature.objects.create(sequence=seq, featureKey=fk, location=fl)
#             f.save()
#             return HttpResponseRedirect(reverse('sequencelistings:detail', args=(pk,)))
#     else:
#         form = FeatureForm(mt=seq.moltype)
    return render(request, 'sequencelistings/sequence.html', {'form': form, 'seq': seq, 
                                                              'featureFormDic': featureFormDic, 
                                                              'qualifierFormDic': qualifierFormDic,})
Esempio n. 4
0
def index():
    form = SequenceForm()
    details = []

    if form.validate_on_submit():
        for seq in re.findall(r'[ACGT]{23}', form.sequence.data.upper()):
            scores = calculator.calculate_sequence(seq)
            details.append({"sequence": seq, "scores": scores})

        if form.csv.data:
            return render_csv(details)

    return render_template('index.html', form=form, details=details)
Esempio n. 5
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})
Esempio n. 6
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
Esempio n. 8
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
Esempio n. 9
0
def manual_form(request):
	t = loader.get_template('fragment/MNform.html')
	meta = MetaForm()
	seq = SequenceForm()
	c = RequestContext(request, {	'meta': meta, 'seq': seq,
									'title':'Manually add a Fragment',
									'action': 'import/manual/add/',})
	
	return HttpResponse(t.render(c))
Esempio n. 10
0
def sequence(request, pk, spk):
    seq = Sequence.objects.get(pk=spk)
    form = SequenceForm(instance=seq, initial={'organism': seq.getOrganism()})
    form.organism = seq.getOrganism()
    featureFormDic = {}
    qualifierFormDic = {}
    for f in seq.feature_set.all():
        featureFormDic[f] = FeatureForm(instance=f, mt=seq.moltype, initial={'featureKey': f.featureKey})

        qualifierFormList = []
        for q in f.qualifier_set.all():
            qualifierFormList.append(QualifierForm(feature=f, 
                                                   instance=q, 
                                                   initial={'qualifierName': q.qualifierName}))

        qualifierFormDic[f] = qualifierFormList
            
    return render(request, 'sequencelistings/sequence.html', {'form': form, 'seq': seq, 
                                                              'featureFormDic': featureFormDic, 
                                                              'qualifierFormDic': qualifierFormDic,})