Example usage for org.apache.commons.configuration2 XMLConfiguration configurationsAt

List of usage examples for org.apache.commons.configuration2 XMLConfiguration configurationsAt

Introduction

In this page you can find the example usage for org.apache.commons.configuration2 XMLConfiguration configurationsAt.

Prototype

@Override
public List<HierarchicalConfiguration<ImmutableNode>> configurationsAt(final String key) 

Source Link

Document

This implementation creates sub configurations in the same way as described for #configurationAt(String) .

Usage

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);
}