public VariantFileMetadata setSampleIds(List<String> sampleIds) { impl.setSampleIds(sampleIds); samplesPosition = null; return this; }
@Override public boolean pre() { try { processHeader(); // Copy all the read metadata to the VariantSource object // TODO May it be that Vcf4 wasn't necessary anymore? // This Vcf4 object is not necessary anymore. Do not include it's information. // The header parser contains bugs and misses information. // Use htsjdk parser instead // source.addMetadata("fileformat", vcf4.getFileFormat()); // source.addMetadata("INFO", vcf4.getInfo().values()); // source.addMetadata("FILTER", vcf4.getFilter().values()); // source.addMetadata("FORMAT", vcf4.getFormat().values()); // for (Map.Entry<String, String> otherMeta : vcf4.getMetaInformation().entrySet()) { // source.addMetadata(otherMeta.getKey(), otherMeta.getValue()); // } metadata.getFiles().get(0).setSampleIds(vcf4.getSampleNames()); } catch (IOException | FileFormatException ex) { Logger.getLogger(VariantVcfReader.class.getName()).log(Level.SEVERE, null, ex); return false; } return true; }
/** * Add a variant file metadata (from VCF file and header) to a given variant study metadata (from study ID). * * @param filename VCF filename (as an ID) * @param vcfHeader VCF header * @param studyId Study ID */ public void addFile(String filename, VCFHeader vcfHeader, String studyId) { // sanity check if (StringUtils.isEmpty(filename)) { logger.error("VCF filename is empty or null: '{}'", filename); return; } if (vcfHeader == null) { logger.error("VCF header is missingDataset not found. Check your study ID: '{}'", studyId); return; } VCFHeaderToVariantFileHeaderConverter headerConverter = new VCFHeaderToVariantFileHeaderConverter(); VariantFileMetadata variantFileMetadata = new VariantFileMetadata(); variantFileMetadata.setId(filename); variantFileMetadata.setSampleIds(vcfHeader.getSampleNamesInOrder()); variantFileMetadata.setHeader(headerConverter.convert(vcfHeader)); addFile(variantFileMetadata, studyId); }