SamJS y VCFFilterJS son dos herramientas para las que escribí jvarkit. Ambas herramientas usan el java incrustado. javascript motor para filtrar archivos BAM o VCF.
Para llegar a una audiencia más amplia, he copiado esas funcionalidades a Picardo en ‘FiltrarSamReads’ y ‘FiltroVcf’.
FilterSamReads
FilterSamReads filtra un archivo SAM o BAM con una expresión de javascript utilizando el motor javascript de java.
El script pone las siguientes variables en el contexto del script: ‘record’ a SamRecord y ‘encabezado’ a SAMFileHeader. El último valor del script debe ser un valor booleano para indicar si debemos aceptar o rechazar el registro.
La secuencia de comandos samFilter.js
/** accept record if second base of DNA is a A */ function accept(r) accept(record);
Invocar y salida
$ java -jar picard-tools-2.1.1/picard.jar FilterSamReads I=in.sam O=out.sam JS=samFilter.js FILTER=includeJavascript $ cat out.sam | cut -f 10 | cut -c 2 | sort | uniq A
FiltroVcf
FiltroVcf uno o más filtros duros en un archivo VCF para filtrar genotipos y variantes.
Filtra un archivo VCF con una expresión javascript interpretada por el motor javascript javascript. El script pone las siguientes variables en el contexto del script: ‘variant’ a VariantContext y ‘encabezado’ a Encabezado VCF. El último valor del script debe ser un valor booleano para indicar si debemos aceptar o rechazar el registro.
La secuencia de comandos variantFilter.js
/** prints a VARIATION if two samples at least have a DP>100 */ function myfilterFunction(thevariant) myfilterFunction(variant)
Invocar y salida
java -jar picard-tools-2.1.1/picard.jar FilterVcf I=in.vcf O=out.vcf JS=variantFilter.js $ grep -v '#' jeter.vcf | cut -f 7 | grep variantFilter | wc -l 23
Eso es,
Pedro