protected static VariantJsonReader getVariantJsonReader(Path input, VariantStudyMetadata metadata) throws StorageEngineException { VariantJsonReader variantJsonReader; if (isJson(input.toString())) { Path sourceFile = getMetaFromTransformedFile(input.toAbsolutePath()); variantJsonReader = new VariantJsonReader(metadata, input.toAbsolutePath().toString(), sourceFile.toAbsolutePath().toString()); } else { throw variantInputNotSupported(input); } return variantJsonReader; }
protected static VariantAvroReader getVariantAvroReader(Path input, VariantStudyMetadata metadata, boolean stdin) throws StorageEngineException { VariantAvroReader variantAvroReader; if (isAvro(input.toString())) { String sourceFile = getMetaFromTransformedFile(input.toAbsolutePath().toString()); if (stdin) { variantAvroReader = new VariantAvroReader(System.in, new File(sourceFile), metadata); } else { variantAvroReader = new VariantAvroReader(input.toAbsolutePath().toFile(), new File(sourceFile), metadata); } } else { throw variantInputNotSupported(input); } return variantAvroReader; }
/** * Get a variant data reader depending on the type of the input file. * * @param input Stream Input variant file (avro, json, vcf) * @param metadata Optional VariantSource * @param stdin Indicate if the file should be read from the Standard Input * @return VariantReader * @throws StorageEngineException if the format is not valid or there is an error reading */ public static VariantReader getVariantReader(Path input, VariantStudyMetadata metadata, boolean stdin) throws StorageEngineException { String fileName = input.getFileName().toString(); if (metadata == null) { VariantFileMetadata variantFileMetadata = createEmptyVariantFileMetadata(input); metadata = variantFileMetadata.toVariantStudyMetadata(""); } if (isJson(fileName)) { return getVariantJsonReader(input, metadata); } else if (isAvro(fileName)) { return getVariantAvroReader(input, metadata, stdin); } else if (isVcf(fileName)) { return getVariantVcfReader(input, metadata, stdin); } else { throw variantInputNotSupported(input); } }