当前位置: 首页>>代码示例>>Java>>正文


Java FeatureReader.getHeader方法代码示例

本文整理汇总了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;
}
 
开发者ID:react-dev26,项目名称:NGB-master,代码行数:22,代码来源:VcfManager.java

示例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);
}
 
开发者ID:react-dev26,项目名称:NGB-master,代码行数:13,代码来源:VcfFileReader.java

示例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;
}
 
开发者ID:react-dev26,项目名称:NGB-master,代码行数:57,代码来源:VcfManager.java

示例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;
}
 
开发者ID:react-dev26,项目名称:NGB-master,代码行数:46,代码来源:VcfManager.java

示例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);
    }
}
 
开发者ID:react-dev26,项目名称:NGB-master,代码行数:50,代码来源:FeatureIndexManager.java

示例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;
}
 
开发者ID:epam,项目名称:NGB,代码行数:59,代码来源:VcfManager.java

示例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;
}
 
开发者ID:epam,项目名称:NGB,代码行数:47,代码来源:VcfManager.java

示例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);
    }
}
 
开发者ID:epam,项目名称:NGB,代码行数:51,代码来源:FeatureIndexManager.java

示例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);
    }
}
 
开发者ID:broadinstitute,项目名称:gatk,代码行数:63,代码来源:GatherVcfsCloud.java


注:本文中的htsjdk.tribble.FeatureReader.getHeader方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。