package org.molgenis.gavin.job.input.model; import com.google.auto.value.AutoValue; import com.google.common.base.Joiner; import static org.molgenis.gavin.job.input.model.LineType.INDEL_NOCADD; import static org.molgenis.gavin.job.input.model.LineType.VCF; @AutoValue public abstract class VcfVariant implements Variant { public abstract String getChrom(); public abstract long getPos(); public abstract String getId(); public abstract String getRef(); public abstract String getAlt(); @Override public LineType getLineType() { return isIndelWithoutCadd() ? INDEL_NOCADD : VCF; } @Override public String toString() { return Joiner.on('\t').join(getChrom(), getPos(), getId(), getRef(), getAlt(), '.', '.', '.'); } private boolean isIndelWithoutCadd() { return getRef().length() > 1 || getAlt().length() > 1; } public static VcfVariant create(String chrom, long pos, String id, String ref, String alt) { return new AutoValue_VcfVariant(chrom, pos, id, ref, alt); } }