separate interface for genotypes as opposed to (population) allelic variants

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@443 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
asivache 2009-04-16 03:55:16 +00:00
parent 7e05b43f40
commit 0d324354ae
1 changed files with 140 additions and 0 deletions

View File

@ -0,0 +1,140 @@
package org.broadinstitute.sting.gatk.refdata;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.utils.GenomeLoc;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: asivache
* Date: Apr 1, 2009
* Time: 11:02:03 AM
* To change this template use File | Settings | File Templates.
*/
public interface Genotype extends Comparable<ReferenceOrderedDatum> {
// ----------------------------------------------------------------------
//
// manipulating the SNP information
//
// ----------------------------------------------------------------------
/** Location of this genotype on the reference (on the forward strand). If the allele is insertion/deletion, the first inserted/deleted base
* is located right <i>after</i> the specified location
*
* @return position on the genome wrapped in GenomeLoc object
*/
GenomeLoc getLocation();
/** Returns actual observed alleles on the fwd strand. Allowed to return more than two alleles (@see #getPloidy()).
* @return list of alleles
*/
List<String> getFWDAlleles() ;
/** Returns bases on the fwd strand in the true reference allele (regardless of whether the reference allele
* was observed at this site in this particular genotype!)
* as a String. String can be empty (if alt allele is insertion into
* the reference), can contain a single character (as in SNP or one-base deletion), or multiple characters
* (if alt is a longer deletion). For the actually observed alleles, see #getFWDAlleles()
*
* @return reference allele, forward strand
*/
String getFWDRefBases();
/** Returns reference base (regardless of whether the reference allele was actually observed. This method
* is similar to getFWDRefBases() except it returns a single char. For non-single letter (non-SNP) variants, behavior
* of this method is not specified and can be defined by implementing classes.
* @return
*/
char getRef() ;
/** Is this variant a SNP?
*
* @return true or false
*/
boolean isSNP();
/** Returns true if all observed alleles are reference ones. All is<Variant> methods (where Variant=SNP,Insertion, etc) should
* return false at a site where isReference() is true to ensure consistency.
* @return
*/
boolean isReference();
/** Is this variant an insertion? The contract requires isIndel() to return true
* if this method returns true.
*
* @return true or false
*/
boolean isInsertion();
/** Is this variant a deletion? The contract requires isIndel() to return true
* if isDeletion() returns true.
*
* @return true or false
*/
boolean isDeletion();
/** Is this variant an insertion or a deletion? The contract requires
* this to be true if either isInsertion() or isDeletion() returns true. However,
* this method is currently allowed to return true even if neither of isInsertion()
* and isDeletion() does.
* @return
*/
boolean isIndel();
/** Returns phred-scaled confidence for the variation event (e.g. MAQ's SNP confidence, or AlleleCaller's best vs. ref).
*
* @return
*/
double getVariantConfidence();
/** Returns phred-scaled confidence in called genotype (e.g. MAQ's consensus confidence, or AlleleCaller's
* best vs next-best.
* @return
*/
double getConsensusConfidence();
/** Returns true if the site has at most two known or observed alleles (ref and non-ref), or false if there are > 2 allelic variants known or observed. When
* the implementing class is a genotype, alleles should be always counted including the reference allele whether it was observed in the particular
* individual or not: i.e. if the reference is 'C', then both 'CA' and 'AA' genotypes must be reported as bi-allelic, while 'AT' is <i>not</i> bi-allelic (since there are
* two allelic variants, 'A' and 'T' <i>in addition</i> to the (known) reference variant 'C').
* @return
*/
boolean isBiallelic() ;
/** Returns reference (major) allele base for a SNP variant as a character; should throw IllegalStateException
* if variant is not a SNP.
*
* @return reference base on the forward strand
*/
//char getRefSnpFWD() throws IllegalStateException;
/** Returns bases in the alternative allele as a String. String can be empty (as in deletion from
* the reference), can contain a single character (as in SNP or one-base insertion), or multiple characters
* (for longer indels).
*
* @return alternative allele, forward strand
*/
//String getAltBasesFWD();
/** Returns alternative (minor) allele base for a SNP variant as a character; should throw IllegalStateException
* if variant is not a SNP.
*
* @return alternative allele base on the forward starnd
*/
// char getAltSnpFWD() throws IllegalStateException;
/** Return actual number of observed alleles (chromosomes) in the genotype.
* @return
*/
// int getPloidy() throws IllegalStateException;
}