def upload_files(request): dataset_id = request.GET['dataset_id'] mtzfile = utils.get_mtz_file(dataset_id) if mtzfile == None: has_mtz_file = False mtzfilename = "" else: has_mtz_file = True mtzfilename = mtzfile.filename pdbfilenames = utils.get_pdb_files(dataset_id) has_pdb_file = False if len(pdbfilenames) > 0: has_pdb_file = True else: has_pdb_file = False c = Context({ 'dataset_id': dataset_id, 'dataset_name': Dataset.objects.get( id=dataset_id).description, 'has_mtz_file': has_mtz_file, 'has_pdb_file': has_pdb_file, 'mtzfilename': mtzfilename, 'pdbfilenames': pdbfilenames, }) return render_to_response("mrtardis/upload_files.html", c)
def MRParams(request, dataset_id): """ shows the parameter entry form, takes request.GET["dataset_id"] as input. """ # return True #dataset_id = request.GET["dataset_id"] #getMTZfile mtz_file = utils.get_mtz_file(dataset_id) mtz_params = utils.processMTZ(mtz_file.get_storage_path()) tochoice = lambda x: (x, x) f_choices = map(tochoice, mtz_params["f_value"]) sigf_choices = map(tochoice, mtz_params["sigf_value"]) sg_num = mtz_params["spacegroup"] pdbfilelist = utils.get_pdb_files(dataset_id) rmsd_formfactory = formset_factory(RmsdForm) if request.method == 'POST': logger.debug("we're POSTing") param_form = MRForm(f_choices, sigf_choices, sg_num, request.POST) rmsd_formset = rmsd_formfactory(request.POST) logger.debug(repr(param_form.is_valid()) + repr(rmsd_formset.is_valid()) + repr(rmsd_formset.errors) + repr(request.POST)) if param_form.is_valid() and rmsd_formset.is_valid(): hpcUsername = MrTUser.objects.get(user=request.user).hpc_username newJob = hpcjob.HPCJob(hpcUsername) jobparameters = { "f_value": param_form.cleaned_data['f_value'], "sigf_value": param_form.cleaned_data['sigf_value'], "num_in_asym": param_form.cleaned_data['num_in_asym'], "ensemble_number": param_form.cleaned_data['ensemble_number'], "packing": param_form.cleaned_data['packing'], "space_group": param_form.cleaned_data['space_group'], } if "sg_all" in param_form.cleaned_data: if param_form.cleaned_data["sg_all"] == True: jobparameters["space_group"].append("ALL") jobparameters["rmsd"] = [] for form in rmsd_formset.forms: jobparameters["rmsd"].append(form.cleaned_data['rmsd']) jobparameters["mol_weight"] = param_form.cleaned_data['mol_weight'] filepaths = utils.get_pdb_files(dataset_id, storagePaths=True) + [mtz_file.get_storage_path()] logger.debug("params: " + repr(jobparameters)) logger.debug("files: " + repr(filepaths)) newJob.stage(jobparameters, filepaths) newJob.submit() dataset = Dataset.objects.get(pk=dataset_id) newJob.dbSave(dataset.experiment_id, dataset, request.user) c = Context({}) return render_to_response("mrtardis/running_job.html", c) else: param_form = MRForm(f_choices=f_choices, sigf_choices=sigf_choices, sg_num=sg_num) rmsd_formset = rmsd_formfactory() c = Context({ 'dataset_id': dataset_id, 'mtz_params': mtz_params, 'rmsd_formset': rmsd_formset, 'paramForm': param_form, 'fileName': mtz_file.filename, 'pdbfilelist': pdbfilelist, 'spacegroupname': utils.sgNumNameTrans(number=sg_num), }) return render_to_response("mrtardis/parameters.html", c)