# Class HaplotypeMap

java.lang.Object
picard.fingerprint.HaplotypeMap

public class HaplotypeMap extends Object
A collection of metadata about Haplotype Blocks including multiple in memory "indices" of the data to make it easy to query the correct HaplotypeBlock or Snp by snp names, positions etc. Also has the ability to read and write itself to and from files.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`HET_GENOTYPE_FOR_PHASING`
`static final String`
`PHASESET_PREFIX`
`static final String`
`SYNTHETIC_PHASESET_PREFIX`

## Constructor Summary

Constructors
Constructor
Description
`HaplotypeMap(htsjdk.samtools.SAMFileHeader header)`
Constructs an empty HaplotypeMap using the provided SAMFileHeader's sequence dictionary.
`HaplotypeMap(File file)`
`HaplotypeMap(Collection<HaplotypeBlock> haplotypeBlocks)`
since this constructor doesn't initialize the HaplotypeMap "properly", it should be used carefully!

## Method Summary

Modifier and Type
Method
Description
`void`
`addHaplotype(HaplotypeBlock haplotypeBlock)`
Adds a HaplotypeBlock to the map and updates all the relevant caches/indices.
`Collection<htsjdk.variant.variantcontext.VariantContext>`
`asVcf(htsjdk.samtools.reference.ReferenceSequenceFile ref)`
`Set<Snp>`
`getAllSnps()`
Returns an unmodifiable collection of all SNPs in all Haplotype blocks.
`HaplotypeBlock`
`getHaplotype(String snpName)`
Queries a HaplotypeBlock by Snp name.
`HaplotypeBlock`
`getHaplotype(String chrom, int pos)`
Queries a HaplotypeBlock by Snp chromosome and position.
`HaplotypeBlock`
`getHaplotype(Snp snp)`
Queries a HaplotypeBlock by Snp object.
`List<HaplotypeBlock>`
`getHaplotypes()`
Returns an unmodifiable collection of all the haplotype blocks in the map.
`htsjdk.samtools.SAMFileHeader`
`getHeader()`
`htsjdk.samtools.util.IntervalList`
`getIntervalList()`
Returns an IntervalList with an entry for every SNP in every Haplotype in the map.
`Snp`
`getSnp(String chrom, int pos)`
Queries a Snp by chromosome and position.
`HaplotypeMap`
`withoutChromosomes(Set<String> chroms)`
Returns a copy of this haplotype map that excludes haplotypes on the chromosomes provided.
`void`
`writeAsVcf(File output, File refFile)`
`void`
`writeToFile(File file)`
Writes out a HaplotypeMap file with the contents of this map.

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### HET_GENOTYPE_FOR_PHASING

public static final String HET_GENOTYPE_FOR_PHASING

See Also:
  - Constant Field Values

### SYNTHETIC_PHASESET_PREFIX

public static final String SYNTHETIC_PHASESET_PREFIX

See Also:
  - Constant Field Values

### PHASESET_PREFIX

public static final String PHASESET_PREFIX

See Also:
  - Constant Field Values

## Constructor Details

### HaplotypeMap

public HaplotypeMap(htsjdk.samtools.SAMFileHeader header)
Constructs an empty HaplotypeMap using the provided SAMFileHeader's sequence dictionary.

### HaplotypeMap

public HaplotypeMap(File file)

### HaplotypeMap

public HaplotypeMap(Collection<HaplotypeBlock> haplotypeBlocks)
since this constructor doesn't initialize the HaplotypeMap "properly", it should be used carefully!

## Method Details

### addHaplotype

public void addHaplotype(HaplotypeBlock haplotypeBlock)
Adds a HaplotypeBlock to the map and updates all the relevant caches/indices.

### getHaplotype

public HaplotypeBlock getHaplotype(Snp snp)
Queries a HaplotypeBlock by Snp object. Returns NULL if none found.

### getHaplotype

public HaplotypeBlock getHaplotype(String snpName)
Queries a HaplotypeBlock by Snp name. Returns NULL if none found.

### getHaplotype

public HaplotypeBlock getHaplotype(String chrom, int pos)
Queries a HaplotypeBlock by Snp chromosome and position. Returns NULL if none found.

### getHaplotypes

public List<HaplotypeBlock> getHaplotypes()
Returns an unmodifiable collection of all the haplotype blocks in the map.

### getSnp

public Snp getSnp(String chrom, int pos)
Queries a Snp by chromosome and position. Returns NULL if none found.

### getAllSnps

public Set<Snp> getAllSnps()
Returns an unmodifiable collection of all SNPs in all Haplotype blocks.

### getIntervalList

public htsjdk.samtools.util.IntervalList getIntervalList()
Returns an IntervalList with an entry for every SNP in every Haplotype in the map.

### withoutChromosomes

public HaplotypeMap withoutChromosomes(Set<String> chroms)
Returns a copy of this haplotype map that excludes haplotypes on the chromosomes provided.

Parameters:
  `chroms` - a set of zero or more chromosome names

### writeAsVcf

public void writeAsVcf(File output, File refFile) throws FileNotFoundException

Throws:
  `FileNotFoundException`

### asVcf

public Collection<htsjdk.variant.variantcontext.VariantContext> asVcf(htsjdk.samtools.reference.ReferenceSequenceFile ref)

### writeToFile

public void writeToFile(File file)
Writes out a HaplotypeMap file with the contents of this map.

### getHeader

public htsjdk.samtools.SAMFileHeader getHeader()