|
40 | 40 | import org.labkey.api.view.ActionURL; |
41 | 41 | import org.labkey.api.writer.PrintWriters; |
42 | 42 | import org.labkey.sequenceanalysis.SequenceAnalysisModule; |
| 43 | +import org.labkey.sequenceanalysis.run.util.AbstractGenomicsDBImportHandler; |
43 | 44 | import org.labkey.sequenceanalysis.run.util.CombineVariantsWrapper; |
| 45 | +import org.labkey.sequenceanalysis.util.SequenceUtil; |
44 | 46 |
|
45 | 47 | import java.io.File; |
46 | 48 | import java.io.IOException; |
@@ -275,15 +277,7 @@ public static void initVariantProcessing(PipelineJob job, SequenceAnalysisJobSup |
275 | 277 | for (SequenceOutputFile so : inputFiles) |
276 | 278 | { |
277 | 279 | 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())); |
287 | 281 | } |
288 | 282 |
|
289 | 283 | job.getLogger().info("total samples: " + sampleNames.size()); |
@@ -850,4 +844,28 @@ public void serializeTest() throws Exception |
850 | 844 | f.delete(); |
851 | 845 | } |
852 | 846 | } |
| 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 | + } |
853 | 871 | } |
0 commit comments