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 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, })
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))
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)
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