Motivación
Actualmente afquery annotate solo añade campos INFO (AFQUERY_AC, AFQUERY_AN, AFQUERY_AF) al VCF de salida. Para filtrar variantes raras, el usuario necesita un paso adicional con bcftools u otra herramienta.
Propuesta
Añadir un parámetro --filter-expr al comando annotate que permita evaluar expresiones booleanas/aritméticas sobre los campos anotados y filtrar variantes en el mismo paso.
Ejemplo de uso
afquery annotate --db ./db/ --input patient.vcf --output filtered.vcf \
--filter-expr "AFQUERY_AF < 0.01 and AFQUERY_AN > 100"
Detalles de implementación
- Evaluar la expresión después de calcular AC/AN/AF para cada variante
- Las variantes que no cumplen la expresión se excluyen del VCF de salida (o se marcan en FILTER)
- Se puede usar una librería ligera de evaluación de expresiones (e.g.,
simpleeval o asteval)
- Soportar operadores:
<, <=, >, >=, ==, !=, and, or, not
Beneficios esperados
- Elimina la necesidad de un paso extra con bcftools para filtrado por frecuencia
- Flujo de trabajo más sencillo para el usuario
Referencia
Inspirado en el sistema de expresiones de filtro de echtvar (usa fasteval).
Motivación
Actualmente
afquery annotatesolo añade campos INFO (AFQUERY_AC,AFQUERY_AN,AFQUERY_AF) al VCF de salida. Para filtrar variantes raras, el usuario necesita un paso adicional con bcftools u otra herramienta.Propuesta
Añadir un parámetro
--filter-expral comandoannotateque permita evaluar expresiones booleanas/aritméticas sobre los campos anotados y filtrar variantes en el mismo paso.Ejemplo de uso
afquery annotate --db ./db/ --input patient.vcf --output filtered.vcf \ --filter-expr "AFQUERY_AF < 0.01 and AFQUERY_AN > 100"Detalles de implementación
simpleevaloasteval)<,<=,>,>=,==,!=,and,or,notBeneficios esperados
Referencia
Inspirado en el sistema de expresiones de filtro de echtvar (usa
fasteval).