List of usage examples for org.apache.commons.configuration CompositeConfiguration getBoolean
public boolean getBoolean(String key, boolean defaultValue)
From source file:ffx.potential.parsers.ConversionFilter.java
public ConversionFilter(List<Object> structures, MolecularAssembly molecularAssembly, ForceField forcefield, CompositeConfiguration properties) { this.structures = structures; if (structures != null && !structures.isEmpty()) { this.currentStructure = structures.get(0); }// w w w. j a va2 s . c om this.activeMolecularAssembly = molecularAssembly; this.forceField = forcefield; this.properties = properties; if (properties != null) { vdwH = properties.getBoolean("vdwHydrogens", false); } else { vdwH = false; } }
From source file:ffx.potential.parsers.ConversionFilter.java
public ConversionFilter(Object structure, MolecularAssembly molecularAssembly, ForceField forcefield, CompositeConfiguration properties) { this.currentStructure = structure; this.structures = new ArrayList<>(); if (structure != null) { structures.add(structure);/*w w w . j a v a 2s .com*/ } this.activeMolecularAssembly = molecularAssembly; this.forceField = forcefield; this.properties = properties; if (properties != null) { vdwH = properties.getBoolean("vdwHydrogens", false); } else { vdwH = false; } }
From source file:ffx.potential.parsers.ConversionFilter.java
public ConversionFilter(Object structure, List<MolecularAssembly> molecularAssemblies, ForceField forcefield, CompositeConfiguration properties) { this.currentStructure = structure; this.structures = new ArrayList<>(); if (structure != null) { structures.add(structure);/* w w w. j a va2 s . c o m*/ } this.systems = new Vector(molecularAssemblies); this.activeMolecularAssembly = systems.firstElement(); this.forceField = forcefield; this.properties = properties; if (properties != null) { vdwH = properties.getBoolean("vdwHydrogens", false); } else { vdwH = false; } }
From source file:ffx.potential.parsers.SystemFilter.java
/** * <p>//from w w w. j a va2 s .c o m * Constructor for SystemFilter.</p> * * @param files a {@link java.util.List} object. * @param molecularAssembly a {@link ffx.potential.MolecularAssembly} * object. * @param forceField a {@link ffx.potential.parameters.ForceField} object. * @param properties a * {@link org.apache.commons.configuration.CompositeConfiguration} object. */ public SystemFilter(List<File> files, MolecularAssembly molecularAssembly, ForceField forceField, CompositeConfiguration properties) { this.files = files; if (files != null) { this.currentFile = files.get(0); } this.activeMolecularAssembly = molecularAssembly; this.forceField = forceField; this.properties = properties; if (properties != null) { vdwH = properties.getBoolean("vdwHydrogens", false); } else { vdwH = false; } }
From source file:ffx.potential.parsers.SystemFilter.java
/** * <p>/*w w w .ja v a 2 s .c o m*/ * Constructor for SystemFilter.</p> * * @param file a {@link java.io.File} object. * @param molecularAssembly a {@link ffx.potential.MolecularAssembly} * object. * @param forceField a {@link ffx.potential.parameters.ForceField} object. * @param properties a * {@link org.apache.commons.configuration.CompositeConfiguration} object. */ public SystemFilter(File file, MolecularAssembly molecularAssembly, ForceField forceField, CompositeConfiguration properties) { files = new ArrayList<File>(); if (file != null) { files.add(file); } this.currentFile = file; this.activeMolecularAssembly = molecularAssembly; this.forceField = forceField; this.properties = properties; if (properties != null) { vdwH = properties.getBoolean("vdwHydrogens", false); } else { vdwH = false; } }
From source file:ffx.potential.parsers.SystemFilter.java
/** * <p>/* ww w . j a v a 2s . c o m*/ * Constructor for SystemFilter.</p> * * @param file a {@link java.io.File} object. * @param molecularAssemblies a {@link java.util.List} object. * @param forceField a {@link ffx.potential.parameters.ForceField} object. * @param properties a * {@link org.apache.commons.configuration.CompositeConfiguration} object. */ public SystemFilter(File file, List<MolecularAssembly> molecularAssemblies, ForceField forceField, CompositeConfiguration properties) { files = new ArrayList<File>(); if (file != null) { files.add(file); } this.currentFile = file; this.systems = new Vector(molecularAssemblies); this.activeMolecularAssembly = systems.firstElement(); this.forceField = forceField; this.properties = properties; if (properties != null) { vdwH = properties.getBoolean("vdwHydrogens", false); } else { vdwH = false; } }
From source file:ffx.realspace.RealSpaceData.java
/** * Construct a real space data molecularAssemblies. * * @param molecularAssemblies//www.j a v a 2s. co m * {@link ffx.potential.MolecularAssembly molecular molecularAssemblies} * object array (typically containing alternate conformer assemblies), used * as the atomic model for comparison against the data * @param properties system properties file * @param parallelTeam * @param dataFile one or more {@link RealSpaceFile} to be refined against */ public RealSpaceData(MolecularAssembly molecularAssemblies[], CompositeConfiguration properties, ParallelTeam parallelTeam, RealSpaceFile... dataFile) { this.molecularAssemblies = molecularAssemblies; this.modelName = molecularAssemblies[0].getFile().getName(); this.parallelTeam = parallelTeam; this.realSpaceFile = dataFile; this.nRealSpaceData = dataFile.length; crystal = new Crystal[nRealSpaceData]; refinementData = new RealSpaceRefinementData[nRealSpaceData]; xweight = properties.getDouble("xweight", 1.0); lambdaTerm = properties.getBoolean("lambdaterm", false); for (int i = 0; i < nRealSpaceData; i++) { crystal[i] = dataFile[i].getRealSpaceFileFilter().getCrystal(dataFile[i].getFilename(), properties); if (crystal[i] == null) { logger.severe("CCP4 map file does not contain full crystal information!"); } } for (int i = 0; i < nRealSpaceData; i++) { refinementData[i] = new RealSpaceRefinementData(); dataFile[i].getRealSpaceFileFilter().readFile(dataFile[i].getFilename(), refinementData[i], properties); if (refinementData[i].getOrigin()[0] == 0 && refinementData[i].getOrigin()[1] == 0 && refinementData[i].getOrigin()[2] == 0 && refinementData[i].getExtent()[0] == refinementData[i].getNi()[0] && refinementData[i].getExtent()[1] == refinementData[i].getNi()[1] && refinementData[i].getExtent()[2] == refinementData[i].getNi()[2]) { refinementData[i].setPeriodic(true); } } if (logger.isLoggable(Level.INFO)) { StringBuilder sb = new StringBuilder(); sb.append(" Real Space Refinement Settings\n"); sb.append(format(" Refinement weight (xweight): %5.3f", xweight)); logger.info(sb.toString()); } // now set up the refinement model refinementModel = new RefinementModel(molecularAssemblies); /** * Initialize the RealSpaceRegion. */ int nAtoms = refinementModel.getTotalAtomArray().length; realSpaceRegion = new RealSpaceRegion(parallelTeam.getThreadCount(), nAtoms, refinementData.length); }
From source file:ffx.realspace.RealSpaceData.java
/** * Construct a real space data molecularAssemblies, assumes a real space map * with a weight of 1.0 using the same name as the molecularAssemblies. * * @param molecularAssemblies//from w ww . jav a 2 s . com * {@link ffx.potential.MolecularAssembly molecular molecularAssemblies} * object, used as the atomic model for comparison against the data * @param properties system properties file * @param parallelTeam * @param diffractionData {@link ffx.xray.DiffractionData diffraction data} */ public RealSpaceData(MolecularAssembly molecularAssemblies[], CompositeConfiguration properties, ParallelTeam parallelTeam, DiffractionData diffractionData) { this.molecularAssemblies = molecularAssemblies; this.parallelTeam = parallelTeam; this.modelName = molecularAssemblies[0].getFile().getName(); this.realSpaceFile = null; this.nRealSpaceData = 1; crystal = new Crystal[nRealSpaceData]; crystal[0] = diffractionData.getCrystal()[0]; refinementData = new RealSpaceRefinementData[nRealSpaceData]; refinementData[0] = new RealSpaceRefinementData(); refinementData[0].setPeriodic(true); xweight = properties.getDouble("xweight", 1.0); lambdaTerm = properties.getBoolean("lambdaterm", false); if (logger.isLoggable(Level.INFO)) { StringBuilder sb = new StringBuilder(); sb.append(" Real Space Refinement Settings\n"); sb.append(format(" Refinement weight (xweight): %5.3f", xweight)); logger.info(sb.toString()); } if (!diffractionData.getScaled()[0]) { diffractionData.scaleBulkFit(); diffractionData.printStats(); } // get Fo-Fc difference density diffractionData.getCrs_fc()[0].computeAtomicGradients(diffractionData.getRefinementData()[0].fofc1, diffractionData.getRefinementData()[0].freer, diffractionData.getRefinementData()[0].rfreeflag, RefinementMode.COORDINATES); refinementData[0].setOrigin(0, 0, 0); int extx = (int) diffractionData.getCrs_fc()[0].getXDim(); int exty = (int) diffractionData.getCrs_fc()[0].getYDim(); int extz = (int) diffractionData.getCrs_fc()[0].getZDim(); refinementData[0].setExtent(extx, exty, extz); refinementData[0].setNI(extx, exty, extz); refinementData[0].setData(new double[extx * exty * extz]); for (int k = 0; k < extz; k++) { for (int j = 0; j < exty; j++) { for (int i = 0; i < extx; i++) { int index1 = (i + extx * (j + exty * k)); int index2 = 2 * (i + extx * (j + exty * k)); refinementData[0].getData()[index1] = diffractionData.getCrs_fc()[0].getDensityGrid()[index2]; } } } /** * Initialize the refinement model. */ refinementModel = new RefinementModel(molecularAssemblies); /** * Initialize the RealSpaceRegion. */ int nAtoms = refinementModel.getTotalAtomArray().length; realSpaceRegion = new RealSpaceRegion(parallelTeam.getThreadCount(), nAtoms, refinementData.length); }
From source file:ffx.xray.DiffractionData.java
/** * construct a diffraction data assembly * * @param assembly//from ww w. j a va 2 s .c o m * {@link ffx.potential.MolecularAssembly molecular assembly} object array * (typically containing alternate conformer assemblies), used as the atomic * model for comparison against the data * @param properties system properties file * @param solventmodel the type of solvent model desired - see * {@link CrystalReciprocalSpace.SolventModel bulk solvent model} selections * @param datafile one or more {@link DiffractionFile} to be refined against */ public DiffractionData(MolecularAssembly assembly[], CompositeConfiguration properties, SolventModel solventmodel, DiffractionFile... datafile) { this.assembly = assembly; this.solventModel = solventmodel; this.modelName = assembly[0].getFile().getName(); this.dataFiles = datafile; this.n = datafile.length; int rflag = properties.getInt("rfreeflag", -1); fsigfCutoff = properties.getDouble("fsigfcutoff", -1.0); gridSearch = properties.getBoolean("gridsearch", false); splineFit = properties.getBoolean("splinefit", true); use_3g = properties.getBoolean("use_3g", true); aRadBuff = properties.getDouble("aradbuff", 0.75); double sampling = properties.getDouble("sampling", 0.6); xrayScaleTol = properties.getDouble("xrayscaletol", 1e-4); sigmaATol = properties.getDouble("sigmaatol", 0.05); xWeight = properties.getDouble("xweight", 1.0); bSimWeight = properties.getDouble("bsimweight", 1.0); bNonZeroWeight = properties.getDouble("bnonzeroweight", 1.0); bMass = properties.getDouble("bmass", 5.0); residueBFactor = properties.getBoolean("residuebfactor", false); nResidueBFactor = properties.getInt("nresiduebfactor", 1); addAnisou = properties.getBoolean("addanisou", false); refineMolOcc = properties.getBoolean("refinemolocc", false); occMass = properties.getDouble("occmass", 10.0); crystal = new Crystal[n]; resolution = new Resolution[n]; reflectionList = new ReflectionList[n]; refinementData = new DiffractionRefinementData[n]; scaleBulkMinimize = new ScaleBulkMinimize[n]; sigmaAMinimize = new SigmaAMinimize[n]; splineMinimize = new SplineMinimize[n]; crystalStats = new CrystalStats[n]; // read in Fo/sigFo/FreeR File tmp; Crystal crystalinit = Crystal.checkProperties(properties); Resolution resolutioninit = Resolution.checkProperties(properties); if (crystalinit == null || resolutioninit == null) { for (int i = 0; i < n; i++) { tmp = new File(datafile[i].getFilename()); reflectionList[i] = datafile[i].getDiffractionfilter().getReflectionList(tmp, properties); if (reflectionList[i] == null) { logger.info(" Crystal information from the PDB or property file will be used."); crystalinit = assembly[i].getCrystal().getUnitCell(); double res = datafile[i].getDiffractionfilter().getResolution(tmp, crystalinit); if (res < 0.0) { logger.severe("MTZ/CIF/CNS file does not contain full crystal information!"); } else { resolutioninit = new Resolution(res, sampling); reflectionList[i] = new ReflectionList(crystalinit, resolutioninit, properties); } } } } else { for (int i = 0; i < n; i++) { reflectionList[i] = new ReflectionList(crystalinit, resolutioninit, properties); } } for (int i = 0; i < n; i++) { crystal[i] = reflectionList[i].crystal; resolution[i] = reflectionList[i].resolution; refinementData[i] = new DiffractionRefinementData(properties, reflectionList[i]); tmp = new File(datafile[i].getFilename()); datafile[i].getDiffractionfilter().readFile(tmp, reflectionList[i], refinementData[i], properties); } if (!crystal[0].equals(assembly[0].getCrystal().getUnitCell())) { logger.severe("PDB and reflection file crystal information do not match! (check CRYST1 record?)"); } if (logger.isLoggable(Level.INFO)) { StringBuilder sb = new StringBuilder(); sb.append(" X-ray Refinement Settings\n\n"); sb.append(" Target Function\n"); sb.append(" X-ray refinement weight (xweight): ").append(xWeight).append("\n"); sb.append(" Use cctbx 3 Gaussians (use_3g): ").append(use_3g).append("\n"); sb.append(" Atomic form factor radius buffer (aradbuff): ").append(aRadBuff).append("\n"); sb.append(" Reciprocal space sampling rate (sampling): ").append(sampling).append("\n"); sb.append(" Resolution dependent spline scale (splinefit): ").append(splineFit).append("\n"); sb.append(" Solvent grid search (gridsearch): ").append(gridSearch).append("\n"); sb.append(" X-ray scale fit tolerance (xrayscaletol): ").append(xrayScaleTol).append("\n"); sb.append(" Sigma A fit tolerance (sigmaatol): ").append(sigmaATol).append("\n\n"); sb.append(" Reflections\n"); sb.append(" F/sigF cutoff (fsigfcutoff): ").append(fsigfCutoff).append("\n"); sb.append(" R Free flag (rfreeflag) (if -1, value will be updated when data is read in): ") .append(rflag).append("\n"); sb.append(" Number of bins (nbins): ").append(reflectionList[0].nbins).append("\n\n"); sb.append(" B-Factors\n"); sb.append(" Similarity weight (bsimweight): ").append(bSimWeight).append("\n"); sb.append(" Non-zero weight (bnonzeroweight): ").append(bNonZeroWeight).append("\n"); sb.append(" Lagrangian mass (bmass): ").append(bMass).append("\n"); sb.append(" Refined by residue (residuebfactor): ").append(residueBFactor).append("\n"); sb.append(" (if true, num. residues per B (nresiduebfactor): ").append(nResidueBFactor) .append(")\n"); sb.append(" Add ANISOU for refinement (addanisou): ").append(addAnisou).append("\n\n"); sb.append(" Occupancies\n"); sb.append(" Refine on molecules (HETATMs - refinemolocc): ").append(refineMolOcc).append("\n"); sb.append(" Lagrangian mass (occmass): ").append(occMass).append("\n"); logger.info(sb.toString()); } // now set up the refinement model refinementModel = new RefinementModel(assembly, refineMolOcc); // initialize atomic form factors for (Atom a : refinementModel.getTotalAtomArray()) { a.setFormFactorIndex(-1); XRayFormFactor atomff = new XRayFormFactor(a, use_3g, 2.0); a.setFormFactorIndex(atomff.ffIndex); if (a.getOccupancy() == 0.0) { a.setFormFactorWidth(1.0); continue; } double arad = a.getVDWType().radius * 0.5; double xyz[] = new double[3]; xyz[0] = a.getX() + arad; xyz[1] = a.getY(); xyz[2] = a.getZ(); double rho = atomff.rho(0.0, 1.0, xyz); while (rho > 0.001) { arad += 0.1; xyz[0] = a.getX() + arad; rho = atomff.rho(0.0, 1.0, xyz); } arad += aRadBuff; a.setFormFactorWidth(arad); } // set up FFT and run it crs_fc = new CrystalReciprocalSpace[n]; crs_fs = new CrystalReciprocalSpace[n]; parallelTeam = assembly[0].getParallelTeam(); parallelTeam = new ParallelTeam(); for (int i = 0; i < n; i++) { crs_fc[i] = new CrystalReciprocalSpace(reflectionList[i], refinementModel.getTotalAtomArray(), parallelTeam, parallelTeam, false, dataFiles[i].isNeutron()); refinementData[i].setCrystalReciprocalSpace_fc(crs_fc[i]); crs_fc[i].setUse3G(use_3g); crs_fc[i].setWeight(dataFiles[i].getWeight()); crs_fc[i].lambdaTerm = false; crs_fs[i] = new CrystalReciprocalSpace(reflectionList[i], refinementModel.getTotalAtomArray(), parallelTeam, parallelTeam, true, dataFiles[i].isNeutron(), solventmodel); refinementData[i].setCrystalReciprocalSpace_fs(crs_fs[i]); crs_fs[i].setUse3G(use_3g); crs_fs[i].setWeight(dataFiles[i].getWeight()); crs_fs[i].lambdaTerm = false; crystalStats[i] = new CrystalStats(reflectionList[i], refinementData[i]); } scaled = new boolean[n]; fill(scaled, false); }
From source file:ffx.xray.FiniteDifferenceTest.java
public FiniteDifferenceTest(boolean ciOnly, String info, SolventModel solventModel, int[] atoms, String pdbName, String mtzName) {/* w ww. j a v a 2s.c o m*/ this.ciOnly = ciOnly; this.atoms = atoms; ci = System.getProperty("ffx.ci", "false").equalsIgnoreCase("true"); if (!ci && ciOnly) { atomArray = null; refinementData = null; sigmaAMinimize = null; return; } int index = pdbName.lastIndexOf("."); String name = pdbName.substring(0, index); // load the structure ClassLoader cl = this.getClass().getClassLoader(); File structure = new File(cl.getResource(pdbName).getPath()); File mtzFile = new File(cl.getResource(mtzName).getPath()); // load any properties associated with it CompositeConfiguration properties = Keyword.loadProperties(structure); // read in Fo/sigFo/FreeR MTZFilter mtzFilter = new MTZFilter(); ReflectionList reflectionList; Crystal crystal = Crystal.checkProperties(properties); Resolution resolution = Resolution.checkProperties(properties); if (crystal == null || resolution == null) { reflectionList = mtzFilter.getReflectionList(mtzFile); } else { reflectionList = new ReflectionList(crystal, resolution); } refinementData = new DiffractionRefinementData(properties, reflectionList); assertTrue(info + " mtz file should be read in without errors", mtzFilter.readFile(mtzFile, reflectionList, refinementData, properties)); ForceFieldFilter forceFieldFilter = new ForceFieldFilter(properties); ForceField forceField = forceFieldFilter.parse(); // associate molecular assembly with the structure, set up forcefield MolecularAssembly molecularAssembly = new MolecularAssembly(name); molecularAssembly.setFile(structure); molecularAssembly.setForceField(forceField); PDBFilter pdbFile = new PDBFilter(structure, molecularAssembly, forceField, properties); pdbFile.readFile(); pdbFile.applyAtomProperties(); molecularAssembly.finalize(true, forceField); ForceFieldEnergy energy = new ForceFieldEnergy(molecularAssembly, pdbFile.getCoordRestraints()); List<Atom> atomList = molecularAssembly.getAtomList(); atomArray = atomList.toArray(new Atom[0]); boolean use_3g = properties.getBoolean("use_3g", true); // initialize atomic form factors for (Atom atom : atomArray) { XRayFormFactor xrayFormFactor = new XRayFormFactor(atom, use_3g, 2.0); atom.setFormFactorIndex(xrayFormFactor.ffIndex); if (atom.getOccupancy() == 0.0) { atom.setFormFactorWidth(1.0); continue; } double aRad = 2.4; double xyz[] = new double[3]; xyz[0] = atom.getX() + aRad; xyz[1] = atom.getY(); xyz[2] = atom.getZ(); while (true) { double rho = xrayFormFactor.rho(0.0, 1.0, xyz); if (rho > 0.1) { aRad += 0.5; } else if (rho > 0.001) { aRad += 0.1; } else { aRad += 0.75; atom.setFormFactorWidth(aRad); break; } xyz[0] = atom.getX() + aRad; } } // set up FFT and run it ParallelTeam parallelTeam = new ParallelTeam(); CrystalReciprocalSpace crs = new CrystalReciprocalSpace(reflectionList, atomArray, parallelTeam, parallelTeam, false, false); crs.computeDensity(refinementData.fc); refinementData.setCrystalReciprocalSpace_fc(crs); crs = new CrystalReciprocalSpace(reflectionList, atomArray, parallelTeam, parallelTeam, true, false, solventModel); crs.computeDensity(refinementData.fs); refinementData.setCrystalReciprocalSpace_fs(crs); ScaleBulkMinimize scaleBulkMinimize = new ScaleBulkMinimize(reflectionList, refinementData, crs, parallelTeam); scaleBulkMinimize.minimize(6, 1.0e-4); sigmaAMinimize = new SigmaAMinimize(reflectionList, refinementData, parallelTeam); sigmaAMinimize.minimize(7, 2.0e-2); SplineMinimize splineMinimize = new SplineMinimize(reflectionList, refinementData, refinementData.spline, SplineEnergy.Type.FOFC); splineMinimize.minimize(7, 1e-5); CrystalStats crystalstats = new CrystalStats(reflectionList, refinementData); crystalstats.printScaleStats(); crystalstats.printHKLStats(); crystalstats.printSNStats(); crystalstats.printRStats(); }