List of usage examples for org.apache.commons.configuration2 XMLConfiguration configurationsAt
@Override public List<HierarchicalConfiguration<ImmutableNode>> configurationsAt(final String key)
From source file:Executable.LinkImputeR.java
private static void impute(XMLConfiguration config, String casename, File output) throws VCFException, OutputException { long start = System.currentTimeMillis(); Log.initialise(Level.DEBUG);//from w ww. j av a2 s . c o m Log.brief("Started " + casename); Input input = new Input(config.configurationAt("input")); VCF vcf = input.getVCF(); Log.debug("Data read in"); if (casename == null) { casename = config.getString("input.case"); } if (output == null) { output = new File(config.getString("output.filename")); } for (HierarchicalConfiguration<ImmutableNode> caseConfig : config.configurationsAt("case")) { Case c = new Case(caseConfig); if (c.getName().equals(casename)) { //FILTER c.applyFilters(vcf); Log.debug("Filters applied"); //GET READS int[][][] readCounts = vcf.asArrayTransposed("AD", new DepthMapper()); Log.debug("Got reads"); //CALL Caller caller = c.getCaller(); double[][][] calledProb = caller.call(readCounts); Log.debug("Done calling"); //IMPUTE ProbToCall p2c = new ProbToCall(); Imputer imputer = c.getImputer(); double[][][] imputedProb = imputer.impute(calledProb, readCounts); Log.debug("Done imputing"); //COMBINE Combiner combiner = c.getCombiner(); double[][][] combinedProb = combiner.combine(calledProb, imputedProb, readCounts); byte[][] combinedCalled = p2c.call(combinedProb); Log.debug("Done combining"); List<Position> newPositions = new ArrayList<>(); int i = 0; PositionMeta[] old = vcf.getPositions(); for (PositionMeta pm : old) { Position oldp = vcf.singlePosition(pm); byte[] g = new byte[combinedProb.length]; double[][] p = new double[combinedProb.length][]; for (int j = 0; j < g.length; j++) { g[j] = combinedCalled[j][i]; p[j] = combinedProb[j][i]; } newPositions.add(makeNewPosition(oldp, g, p)); i++; } List<String> newMeta = vcf.getMeta().getLinesList(); newMeta.add("##FORMAT=<ID=UG,Number=1,Type=String,Description=\"Unimputed Genotype\">"); newMeta.add( "##FORMAT=<ID=IP,Number=3,Type=Float,Description=\"Imputation Probabilities (3 d.p.)\">"); VCF newVCF = new VCF(new Meta(newMeta), newPositions); try { newVCF.writeFile(output); } catch (IOException ex) { throw new OutputException("Problem writing the imputed VCF"); } Log.debug("Output written"); } } String time = DurationFormatUtils.formatDuration(System.currentTimeMillis() - start, "dd:HH:mm:ss"); Log.brief("All done\t(" + time + ")"); }
From source file:Executable.LinkImputeR.java
private static void accuracy(XMLConfiguration config) throws VCFException, OutputException, AlgorithmException { Log.initialise(config.configurationAt("log")); long start = System.currentTimeMillis(); Log.brief("Started"); List<ImmutableNode> outConfig = new ArrayList<>(); outConfig.add(new ImmutableNode.Builder().name("mode").value("impute").create()); Input input = new Input(config.configurationAt("input")); VCF vcf = input.getVCF();/* w w w .j a v a 2 s .com*/ outConfig.add(input.getImputeConfig()); Log.brief("Done read in and filter"); DepthMaskFactory dmf = new DepthMaskFactory(config.configurationAt("mask")); Output output = new Output(config.configurationAt("output")); PrintWriter sum = output.getSummaryWriter(); PrintWriter table = output.getTableWriter(); boolean partial = output.getPartial(); writeSumHeader(sum, partial); for (HierarchicalConfiguration<ImmutableNode> caseConfig : config.configurationsAt("case")) { Case c = new Case(caseConfig); Log.brief(c.getName() + ": Starting"); Log.detail(c.getName() + ": Applying filters..."); //FILTER c.applyFilters(vcf); if ((vcf.numberPositions() > 0) && (vcf.numberSamples()) > 0) { Log.detail(c.getName() + ": Getting reads..."); //GET READS int[][][] readCounts = vcf.asArrayTransposed("AD", new DepthMapper()); Caller caller = c.getCaller(); Log.detail(c.getName() + ": Masking..."); //MASK DepthMask mask = dmf.getDepthMask(readCounts, caller); List<SingleGenotypeReads> maskedReads = getMaskedReads(mask.maskedList()); Log.detail(c.getName() + ": Calling..."); ProbToCall p2c = new ProbToCall(); //CALL List<SingleGenotypeProbability> calledProb = caller.call(maskedReads); Log.detail(c.getName() + ": Imputing..."); //IMPUTE double[][][] origProb = caller.call(readCounts); Imputer imputer = c.getImputer(origProb, readCounts, calledProb, mask.maskedList()); Log.detail(c.getName() + ": Combining..."); DepthMask validateMask = dmf.getDepthMask(readCounts, mask.maskedPositions(), caller); List<SingleGenotypeReads> validateMaskedReads = getMaskedReads(validateMask.maskedList()); List<SingleGenotypeProbability> validateCalledProb = caller.call(validateMaskedReads); List<SingleGenotypeProbability> validateImputedProb = imputer.impute(origProb, readCounts, validateCalledProb, validateMask.maskedList()); //COMBINE List<SingleGenotypeCall> validateCorrectCalls = p2c .call(caller.call(getOriginalReads(validateMask.maskedList()))); Combiner combiner = c.getCombiner(validateCalledProb, validateImputedProb, validateMaskedReads, validateCorrectCalls, validateMask.maskedList()); Log.detail(c.getName() + ": Creating Stats..."); //STATS List<SingleGenotypePosition> ignoredPositions = new ArrayList<>(); ignoredPositions.addAll(mask.maskedPositions()); ignoredPositions.addAll(validateMask.maskedPositions()); DepthMask testMask = dmf.getDepthMask(readCounts, ignoredPositions, caller); List<SingleGenotypeReads> testMaskedReads = getMaskedReads(testMask.maskedList()); List<SingleGenotypeProbability> testCalledProb = caller.call(testMaskedReads); List<SingleGenotypeCall> testCalledGeno = p2c.call(testCalledProb); List<SingleGenotypeProbability> testImputedProb = imputer.impute(origProb, readCounts, testCalledProb, testMask.maskedList()); List<SingleGenotypeCall> testImputedGeno = p2c.call(testImputedProb); List<SingleGenotypeCall> testCorrectCalls = p2c .call(caller.call(getOriginalReads(testMask.maskedList()))); List<SingleGenotypeProbability> testCombinedProb = combiner.combine(testCalledProb, testImputedProb, testMaskedReads); List<SingleGenotypeCall> testCombinedGeno = p2c.call(testCombinedProb); AccuracyStats stats = AccuracyCalculator.accuracyStats(testCorrectCalls, testCombinedGeno, testMask.maskedList()); AccuracyStats cstats = AccuracyCalculator.accuracyStats(testCorrectCalls, testCalledGeno, testMask.maskedList()); AccuracyStats istats = AccuracyCalculator.accuracyStats(testCorrectCalls, testImputedGeno, testMask.maskedList()); c.getPrintStats().writeStats(stats, cstats, istats); writeSum(sum, c, vcf, stats, cstats, istats, partial); writeTable(table, c, vcf, stats, cstats, istats, partial); c.getPrintStats().writeEachMasked(testCorrectCalls, testCombinedGeno, vcf.getSamples(), vcf.getPositions()); //ADD IMPUTE CONFIG outConfig.add(c.getImputeConfig(caller, imputer, combiner)); Log.brief(c.getName() + ": Done"); } else { Log.detail(c.getName() + ": No data left after filtering"); writeSumError(sum, c, partial); Log.brief(c.getName() + ": Done"); } } //WRITE CONFIG output.writeControl(outConfig); sum.close(); if (table != null) { table.close(); } String time = DurationFormatUtils.formatDuration(System.currentTimeMillis() - start, "dd:HH:mm:ss"); Log.brief("All done\t(" + time + ")"); }
From source file:com.gs.obevo.api.factory.XmlFileConfigReader.java
/** * Backwards-compatible changes to ensure existing XML consumers are not negatively affected. *//*from w ww . java 2s.c o m*/ private void postProcess(XMLConfiguration sysCfg) { ImmutableSet<String> ignorableSysAttributes = Sets.immutable.of("cleanBuildAllowed", "name", "defaultUserId", "defaultPassword", "dbHost", "dbPort", "dbServer", "dbSchemaPrefix", "dbSchemaSuffix", "dbDataSourceName", "jdbcUrl", "driverClass", "defaultTablespace", "persistToFile", "disableAuditTracking", "inMemoryDbType", "includeSchemas", "excludeSchemas"); ImmutableSet<String> ignorableSysNodes = Sets.immutable.of("excludeSchemas", "includeSchemas", "schemaOverrides", "tokens"); final ImmutableSet<String> ignorableEnvNodes = Sets.immutable.of("groups", "users"); final ImmutableSet<String> ignorableEnvAttributes = Sets.immutable.of("sourceDirs", "acceptedExtensions", "dataDelimiter", "nullToken"); for (String ignorableAttribute : ignorableSysAttributes) { if (sysCfg.containsKey(ignorableAttribute)) { sysCfg.clearProperty(ignorableAttribute); } } for (String ignorableSysNode : ignorableSysNodes) { if (!sysCfg.configurationsAt(ignorableSysNode).isEmpty()) { sysCfg.clearTree(ignorableSysNode); } } for (String ignorableAttribute : ignorableEnvAttributes) { sysCfg.clearProperty("environments.environment[@" + ignorableAttribute + "]"); sysCfg.clearProperty("environments.dbEnvironment[@" + ignorableAttribute + "]"); } for (String ignorableSysNode : ignorableEnvNodes) { sysCfg.clearTree("environments.environment." + ignorableSysNode); sysCfg.clearTree("environments.dbEnvironment." + ignorableSysNode); } ImmutableList<HierarchicalConfiguration<ImmutableNode>> envConfigs = ListAdapter .adapt(sysCfg.configurationsAt("environments.dbEnvironment")).toImmutable(); if (envConfigs.isEmpty()) { envConfigs = ListAdapter.adapt(sysCfg.configurationsAt("environments.environment")).toImmutable(); } envConfigs.each(new Procedure<HierarchicalConfiguration<ImmutableNode>>() { @Override public void value(HierarchicalConfiguration<ImmutableNode> envCfg) { for (String ignorableAttribute : ignorableEnvAttributes) { if (envCfg.containsKey(ignorableAttribute)) { envCfg.clearProperty(ignorableAttribute); } } for (String ignorableSysNode : ignorableEnvNodes) { if (!envCfg.configurationsAt(ignorableSysNode).isEmpty()) { envCfg.clearTree(ignorableSysNode); } } } }); }
From source file:nl.minvenj.pef.stream.LiveCapture.java
private static void testPseudonymizationSettings(final XMLConfiguration config) throws ConfigurationException, IllegalArgumentException, ClassNotFoundException { List<HierarchicalConfiguration<ImmutableNode>> fields = config.configurationsAt("fields.field"); for (HierarchicalConfiguration field : fields) { // Test the name of the field. final String constraint = field.getString("constraint"); final String fieldName = field.getString("name"); final String algorithmName = field.getString("algorithm.name"); if ((fieldName == null) || (constraint == null) || (algorithmName == null)) throw new NoSuchElementException( "Name of the field, constraint and algoritm needs to be set for each field."); // Test the constraint. if (!Constraints.CONSTRAINT_MAP.containsKey(field.getString("constraint"))) { throw new ConfigurationException( field.getString("constraint") + "should be defined in constraints list (Constraints.java)"); }//from w w w .j ava2 s.c o m // TODO PEF-78: Test if the fieldName matches with the context. // TODO PEF-79: No expression support. // Test if the algorithm is part of the configured algorithms. List<HierarchicalConfiguration> parameters = field.childConfigurationsAt("algorithm.params"); List<AlgorithmParameter> parameterList = new ArrayList<>(); //TODO PEF-81: Create here a specific parameter type. for (HierarchicalConfiguration parameter : parameters) { parameterList.add(new AlgorithmParameter(parameter.getString("name"), parameter.getString("value"), Class.forName(parameter.getString("type")))); } final StringBuilder buffer = new StringBuilder(); if (!testParseValueTransformerConfiguration(TransformerId.valueOf(algorithmName), parameterList, buffer)) { throw new ConfigurationException( "Error in configuration for algorithm " + algorithmName + " " + buffer.toString()); } } }
From source file:nl.minvenj.pef.stream.LiveCapture.java
private static FramePseudonymizer initMetalPseudonymizerWith(final XMLConfiguration config) throws InvalidKeyException, ClassNotFoundException { Processor processor = new Processor(); List<HierarchicalConfiguration<ImmutableNode>> fields = config.configurationsAt("fields.field"); for (HierarchicalConfiguration field : fields) { List<HierarchicalConfiguration> parameters = field.childConfigurationsAt("algorithm.params"); List<AlgorithmParameter> parameterList = new ArrayList<>(); for (HierarchicalConfiguration parameter : parameters) { parameterList.add(new AlgorithmParameter(parameter.getString("name"), parameter.getString("value"), Class.forName(parameter.getString("type")))); }//from w w w.ja v a2 s . c o m // Add the transformers processor.addTransformer(Constraints.CONSTRAINT_MAP.get(field.getString("constraint")), field.getString("name"), getParseValueTransformer( ParseValueTransformerFactory.TransformerId.valueOf(field.getString("algorithm.name")), parameterList)); logger.info("Packets containing " + field.getString("name") + " will be pseudonymized based on this constraint: " + field.getString("constraint") + ", with this algorithm " + field.getString("algorithm.name")); } // TODO PEF-43: Move and change functionality. if (config.getBoolean("checksum_reset")) { processor.addTransformer(Constraints.IPV4_UDP_DNS, "udpchecksum", new IPv4UDPChecksumCalculator()) .addTransformer(Constraints.IPV6_UDP_DNS, "udpchecksum", new IPv6UDPChecksumCalculator()) .addTransformer(Constraints.IPV4_UDP_DNS, "headerchecksum", new IPv4ChecksumCalculator()) .addTransformer(Constraints.ICMP_DNS, "icmpchecksum", new IPv6UDPChecksumCalculator()); } return new FramePseudonymizer(processor); }