package org.broad.igv.variant.New; /* * The MIT License (MIT) * * Copyright (c) 2014 Broad Institute * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ import htsjdk.tribble.Feature; import org.broad.igv.Globals; /** * Parser for VCF files. */ public class Variant implements Feature { String chr; int pos; String names; String referenceBases; String alternateBases; int quality; String filter; String info; int start; int end; String[] alleles; @Override public String getChr() { return chr; } @Override public String getContig() { return chr; } @Override public int getStart() { return start; } @Override public int getEnd() { return end; } public String getValueString(int genomicPosition) { StringBuffer buffer = new StringBuffer(); buffer.append("Chr: " + this.chr + "<br>"); buffer.append("Pos: " + (this.pos + 1)); if (this.names != null) { buffer.append("Names: " + this.names + "<br>"); } buffer.append("Ref: " + this.alleles[0] + "<br>"); if (this.alleles.length > 1) { for (int i = 1; i < this.alleles.length; i++) { buffer.append(this.alleles[i]); if (i < this.alleles.length - 1) { buffer.append(", "); } buffer.append("<br>"); } } buffer.append("Quality: " + this.quality + "<br>"); buffer.append("Filter: " + this.filter); if (this.info != null) { buffer.append("<hr>"); String[] infoFields = Globals.semicolonPattern.split(this.info); for (String ifield : infoFields) { buffer.append(ifield + "<br>"); } } return buffer.toString(); } }