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

org.broadinstitute.hellbender.tools.walkers.sv.SVSegment Maven / Gradle / Ivy

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

import htsjdk.samtools.util.Locatable;
import org.broadinstitute.hellbender.tools.spark.sv.utils.GATKSVVCFConstants;
import org.broadinstitute.hellbender.utils.SimpleInterval;
import org.broadinstitute.hellbender.utils.Utils;

import java.util.Objects;

// Mini class to package SV type and interval into one object
public class SVSegment implements Locatable {
    protected final GATKSVVCFConstants.StructuralVariantAnnotationType intervalSVType;
    protected final SimpleInterval interval;

    public SVSegment(final GATKSVVCFConstants.StructuralVariantAnnotationType svType, final SimpleInterval interval) {
        Utils.nonNull(interval);
        this.intervalSVType = svType;
        this.interval = interval;
    }

    public GATKSVVCFConstants.StructuralVariantAnnotationType getIntervalSVType() {
        return intervalSVType;
    }

    @Override
    public String getContig() {
        return interval.getContig();
    }

    @Override
    public int getStart() {
        return interval.getStart();
    }

    @Override
    public int getEnd() {
        return interval.getEnd();
    }

    public SimpleInterval getInterval() {
        return interval;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        final SVSegment svSegment = (SVSegment) o;
        return intervalSVType == svSegment.intervalSVType && interval.equals(svSegment.interval);
    }

    @Override
    public int hashCode() {
        return Objects.hash(intervalSVType, interval);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy