Example #1
0
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)
Example #2
0
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)