Skip to content
Snippets Groups Projects
Commit 2e6dedae authored by tjc's avatar tjc
Browse files

handle export for BCF to VCF

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@15179 ee4ac58c-ac51-4696-9907-e4b3aa274f04
parent 94735c52
No related branches found
No related tags found
No related merge requests found
...@@ -26,11 +26,8 @@ package uk.ac.sanger.artemis.components.variant; ...@@ -26,11 +26,8 @@ package uk.ac.sanger.artemis.components.variant;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.Writer;
import java.util.List; import java.util.List;
import javax.swing.JOptionPane;
import uk.ac.sanger.artemis.EntryGroup; import uk.ac.sanger.artemis.EntryGroup;
import uk.ac.sanger.artemis.Feature; import uk.ac.sanger.artemis.Feature;
import uk.ac.sanger.artemis.FeatureEnumeration; import uk.ac.sanger.artemis.FeatureEnumeration;
...@@ -47,17 +44,22 @@ class IOUtils ...@@ -47,17 +44,22 @@ class IOUtils
* Write filtered uncompressed VCF. Uses the filter in VCFview to * Write filtered uncompressed VCF. Uses the filter in VCFview to
* determine if variants are written. * determine if variants are written.
* @param vcfFileName * @param vcfFileName
* @param writer
* @param vcfView * @param vcfView
* @param features * @param features
*/ */
protected static void writeVCF(final String vcfFileName, protected static void writeVCF(final String vcfFileName,
final Writer writer,
final VCFview vcfView, final VCFview vcfView,
final FeatureVector features) final FeatureVector features)
{ {
try try
{ {
FileWriter writer = new FileWriter(vcfFileName+".filter");
if(IOUtils.isBCF(vcfFileName))
{
BCFReader.writeVCF(writer, vcfFileName);
return;
}
TabixReader tr = new TabixReader(vcfFileName); TabixReader tr = new TabixReader(vcfFileName);
String line; String line;
while ((line = tr.readLine()) != null) while ((line = tr.readLine()) != null)
...@@ -69,8 +71,8 @@ class IOUtils ...@@ -69,8 +71,8 @@ class IOUtils
} }
VCFRecord record = VCFRecord.parse(line); VCFRecord record = VCFRecord.parse(line);
int basePosition = record.pos + vcfView.getSequenceOffset(record.chrom); int basePosition = record.getPos() + vcfView.getSequenceOffset(record.getChrom());
if( !vcfView.showVariant(record.ref, record.alt, features, basePosition, record.quality) ) if( !vcfView.showVariant(record.getRef(), record.getAlt(), features, basePosition, record.getQuality()) )
continue; continue;
writer.write(line+'\n'); writer.write(line+'\n');
} }
...@@ -106,24 +108,14 @@ class IOUtils ...@@ -106,24 +108,14 @@ class IOUtils
features.add (current_feature); features.add (current_feature);
} }
try String filterFiles = "";
for(int i=0; i<vcfFiles.size(); i++)
{ {
String filterFiles = ""; IOUtils.writeVCF(vcfFiles.get(i), vcfView, features);
for(int i=0; i<vcfFiles.size(); i++) filterFiles += vcfFiles.get(i)+".filter\n";
{
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);
} }
new MessageDialog (null, "Saved Files", filterFiles, false);
} }
/** /**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment