org.opencb.opencga.storage.core.variant.adaptors.VariantQueryUtils类的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(14.8k)|赞(0)|评价(0)|浏览(106)

本文整理了Java中org.opencb.opencga.storage.core.variant.adaptors.VariantQueryUtils类的一些代码示例,展示了VariantQueryUtils类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。VariantQueryUtils类的具体详情如下:
包路径:org.opencb.opencga.storage.core.variant.adaptors.VariantQueryUtils
类名称:VariantQueryUtils

VariantQueryUtils介绍

[英]Created on 29/01/16 .
[中]创建于2016年1月29日。

代码示例

代码示例来源:origin: opencb/opencga

public static boolean isValidParam(Query query, QueryParam param, boolean discardNegated) {
  boolean validParam = isValidParam(query, param);
  if (!discardNegated || !validParam) {
    return validParam;
  } else {
    String strValue = query.getString(param.key());
    return splitValue(strValue, checkOperator(strValue))
        .stream()
        .anyMatch((v) -> !isNegated(v)); // Discard negated
  }
}

代码示例来源:origin: opencb/opencga

/**
 * Build an OR/AND-condition with all consequence types from the input list. It uses the VariantDBAdaptorUtils
 * to parse the consequence type (accession or term) into an integer.
 *
 * @param cts   List of consequence types
 * @param op    Boolean operator (OR / AND)
 * @return      OR/AND-condition string
 */
private String buildConsequenceTypeOrAnd(List<String> cts, String op) {
  StringBuilder sb = new StringBuilder();
  for (String ct : cts) {
    if (sb.length() > 0) {
      sb.append(op);
    }
    sb.append("soAcc:\"").append(VariantQueryUtils.parseConsequenceType(ct)).append("\"");
  }
  return sb.toString();
}

代码示例来源:origin: opencb/opencga

if (isValidParam(query, INCLUDE_SAMPLE)) {
  String samplesString = query.getString(VariantQueryParam.INCLUDE_SAMPLE.key());
  if (samplesString.equals(ALL)) {
  if (isValidParam(query, SAMPLE)) {
    String value = query.getString(SAMPLE.key());
    samples = splitValue(value, checkOperator(value))
        .stream()
        .filter((v) -> !isNegated(v)) // Discard negated
        .collect(Collectors.toList());
  if (isValidParam(query, GENOTYPE)) {
    HashMap<Object, List<String>> map = new LinkedHashMap<>();
    parseGenotypeFilter(query.getString(GENOTYPE.key()), map);
    if (samples == null) {
      samples = new ArrayList<>(map.size());
  if (isValidParam(query, FORMAT)) {
    Map<String, String> formatMap = parseFormat(query).getValue();
    if (samples == null) {
      samples = new ArrayList<>(formatMap.size());

代码示例来源:origin: opencb/opencga

public static boolean isIncludeSamplesDefined(Query query, Set<VariantField> fields) {
  if (getIncludeSamplesList(query, fields) != null) {
    return true;
  }
  return isValidParam(query, FILE, true) || isValidParam(query, INCLUDE_FILE, true);
}

代码示例来源:origin: opencb/opencga

public static boolean isIncludeFilesDefined(Query query, Set<VariantField> fields) {
  if (getIncludeFilesList(query, fields) != null) {
    return true;
  }
  return isValidParam(query, SAMPLE, true) || isValidParam(query, INCLUDE_SAMPLE, false) || isValidParam(query, GENOTYPE, false);
}

代码示例来源:origin: opencb/opencga

/**
 * Splits the string with the specified operation.
 *
 * @param value     Value to split
 * @return List of values, without the delimiter
 */
public static Pair<QueryOperation, List<String>> splitValue(String value) {
  QueryOperation operation = checkOperator(value);
  return Pair.of(operation, splitValue(value, operation));
}

代码示例来源:origin: opencb/opencga

if (VariantQueryUtils.isValidParam(query, ANNOT_CLINICAL_SIGNIFICANCE)) {
  String v = query.getString(ANNOT_CLINICAL_SIGNIFICANCE.key());
  VariantQueryUtils.QueryOperation operator = VariantQueryUtils.checkOperator(v);
  List<String> values = VariantQueryUtils.splitValue(v, operator);
  List<String> clinicalSignificanceList = new ArrayList<>(values.size());
  for (String clinicalSignificance : values) {
if (isValidParam(query, ANNOT_SIFT)) {
  String sift = query.getString(ANNOT_SIFT.key());
  String[] split = splitOperator(sift);
  if (StringUtils.isNotEmpty(split[0])) {
    throw VariantQueryException.malformedParam(ANNOT_SIFT, sift);
  if (isValidParam(query, ANNOT_PROTEIN_SUBSTITUTION)) {
    String proteinSubstitution = query.getString(ANNOT_PROTEIN_SUBSTITUTION.key());
    if (proteinSubstitution.contains("sift")) {
if (isValidParam(query, ANNOT_POLYPHEN)) {
  String polyphen = query.getString(ANNOT_POLYPHEN.key());
  String[] split = splitOperator(polyphen);
  if (StringUtils.isNotEmpty(split[0])) {
    throw VariantQueryException.malformedParam(ANNOT_POLYPHEN, polyphen);
  if (isValidParam(query, ANNOT_PROTEIN_SUBSTITUTION)) {
    String proteinSubstitution = query.getString(ANNOT_PROTEIN_SUBSTITUTION.key());
    if (proteinSubstitution.contains("sift")) {
StudyConfiguration defaultStudyConfiguration = getDefaultStudyConfiguration(query, options, getStudyConfigurationManager());
QueryOperation formatOperator = null;

代码示例来源:origin: opencb/opencga

if (isValidParam(query, STUDY)) {
  String value = query.getString(STUDY.key());
  QueryOperation operation = checkOperator(value);
  List<String> values = splitValue(value, operation);
  StringBuilder sb = new StringBuilder();
  Iterator<String> iterator = values.iterator();
    String study = iterator.next();
    Integer studyId = studyConfigurationManager.getStudyId(study, false, studies);
    if (isNegated(study)) {
      sb.append("\"").append(getStudyColumn(studyId).column()).append("\" IS NULL ");
    } else {
List<String> includeFiles = getIncludeFilesList(query);
QueryOperation filtersOperation = null;
List<String> filterValues = Collections.emptyList();
if (isValidParam(query, FILTER)) {
  String value = query.getString(FILTER.key());
  filtersOperation = checkOperator(value);
  filterValues = splitValue(value, filtersOperation);
  if (!filterValues.isEmpty()) {
    if (CollectionUtils.isEmpty(includeFiles)) {
if (isValidParam(query, QUAL)) {
  String value = query.getString(QUAL.key());
  qualOperation = checkOperator(value);
  qualValues = splitValue(value, qualOperation);
  if (!qualValues.isEmpty()) {
    if (CollectionUtils.isEmpty(includeFiles)) {

代码示例来源:origin: opencb/opencga

final StudyConfiguration defaultStudyConfiguration = getDefaultStudyConfiguration(query, null, studyConfigurationManager);
if (isValidParam(query, STUDY)) {
  String value = query.getString(STUDY.key());
List<String> fileNames = Collections.emptyList();
QueryOperation filesOperation = QueryOperation.OR;
if (isValidParam(query, FILE)) {
  String filesValue = query.getString(FILE.key());
  filesOperation = checkOperator(filesValue);
  fileNames = splitValue(filesValue, filesOperation);
      .filter(value -> !isNegated(value))
      .map(value -> {
        Integer fileId = studyConfigurationManager.getFileIdPair(value, false, defaultStudyConfiguration).getValue();
      })
      .collect(Collectors.toList());
} else if (isValidParam(query, INCLUDE_FILE)) {
  List<String> files = getIncludeFilesList(query);
  if (files != null) {
    fileIds = new ArrayList<>(files.size());
if (isValidParam(query, FILTER) || isValidParam(query, QUAL) || isValidParam(query, INFO)) {
  String filterValue = query.getString(FILTER.key());
  QueryOperation filterOperation = checkOperator(filterValue);
  List<String> filterValues = splitValue(filterValue, filterOperation);
  Pair<QueryOperation, Map<String, String>> infoParamPair = parseInfo(query);
  QueryOperation infoOperator = infoParamPair.getKey();

代码示例来源:origin: opencb/opencga

throws StorageEngineException {
if (!VariantStorageEngine.UseSearchIndex.from(options).equals(VariantStorageEngine.UseSearchIndex.NO)) { // YES or AUTO
  if (isValidParam(query, VariantQueryParam.STUDY)) {
    if (VariantQueryUtils.splitValue(query.getString(VariantQueryParam.STUDY.key())).getValue().size() > 1) {
  if (isValidParam(query, INFO)) {
  if (isValidParam(query, VariantQueryParam.GENOTYPE)) {
    HashMap<Object, List<String>> map = new HashMap<>();
    parseGenotypeFilter(query.getString(VariantQueryParam.GENOTYPE.key()), map);
  if (isValidParam(query, VariantQueryParam.FORMAT)) {
    validFormatFilter = true;
    formatMap = parseFormat(query).getValue();
      for (String formatFilter : splitValue(formatFilters).getValue()) {
        String formatKey = splitOperator(formatFilter)[0];
        if (!ACCEPTED_FORMAT_FILTERS.contains(formatKey)) {
  if (!isValidParam(query, VariantQueryParam.SAMPLE, true)
      && !validGenotypeFilter
      && !validFormatFilter
      && !isValidParam(query, VariantQueryParam.FILE, true)) {
        VariantQueryUtils.parseSelectElements(query, options, studyConfigurationManager);
    StudyConfiguration studyConfiguration = selectVariantElements.getStudyConfigurations().get(studyId);
    Set<String> samples = new HashSet<>();
    if (isValidParam(query, VariantQueryParam.SAMPLE)) {

代码示例来源:origin: opencb/opencga

if (isValidParam(query, REGION)) {
  regions = Region.parseRegions(query.getString(REGION.key()));
  query.remove(REGION.key());
if (isValidParam(query, ANNOT_GENE_REGIONS)) {
  regions = Region.parseRegions(query.getString(ANNOT_GENE_REGIONS.key()));
  query.remove(ANNOT_GENE_REGIONS.key());
regions = mergeRegions(regions);
StudyConfiguration defaultStudyConfiguration = VariantQueryUtils.getDefaultStudyConfiguration(query, null, scm);
if (isValidParam(query, GENOTYPE)) {
  queryOperation = parseGenotypeFilter(query.getString(GENOTYPE.key()), map);
      valid &= !isNegated(gt);
} else if (isValidParam(query, SAMPLE)) {
  queryOperation = VariantQueryUtils.checkOperator(samplesStr);
  List<String> samples = VariantQueryUtils.splitValue(samplesStr, queryOperation);
  samples.stream().filter(s -> !isNegated(s)).forEach(sample -> samplesMap.put(sample, Collections.emptyList()));

代码示例来源:origin: opencb/opencga

Function<String, Object> valueParser,
            Function<String[], String> extraFilters, List<String> filters, Function<String, Integer> arrayIdxParser) {
if (isValidParam(query, param)) {
  List<String> subFilters = new LinkedList<>();
  String stringValue = query.getString(param.key());
  QueryOperation logicOperation = checkOperator(stringValue);
  if (logicOperation == null) {
    logicOperation = QueryOperation.AND;
  for (String rawValue : splitValue(stringValue, logicOperation)) {
    String[] keyOpValue = splitOperator(rawValue);
    Column column = columnParser.apply(keyOpValue, rawValue);

代码示例来源:origin: opencb/opencga

logger.debug("region = {}", region);
  addRegionFilter(scan, region);
} else if (isValidParam(query, ID)) {
  List<String> ids = query.getAsStringList(ID.key());
  if (ids.size() != 1) {
    throw VariantQueryException.malformedParam(ID, ids.toString(), "Unsupported multiple variant ids filter");
  Variant variant = VariantQueryUtils.toVariant(ids.get(0));
  addVariantIdFilter(scan, variant);
  regionOrVariant = variant;
if (isValidParam(query, ANNOTATION_EXISTS)) {
  if (!query.getBoolean(ANNOTATION_EXISTS.key())) {
final StudyConfiguration defaultStudyConfiguration = getDefaultStudyConfiguration(query, options, studyConfigurationManager);
if (isValidParam(query, FILE)) {
  String value = query.getString(FILE.key());
  VariantQueryUtils.QueryOperation operation = checkOperator(value);
  List<String> values = splitValue(value, operation);
  FilterList subFilters;
  if (operation == QueryOperation.OR) {
    Pair<Integer, Integer> fileIdPair = studyConfigurationManager.getFileIdPair(file, false, defaultStudyConfiguration);
    byte[] column = buildFileColumnKey(fileIdPair.getKey(), fileIdPair.getValue());
    if (isNegated(file)) {
      subFilters.addFilter(missingColumnFilter(column));
    } else {
if (isValidParam(query, GENOTYPE)) {

代码示例来源:origin: opencb/opencga

public static List<String> getIncludeStudiesList(Query query, Set<VariantField> fields) {
  List<String> studies;
  if (!fields.contains(VariantField.STUDIES)) {
    studies = Collections.emptyList();
  } else if (isValidParam(query, INCLUDE_STUDY)) {
    String includeStudy = query.getString(VariantQueryParam.INCLUDE_STUDY.key());
    if (NONE.equals(includeStudy)) {
      studies = Collections.emptyList();
    } else if (ALL.equals(includeStudy)) {
      studies = null;
    } else {
      studies = query.getAsStringList(VariantQueryParam.INCLUDE_STUDY.key());
    }
  } else if (isValidParam(query, STUDY)) {
    String value = query.getString(VariantQueryParam.STUDY.key());
    studies = new ArrayList<>(splitValue(value, checkOperator(value)));
    studies.removeIf(VariantQueryUtils::isNegated);
    // if empty, all the studies
    if (studies.isEmpty()) {
      studies = null;
    }
  } else {
    studies = null;
  }
  return studies;
}

代码示例来源:origin: opencb/opencga

if (!isValidParam(query, FORMAT)) {
  return Pair.of(null, Collections.emptyMap());
  return parseMultiKeyValueFilter(FORMAT, value);
} else {
  QueryOperation operator = checkOperator(value);
  QueryOperation samplesOperator;
  Pair<QueryOperation, List<String>> pair = splitValue(sampleFilter);
  samples = new LinkedList<>(pair.getValue());
  samplesOperator = pair.getKey();
    samplesOperator = parseGenotypeFilter(query.getString(GENOTYPE.key()), genotypeMap);
    samples = genotypeMap.keySet().stream().map(Object::toString).collect(Collectors.toList());

代码示例来源:origin: opencb/opencga

VariantQueryUtils.VariantQueryXref xref = VariantQueryUtils.parseXrefs(query);
if (!xref.getIds().isEmpty() || !xref.getVariants().isEmpty() || !xref.getOtherXrefs().isEmpty()) {
if (isValidParam(query, GENOTYPE)) {
  HashMap<Object, List<String>> gtMap = new HashMap<>();
  VariantQueryUtils.parseGenotypeFilter(query.getString(GENOTYPE.key()), gtMap);
  for (List<String> gts : gtMap.values()) {
    boolean valid = true;
      valid &= !isNegated(gt);
if (isValidParam(query, SAMPLE, true)) {
  return true;

代码示例来源:origin: opencb/opencga

if (isNegated(str)) {
  str = removeNegation(str);
  String[] split = VariantQueryUtils.splitStudyResource(str);
  if (split.length == 2) {
    String study = split[0];

代码示例来源:origin: opencb/opencga

BiConsumer<String, QueryBuilder> addFilter) {
final List<String> list;
QueryOperation operation = checkOperator(value);
list = splitValue(value, operation);
  String[] populationFrequencySplit = splitOperator(populationFrequency);
  String population = populationFrequencySplit[0];
  String operator = populationFrequencySplit[1];

代码示例来源:origin: opencb/opencga

QueryOperation queryOperation = VariantQueryUtils.parseGenotypeFilter(query.getString(key), genotypeSamples);
  boolean addOperator = false;
  if (MapUtils.isNotEmpty(genotypeSamples)) {
Pair<QueryOperation, Map<String, String>> parsedSampleFormats = VariantQueryUtils.parseFormat(query);
String logicOpStr = parsedSampleFormats.getKey() == QueryOperation.AND ? " AND " : " OR ";
StringBuilder sb = new StringBuilder();
for (String sampleId : parsedSampleFormats.getValue().keySet()) {
  Pair<QueryOperation, List<String>> formats = VariantQueryUtils.splitValue(parsedSampleFormats.getValue().get(sampleId));
  if (formats.getValue().size() > 1) {
    throw VariantQueryException.malformedParam(VariantQueryParam.FORMAT, query.getString(VariantQueryParam.FORMAT.key()),
    sb.append(logicOpStr);
  String[] split = VariantQueryUtils.splitOperator(parsedSampleFormats.getValue().get(sampleId));
  if (split[0] == null) {
    throw VariantQueryException.malformedParam(VariantQueryParam.FORMAT, query.getString(VariantQueryParam.FORMAT.key()),

代码示例来源:origin: opencb/opencga

SelectVariantElements selectElements = VariantQueryUtils.parseSelectElements(query, options, studyConfigurationManager.get());
List<Scan> scans = hbaseQueryParser.parseQueryMultiRegion(selectElements, query, options);
try {
  Table table = getConnection().getTable(TableName.valueOf(variantTable));
  String unknownGenotype = null;
  if (isValidParam(query, UNKNOWN_GENOTYPE)) {
    unknownGenotype = query.getString(UNKNOWN_GENOTYPE.key());
  List<String> formats = getIncludeFormats(query);
  Iterator<ResultScanner> resScans = scans.stream().map(scan -> {
    try {
logger.info("Query : " + VariantQueryUtils.printQuery(query));
VariantSqlQueryParser.VariantPhoenixSQLQuery phoenixQuery = queryParser.parse(query, options);
String sql = phoenixQuery.getSql();
  List<String> formats = getIncludeFormats(query);
  String unknownGenotype = null;
  if (isValidParam(query, UNKNOWN_GENOTYPE)) {
    unknownGenotype = query.getString(UNKNOWN_GENOTYPE.key());

相关文章

微信公众号

最新文章

更多