Skip to content

Commit 9b62372

Browse files
committed
Allow GenomicsDBWorkspace as input
1 parent a965517 commit 9b62372

File tree

2 files changed

+28
-10
lines changed

2 files changed

+28
-10
lines changed

SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/ProcessVariantsHandler.java

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@
4040
import org.labkey.api.view.ActionURL;
4141
import org.labkey.api.writer.PrintWriters;
4242
import org.labkey.sequenceanalysis.SequenceAnalysisModule;
43+
import org.labkey.sequenceanalysis.run.util.AbstractGenomicsDBImportHandler;
4344
import org.labkey.sequenceanalysis.run.util.CombineVariantsWrapper;
45+
import org.labkey.sequenceanalysis.util.SequenceUtil;
4446

4547
import java.io.File;
4648
import java.io.IOException;
@@ -275,15 +277,7 @@ public static void initVariantProcessing(PipelineJob job, SequenceAnalysisJobSup
275277
for (SequenceOutputFile so : inputFiles)
276278
{
277279
job.getLogger().info("reading file: " + so.getFile().getName());
278-
try (FeatureReader reader = AbstractFeatureReader.getFeatureReader(so.getFile().getPath(), new VCFCodec(), false))
279-
{
280-
VCFHeader header = (VCFHeader)reader.getHeader();
281-
sampleNames.addAll(header.getSampleNamesInOrder());
282-
}
283-
catch (IOException e)
284-
{
285-
throw new PipelineJobException(e);
286-
}
280+
sampleNames.addAll(getSamples(so.getFile()));
287281
}
288282

289283
job.getLogger().info("total samples: " + sampleNames.size());
@@ -850,4 +844,28 @@ public void serializeTest() throws Exception
850844
f.delete();
851845
}
852846
}
847+
848+
private static Collection<String> getSamples(File input) throws PipelineJobException
849+
{
850+
if (SequenceUtil.FILETYPE.vcf.getFileType().isType(input))
851+
{
852+
try (FeatureReader reader = AbstractFeatureReader.getFeatureReader(input.getPath(), new VCFCodec(), false))
853+
{
854+
VCFHeader header = (VCFHeader) reader.getHeader();
855+
return header.getSampleNamesInOrder();
856+
}
857+
catch (IOException e)
858+
{
859+
throw new PipelineJobException(e);
860+
}
861+
}
862+
else if (input.getName().toLowerCase().endsWith(".tdb"))
863+
{
864+
return AbstractGenomicsDBImportHandler.getSamplesForWorkspace(input.getParentFile());
865+
}
866+
else
867+
{
868+
throw new PipelineJobException("Unknown file type: " + input.getPath());
869+
}
870+
}
853871
}

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/util/AbstractGenomicsDBImportHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public SequenceOutputFile createFinalSequenceOutput(PipelineJob job, File merged
8686
return so1;
8787
}
8888

89-
private Collection<String> getSamplesForWorkspace(File workspace) throws PipelineJobException
89+
public static Collection<String> getSamplesForWorkspace(File workspace) throws PipelineJobException
9090
{
9191
//See: https://github.com/GenomicsDB/GenomicsDB/wiki/Importing-VCF-data-into-GenomicsDB
9292
try (BufferedReader reader = IOUtil.openFileForBufferedUtf8Reading(new File(workspace, "callset.json")))

0 commit comments

Comments
 (0)