All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.broadinstitute.hellbender.tools.sv.SVFeaturesHeader Maven / Gradle / Ivy

The newest version!
package org.broadinstitute.hellbender.tools.sv;

import htsjdk.samtools.SAMSequenceDictionary;
import org.broadinstitute.hellbender.utils.Utils;

import java.util.*;

public class SVFeaturesHeader {
    private final String className;
    private final String version;
    private final SAMSequenceDictionary dictionary;
    private final List sampleNames;
    private Map sampleNameMap;

    public SVFeaturesHeader( final String className,
                             final String version,
                             final SAMSequenceDictionary dictionary,
                             final List sampleNames ) {
        Utils.nonNull(className);
        Utils.nonNull(version);
        this.className = className;
        this.version = version;
        this.dictionary = dictionary;
        this.sampleNames = new ArrayList<>(sampleNames);
    }

    public String getClassName() {
        return className;
    }

    public String getVersion() {
        return version;
    }

    public SAMSequenceDictionary getDictionary() {
        return dictionary;
    }

    public List getSampleNames() {
        return sampleNames;
    }

    public Integer getSampleIndex( final String sampleName ) {
        if ( sampleNameMap == null ) {
            int nNames = sampleNames.size();
            sampleNameMap = new HashMap<>((nNames * 4 + 2) / 3);
            for ( int idx = 0; idx != nNames; ++idx ) {
                sampleNameMap.put(sampleNames.get(idx), idx);
            }
        }
        return sampleNameMap.get(sampleName);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy