from .models import MD_START
from .models import MD_LANG
from .models import FF_CHOICE
+from django.utils.safestring import mark_safe
import json
import urllib
help_text='preminim maximum number of function evaluations<br>'+
'used for start from pdb or random start')
remd_nrep = forms.IntegerField(label='NREP',initial=8,
- help_text='number of replicas')
+ help_text='number of temperatures')
remd_nstex = forms.IntegerField(label='NSTEX',initial=1000,
help_text='exchange and write trajectory every nstex steps')
md_ntwx = forms.IntegerField(label='NTWX',initial=1000,min_value=100,
label='or PDB code (:chain)')
+ md_seq = forms.CharField(label=mark_safe('Sequence of chain2 <br /> for dock peptide'),
+ help_text='aminoacid sequence using one letter code<br>'+
+ 'field is ignored when uploading PDB file2',
+ required=False,
+ widget=forms.Textarea(attrs={'cols': 70, 'rows': 2}))
+
+
file2 = forms.FileField(label='Upload a PDB file2',required=False,
help_text='starting structure for chain2')
pdbid2 = forms.CharField(min_length=4,max_length=6,required=False,
md_seed = forms.IntegerField(label='SEED',initial=-39912345,
help_text='seed for random number generator')
dock_peptide = forms.BooleanField(required=False,initial=False,
- label='dock peptide',help_text='no constrains on 2nd chain')
+ label='dock peptide',help_text='no constraints on chain2')
def clean(self):
cleaned_data = super(TaskForm_dock, self).clean()
pdbid = cleaned_data.get("pdbid")
file2 = cleaned_data.get("file2")
pdbid2 = cleaned_data.get("pdbid2")
+ md_seq = cleaned_data.get("md_seq")
if not (file1 or pdbid):
msg = 'no PDB file or code for chain1'
self.add_error('file1', msg)
- if not (file2 or pdbid2):
- msg = 'no PDB file or code for chain2'
+ if not (file2 or pdbid2 or md_seq):
+ msg = 'no PDB file or code or sequence for chain2'
self.add_error('file2', msg)
if pdbid:
widget=forms.TextInput(attrs={'size':6, 'maxlength':6, 'title':'PDB code or PDB code:chain id'}),
label='or PDB code (:chain)')
+ md_seq = forms.CharField(label=mark_safe('Sequence of chain2 <br /> for dock peptide'),
+ help_text='aminoacid sequence using one letter code<br>'+
+ 'field is ignored when uploading PDB file2',
+ required=False,
+ widget=forms.Textarea(attrs={'cols': 70, 'rows': 2}))
+
file2 = forms.FileField(label='Upload a PDB file2',required=False,
help_text='starting structure for chain2')
help_text='total number of steps', max_value=10000000)
md_seed = forms.IntegerField(label='SEED',initial=-39912345,
help_text='seed for random number generator')
+ dock_peptide = forms.BooleanField(required=False,initial=False,
+ label='dock peptide',help_text='no constraints on 2nd chain')
unres_ff = forms.ChoiceField(choices=FF_CHOICE,widget=forms.RadioSelect,
help_text='preminim maximum number of function evaluations<br>'+
'used for start from pdb or random start')
remd_nrep = forms.IntegerField(label='NREP',initial=8,
- help_text='number of replicas')
+ help_text='number of temperatures')
remd_nstex = forms.IntegerField(label='NSTEX',initial=1000,
help_text='exchange and write trajectory every nstex steps')
md_ntwx = forms.IntegerField(label='NTWX',initial=1000,min_value=100,
pdbid = cleaned_data.get("pdbid")
file2 = cleaned_data.get("file2")
pdbid2 = cleaned_data.get("pdbid2")
-
+ md_seq = cleaned_data.get("md_seq")
if not (file1 or pdbid):
msg = 'no PDB file or code for chain1'
self.add_error('file1', msg)
- if not (file2 or pdbid2):
- msg = 'no PDB file or code for chain2'
+ if not (file2 or pdbid2 or md_seq):
+ msg = 'no PDB file or code or sequence for chain2'
self.add_error('file2', msg)
if pdbid: