diff --git a/uk/ac/sanger/artemis/components/variant/AbstractVCFReader.java b/uk/ac/sanger/artemis/components/variant/AbstractVCFReader.java index b2888ef466f2e4299665edb0750b3a4c3332dbc5..41402dd80b7bf79db1b15652767152d62bc8bc0e 100644 --- a/uk/ac/sanger/artemis/components/variant/AbstractVCFReader.java +++ b/uk/ac/sanger/artemis/components/variant/AbstractVCFReader.java @@ -94,7 +94,7 @@ public abstract class AbstractVCFReader tabixIterator = null; return null; } - record = VCFRecord.parse(s); + record = VCFRecord.parse(s, getNumberOfSamples()); if(record == null) tabixIterator = null; @@ -173,6 +173,7 @@ public abstract class AbstractVCFReader final TabixReader tr = new TabixReader(vcfFileName); String line; boolean headerEnd = true; + final StringBuffer buffHeader = new StringBuffer(); while ((line = tr.readLine()) != null) { @@ -180,6 +181,7 @@ public abstract class AbstractVCFReader { if(!line.startsWith("##FILTER")) writer.write(line+'\n'); + buffHeader.append(line+'\n'); continue; } else if(headerEnd) @@ -191,10 +193,12 @@ public abstract class AbstractVCFReader if(line.startsWith("#")) { writer.write(line+'\n'); + buffHeader.append(line+'\n'); + tr.setHeader(buffHeader.toString()); continue; } - VCFRecord record = VCFRecord.parse(line); + VCFRecord record = VCFRecord.parse(line, tr.getNumberOfSamples()); int basePosition = record.getPos() + vcfView.getSequenceOffset(record.getChrom()); VCFFilter.setFilterString(record, vcfView, basePosition, features, tr); writer.write(record.toString()+'\n'); diff --git a/uk/ac/sanger/artemis/components/variant/GraphPanel.java b/uk/ac/sanger/artemis/components/variant/GraphPanel.java index 8b40d6a3e8a74032d432401234dd1bf83aa305c9..0b321dd017b747cbfbbd141b613c1ed7a8d5a84e 100644 --- a/uk/ac/sanger/artemis/components/variant/GraphPanel.java +++ b/uk/ac/sanger/artemis/components/variant/GraphPanel.java @@ -213,7 +213,7 @@ public class GraphPanel extends JPanel String s; while ((s = iter.next()) != null) { - VCFRecord record = VCFRecord.parse(s); + VCFRecord record = VCFRecord.parse(s, reader.getNumberOfSamples()); max = calc(record, features, reader, windowSize, nBins, snpCount, max); } }