本文整理汇总了Java中htsjdk.tribble.FeatureReader.getHeader方法的典型用法代码示例。如果您正苦于以下问题:Java FeatureReader.getHeader方法的具体用法?Java FeatureReader.getHeader怎么用?Java FeatureReader.getHeader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类htsjdk.tribble.FeatureReader
的用法示例。
在下文中一共展示了FeatureReader.getHeader方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getFiltersInfo
import htsjdk.tribble.FeatureReader; //导入方法依赖的package包/类
private VcfFilterInfo getFiltersInfo(FeatureReader<VariantContext> reader) throws IOException {
VcfFilterInfo filterInfo = new VcfFilterInfo();
VCFHeader header = (VCFHeader) reader.getHeader();
Collection<VCFInfoHeaderLine> headerLines = header.getInfoHeaderLines();
Map<String, InfoItem> infoItems = headerLines.stream()
.filter(l -> !isExtendedInfoLine(l.getDescription())) // Exclude ANN from fields,
.map(InfoItem::new) // we don't need it in the index
.collect(Collectors.toMap(InfoItem::getName, i -> i));
filterInfo.setAvailableFilters(header.getFilterLines().stream().map(VCFSimpleHeaderLine::getID)
.collect(Collectors.toSet()));
List<String> filtersWhiteList = getFilterWhiteList();
if (!filtersWhiteList.isEmpty()) {
infoItems = scourFilterList(infoItems, filtersWhiteList);
}
filterInfo.setInfoItemMap(infoItems);
return filterInfo;
}
示例2: readNextOrPreviousVariation
import htsjdk.tribble.FeatureReader; //导入方法依赖的package包/类
private Variation readNextOrPreviousVariation(int fromPosition, VcfFile vcfFile,
Integer sampleIndex, Chromosome chromosome, boolean forward, int end,
FeatureReader<VariantContext> reader) throws IOException {
int bound = end;
if (vcfFile.getCompressed()) {
bound = getEndWithBounds(vcfFile, chromosome, forward);
}
VCFHeader vcfHeader = (VCFHeader) reader.getHeader();
return forward ? getNextVariation(fromPosition, sampleIndex, chromosome, bound,
reader, vcfHeader) : getPreviousVariation(fromPosition, sampleIndex, chromosome, bound,
reader, vcfHeader);
}
示例3: readMetaMap
import htsjdk.tribble.FeatureReader; //导入方法依赖的package包/类
@NotNull
private Map<String, Pair<Integer, Integer>> readMetaMap(Map<String, Chromosome> chromosomeMap,
VcfFile vcfFile, FeatureReader<VariantContext> reader, Reference reference, boolean doIndex)
throws IOException, GeneReadingException {
Map<String, Pair<Integer, Integer>> metaMap = new HashMap<>();
CloseableIterator<VariantContext> iterator = reader.iterator();
int startPosition = 1;
int endPosition = 1;
String currentKey = null;
VariantContext variantContext = null;
VariantContext lastFeature = null;
VcfFilterInfo info = getFiltersInfo(reader);
VcfFileReader vcfFileReader = new VcfFileReader(fileManager, referenceGenomeManager);
VCFHeader vcfHeader = (VCFHeader) reader.getHeader();
List<VcfIndexEntry> allEntries = new ArrayList<>();
List<GeneFile> geneFiles = reference.getGeneFile() != null ?
Collections.singletonList(reference.getGeneFile()) : Collections.emptyList();
while (iterator.hasNext()) {
variantContext = iterator.next();
if (!variantContext.getContig().equals(currentKey)) {
if (checkMetaMapKey(chromosomeMap, currentKey)) {
metaMap.put(currentKey, new ImmutablePair<>(startPosition, endPosition));
writeEntriesForChromosome(allEntries, geneFiles,
Utils.getFromChromosomeMap(chromosomeMap, currentKey), vcfFile, vcfHeader,
vcfFileReader, doIndex);
}
startPosition = variantContext.getStart();
currentKey = variantContext.getContig();
}
checkSorted(vcfFile, variantContext, lastFeature);
indexVariation(allEntries, variantContext, chromosomeMap, info, vcfHeader, vcfFileReader, doIndex);
lastFeature = variantContext;
// Put the last one in metaMap
endPosition = variantContext.getStart();
if (checkMetaMapKey(chromosomeMap, currentKey)) {
metaMap.put(currentKey, new ImmutablePair<>(startPosition, endPosition));
}
}
// Put the last one
if (variantContext != null && checkMetaMapKey(chromosomeMap, currentKey)) {
writeEntriesForChromosome(allEntries, geneFiles, Utils.getFromChromosomeMap(chromosomeMap, currentKey),
vcfFile, vcfHeader, vcfFileReader, doIndex);
}
return metaMap;
}
示例4: createVcfFile
import htsjdk.tribble.FeatureReader; //导入方法依赖的package包/类
private VcfFile createVcfFile(final IndexedFileRegistrationRequest request,
final FeatureReader<VariantContext> reader) {
VcfFile vcfFile;
vcfFile = new VcfFile();
VCFHeader header = (VCFHeader) reader.getHeader();
Map<String, Integer> sampleMap = header.getSampleNameToOffset();
if (sampleMap != null && !sampleMap.isEmpty()) {
List<VcfSample> samples = sampleMap.entrySet().stream().map(e -> new VcfSample(e.getKey(), e.getValue()))
.collect(Collectors.toList());
vcfFile.setSamples(samples);
}
BiologicalDataItemResourceType resourceType = BiologicalDataItemResourceType.translateRequestType(
request.getType());
String fileName = FilenameUtils.getName(request.getPath());
vcfFile.setCompressed(resourceType == BiologicalDataItemResourceType.FILE && IOHelper.isGZIPFile(fileName));
vcfFile.setName(request.getName() != null ? request.getName() : fileName);
vcfFile.setId(vcfFileManager.createVcfFileId());
vcfFile.setPath(request.getPath());
vcfFile.setType(resourceType);
vcfFile.setCreatedDate(new Date());
vcfFile.setCreatedBy(AuthUtils.getCurrentUserId());
vcfFile.setReferenceId(request.getReferenceId());
if (StringUtils.isNotBlank(request.getIndexPath())) {
BiologicalDataItem indexItem = new BiologicalDataItem();
indexItem.setCreatedDate(new Date());
indexItem.setPath(request.getIndexPath());
indexItem.setFormat(BiologicalDataItemFormat.VCF_INDEX);
indexItem.setType(BiologicalDataItemResourceType.translateRequestType(request.getIndexType()));
indexItem.setName(vcfFile.getName() + "_index");
indexItem.setCreatedBy(AuthUtils.getCurrentUserId());
vcfFile.setIndex(indexItem);
}
long vcfId = vcfFile.getId();
biologicalDataItemManager.createBiologicalDataItem(vcfFile);
vcfFile.setBioDataItemId(vcfFile.getId());
vcfFile.setId(vcfId);
LOGGER.info(getMessage(MessagesConstants.INFO_GENE_REGISTER, vcfFile.getId(), vcfFile.getPath()));
return vcfFile;
}
示例5: makeIndexForVcfReader
import htsjdk.tribble.FeatureReader; //导入方法依赖的package包/类
/**
* Creates a VCF file feature index
* @param vcfFile a VCF file to create index
* @param reader a reader to file
* @param geneFiles a {@code List} of {@code GeneFile} to look for genes
* @param chromosomeMap a Map of {@link Chromosome}s to chromosome names
* @param info VCF file's info data
* @throws FeatureIndexException if an error occured while building an index
*/
public void makeIndexForVcfReader(VcfFile vcfFile, FeatureReader<VariantContext> reader, List<GeneFile> geneFiles,
Map<String, Chromosome> chromosomeMap, VcfFilterInfo info)
throws FeatureIndexException {
VCFHeader vcfHeader = (VCFHeader) reader.getHeader();
try {
CloseableIterator<VariantContext> iterator = reader.iterator();
String currentKey = null;
VariantContext variantContext = null;
VcfFileReader vcfFileReader = new VcfFileReader(fileManager, referenceGenomeManager);
List<VcfIndexEntry> allEntries = new ArrayList<>();
while (iterator.hasNext()) {
variantContext = iterator.next();
if (!variantContext.getContig().equals(currentKey)) {
putVariationsInIndex(allEntries, currentKey, vcfFile, geneFiles, chromosomeMap, vcfFileReader,
vcfHeader);
currentKey = variantContext.getContig();
}
addVariationToIndex(allEntries, variantContext, chromosomeMap, info, vcfHeader, vcfFileReader);
}
// Put the last one
if (variantContext != null && currentKey != null &&
Utils.chromosomeMapContains(chromosomeMap, currentKey)) {
List<VcfIndexEntry> processedEntries = postProcessIndexEntries(allEntries, geneFiles,
Utils.getFromChromosomeMap(chromosomeMap, currentKey), vcfHeader, vcfFileReader);
featureIndexDao.writeLuceneIndexForFile(vcfFile, processedEntries);
LOGGER.info(MessageHelper.getMessage(MessagesConstants.INFO_FEATURE_INDEX_CHROMOSOME_WROTE,
currentKey));
allEntries.clear();
}
} catch (IOException | GeneReadingException e) {
throw new FeatureIndexException(vcfFile, e);
}
}
示例6: readMetaMap
import htsjdk.tribble.FeatureReader; //导入方法依赖的package包/类
@NotNull
private Map<String, Pair<Integer, Integer>> readMetaMap(Map<String, Chromosome> chromosomeMap,
VcfFile vcfFile, FeatureReader<VariantContext> reader, Reference reference, boolean doIndex)
throws IOException, GeneReadingException {
Map<String, Pair<Integer, Integer>> metaMap = new HashMap<>();
CloseableIterator<VariantContext> iterator = reader.iterator();
int startPosition = 1;
int endPosition = 1;
String currentKey = null;
VariantContext variantContext = null;
VariantContext lastFeature = null;
VcfFilterInfo info = getFiltersInfo(reader);
VcfFileReader vcfFileReader = new VcfFileReader(fileManager, referenceGenomeManager);
VCFHeader vcfHeader = (VCFHeader) reader.getHeader();
List<VcfIndexEntry> allEntries = new DiskBasedList<VcfIndexEntry>(maxVcfIndexEntriesInMemory / 2).adaptToList();
List<GeneFile> geneFiles = reference.getGeneFile() != null ?
Collections.singletonList(reference.getGeneFile()) : Collections.emptyList();
while (iterator.hasNext()) {
variantContext = iterator.next();
if (!variantContext.getContig().equals(currentKey)) {
if (checkMetaMapKey(chromosomeMap, currentKey)) {
metaMap.put(currentKey, new ImmutablePair<>(startPosition, endPosition));
writeEntriesForChromosome(allEntries, geneFiles,
Utils.getFromChromosomeMap(chromosomeMap, currentKey), vcfFile, vcfHeader,
vcfFileReader, doIndex);
}
startPosition = variantContext.getStart();
currentKey = variantContext.getContig();
}
checkSorted(vcfFile, variantContext, lastFeature);
indexVariation(allEntries, variantContext, chromosomeMap, info, vcfHeader, vcfFileReader, doIndex);
lastFeature = variantContext;
// Put the last one in metaMap
endPosition = variantContext.getStart();
if (checkMetaMapKey(chromosomeMap, currentKey)) {
metaMap.put(currentKey, new ImmutablePair<>(startPosition, endPosition));
}
}
// Put the last one
if (variantContext != null && checkMetaMapKey(chromosomeMap, currentKey)) {
writeEntriesForChromosome(allEntries, geneFiles, Utils.getFromChromosomeMap(chromosomeMap, currentKey),
vcfFile, vcfHeader, vcfFileReader, doIndex);
}
return metaMap;
}
示例7: createVcfFile
import htsjdk.tribble.FeatureReader; //导入方法依赖的package包/类
private VcfFile createVcfFile(final IndexedFileRegistrationRequest request,
final FeatureReader<VariantContext> reader) {
VcfFile vcfFile;
vcfFile = new VcfFile();
VCFHeader header = (VCFHeader) reader.getHeader();
Map<String, Integer> sampleMap = header.getSampleNameToOffset();
if (sampleMap != null && !sampleMap.isEmpty()) {
List<VcfSample> samples = sampleMap.entrySet().stream().map(e -> new VcfSample(e.getKey(), e.getValue()))
.collect(Collectors.toList());
vcfFile.setSamples(samples);
}
BiologicalDataItemResourceType resourceType = BiologicalDataItemResourceType.translateRequestType(
request.getType());
String fileName = FilenameUtils.getName(request.getPath());
vcfFile.setCompressed(resourceType == BiologicalDataItemResourceType.FILE && IOHelper.isGZIPFile(fileName));
vcfFile.setName(request.getName() != null ? request.getName() : fileName);
vcfFile.setPrettyName(request.getPrettyName());
vcfFile.setId(vcfFileManager.createVcfFileId());
vcfFile.setPath(request.getPath());
vcfFile.setType(resourceType);
vcfFile.setCreatedDate(new Date());
vcfFile.setCreatedBy(AuthUtils.getCurrentUserId());
vcfFile.setReferenceId(request.getReferenceId());
if (StringUtils.isNotBlank(request.getIndexPath())) {
BiologicalDataItem indexItem = new BiologicalDataItem();
indexItem.setCreatedDate(new Date());
indexItem.setPath(request.getIndexPath());
indexItem.setFormat(BiologicalDataItemFormat.VCF_INDEX);
indexItem.setType(BiologicalDataItemResourceType.translateRequestType(request.getIndexType()));
indexItem.setName(vcfFile.getName() + "_index");
indexItem.setCreatedBy(AuthUtils.getCurrentUserId());
vcfFile.setIndex(indexItem);
}
long vcfId = vcfFile.getId();
biologicalDataItemManager.createBiologicalDataItem(vcfFile);
vcfFile.setBioDataItemId(vcfFile.getId());
vcfFile.setId(vcfId);
LOGGER.info(getMessage(MessagesConstants.INFO_GENE_REGISTER, vcfFile.getId(), vcfFile.getPath()));
return vcfFile;
}
示例8: makeIndexForVcfReader
import htsjdk.tribble.FeatureReader; //导入方法依赖的package包/类
/**
* Creates a VCF file feature index
* @param vcfFile a VCF file to create index
* @param reader a reader to file
* @param geneFiles a {@code List} of {@code GeneFile} to look for genes
* @param chromosomeMap a Map of {@link Chromosome}s to chromosome names
* @param info VCF file's info data
* @throws FeatureIndexException if an error occured while building an index
*/
public void makeIndexForVcfReader(VcfFile vcfFile, FeatureReader<VariantContext> reader, List<GeneFile> geneFiles,
Map<String, Chromosome> chromosomeMap, VcfFilterInfo info)
throws FeatureIndexException {
VCFHeader vcfHeader = (VCFHeader) reader.getHeader();
try {
CloseableIterator<VariantContext> iterator = reader.iterator();
String currentKey = null;
VariantContext variantContext = null;
VcfFileReader vcfFileReader = new VcfFileReader(fileManager, referenceGenomeManager);
List<VcfIndexEntry> allEntries = new ArrayList<>();
while (iterator.hasNext()) {
variantContext = iterator.next();
if (!variantContext.getContig().equals(currentKey)) {
putVariationsInIndex(allEntries, currentKey, vcfFile, geneFiles, chromosomeMap, vcfFileReader,
vcfHeader);
currentKey = variantContext.getContig();
}
addVariationToIndex(allEntries, variantContext, chromosomeMap, info, vcfHeader, vcfFileReader);
}
// Put the last one
if (variantContext != null && currentKey != null &&
Utils.chromosomeMapContains(chromosomeMap, currentKey)) {
List<VcfIndexEntry> processedEntries = postProcessIndexEntries(allEntries, geneFiles,
Utils.getFromChromosomeMap(chromosomeMap, currentKey), vcfHeader, vcfFileReader);
featureIndexDao.writeLuceneIndexForFile(vcfFile, processedEntries);
processedEntries.clear();
LOGGER.info(MessageHelper.getMessage(MessagesConstants.INFO_FEATURE_INDEX_CHROMOSOME_WROTE,
currentKey));
allEntries.clear();
}
} catch (IOException | GeneReadingException e) {
throw new FeatureIndexException(vcfFile, e);
}
}
示例9: assertSameSamplesAndValidOrdering
import htsjdk.tribble.FeatureReader; //导入方法依赖的package包/类
/** Validates that all headers contain the same set of genotyped samples and that files are in order by position of first record. */
private static void assertSameSamplesAndValidOrdering(final List<Path> inputFiles, final boolean disableContigOrderingCheck) {
final VCFHeader firstHeader = getHeader(inputFiles.get(0));
final SAMSequenceDictionary dict = firstHeader.getSequenceDictionary();
if ( dict == null) {
throw new UserException.BadInput("The first VCF specified is missing the required sequence dictionary. " +
"This is required to perform validation. You can skip this validation " +
"using --"+IGNORE_SAFETY_CHECKS_LONG_NAME +" but ignoring safety checks " +
"can result in invalid output.");
}
final VariantContextComparator comparator = new VariantContextComparator(dict);
final List<String> samples = firstHeader.getGenotypeSamples();
Path lastFile = null;
VariantContext lastContext = null;
for (final Path f : inputFiles) {
final FeatureReader<VariantContext> in = getReaderFromVCFUri(f, 0);
final VCFHeader header = (VCFHeader)in.getHeader();
dict.assertSameDictionary(header.getSequenceDictionary());
final List<String> theseSamples = header.getGenotypeSamples();
if (!samples.equals(theseSamples)) {
final SortedSet<String> s1 = new TreeSet<>(samples);
final SortedSet<String> s2 = new TreeSet<>(theseSamples);
s1.removeAll(theseSamples);
s2.removeAll(samples);
throw new IllegalArgumentException("VCFs do not have identical sample lists." +
" Samples unique to first file: " + s1 + ". Samples unique to " + f.toUri().toString() + ": " + s2 + ".");
}
try(final CloseableIterator<VariantContext> variantIterator = in.iterator()) {
if (variantIterator.hasNext()) {
final VariantContext currentContext = variantIterator.next();
if (lastContext != null) {
if ( disableContigOrderingCheck ) {
if ( lastContext.getContig().equals(currentContext.getContig()) && lastContext.getStart() >= currentContext.getStart() ) {
throw new IllegalArgumentException(
"First record in file " + f.toUri().toString() + " is not after first record in " +
"previous file " + lastFile.toUri().toString());
}
}
else {
if ( comparator.compare(lastContext, currentContext) >= 0 ) {
throw new IllegalArgumentException(
"First record in file " + f.toUri().toString() + " is not after first record in " +
"previous file " + lastFile.toUri().toString());
}
}
}
lastContext = currentContext;
lastFile = f;
}
} catch (final IOException e) {
throw new UserException.CouldNotReadInputFile(f, e.getMessage(), e);
}
CloserUtil.close(in);
}
}