diff --git a/uk/ac/sanger/artemis/components/variant/IOUtils.java b/uk/ac/sanger/artemis/components/variant/IOUtils.java index 2ebc0617c6a312d3b34e9593a1294e7061220ae2..db0b214373fd6401dfb35d487e651fdda2fafe78 100644 --- a/uk/ac/sanger/artemis/components/variant/IOUtils.java +++ b/uk/ac/sanger/artemis/components/variant/IOUtils.java @@ -26,11 +26,8 @@ package uk.ac.sanger.artemis.components.variant; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; -import java.io.Writer; import java.util.List; -import javax.swing.JOptionPane; - import uk.ac.sanger.artemis.EntryGroup; import uk.ac.sanger.artemis.Feature; import uk.ac.sanger.artemis.FeatureEnumeration; @@ -47,17 +44,22 @@ class IOUtils * Write filtered uncompressed VCF. Uses the filter in VCFview to * determine if variants are written. * @param vcfFileName - * @param writer * @param vcfView * @param features */ protected static void writeVCF(final String vcfFileName, - final Writer writer, final VCFview vcfView, final FeatureVector features) { try { + FileWriter writer = new FileWriter(vcfFileName+".filter"); + if(IOUtils.isBCF(vcfFileName)) + { + BCFReader.writeVCF(writer, vcfFileName); + return; + } + TabixReader tr = new TabixReader(vcfFileName); String line; while ((line = tr.readLine()) != null) @@ -69,8 +71,8 @@ class IOUtils } VCFRecord record = VCFRecord.parse(line); - int basePosition = record.pos + vcfView.getSequenceOffset(record.chrom); - if( !vcfView.showVariant(record.ref, record.alt, features, basePosition, record.quality) ) + int basePosition = record.getPos() + vcfView.getSequenceOffset(record.getChrom()); + if( !vcfView.showVariant(record.getRef(), record.getAlt(), features, basePosition, record.getQuality()) ) continue; writer.write(line+'\n'); } @@ -106,24 +108,14 @@ class IOUtils features.add (current_feature); } - try + String filterFiles = ""; + for(int i=0; i<vcfFiles.size(); i++) { - String filterFiles = ""; - for(int i=0; i<vcfFiles.size(); i++) - { - - FileWriter writer = new FileWriter(vcfFiles.get(i)+".filter"); - IOUtils.writeVCF(vcfFiles.get(i), writer, vcfView, features); - filterFiles += vcfFiles.get(i)+".filter\n"; - } - - new MessageDialog (null, "Saved Files", filterFiles, false); - } - catch (IOException e1) - { - JOptionPane.showMessageDialog(vcfView, e1.getMessage(), - "Error", JOptionPane.ERROR_MESSAGE); + IOUtils.writeVCF(vcfFiles.get(i), vcfView, features); + filterFiles += vcfFiles.get(i)+".filter\n"; } + + new MessageDialog (null, "Saved Files", filterFiles, false); } /**