Annotation des variantes à l'aide de Pipe Transformer

Notes

L’utilisation de Databricks Runtime pour Genomics est déconseillée. Databricks ne génère plus de nouvelles versions de Databricks Runtime pour Genomics et supprimera le support de Databricks Runtime pour Genomics le 24 septembre 2022, quand le support de Databricks Runtime pour Genomics 7.3 LTS prendra fin. À compter de cette date, Databricks Runtime pour Genomics ne sera plus disponible à la sélection lorsque vous créerez un cluster. Pour plus d’informations sur la politique et le calendrier de dépréciation de Databricks Runtime, consultez Versions prises en charge du runtime Databricks et calendrier du support. Les bibliothèques bioinformatiques qui faisaient partie du runtime ont été publiées sous forme de conteneurs Docker, que vous pouvez trouver sur la page Dockerhub de ProjectGlow.

Toute méthode d'annotation peut être utilisée sur les données de variantes en utilisant le Pipe Transformer de Glow.

Par exemple, l'annotation VEP est effectuée en téléchargeant les sources de données d'annotation (le cache) sur chaque nœud d'un cluster et en appelant le script de ligne de commande VEP avec le transformateur Pipe en utilisant un script similaire à la cellule suivante.

import glow
import json

input_vcf = "/databricks-datasets/hail/data-001/1kg_sample.vcf.bgz"
input_df = spark.read.format("vcf").load(input_vcf)
cmd = json.dumps([
  "/opt/vep/src/ensembl-vep/vep",
  "--dir_cache", "/mnt/dbnucleus/dbgenomics/grch37_merged_vep_96",
  "--fasta", "/mnt/dbnucleus/dbgenomics/grch37_merged_vep_96/data/human_g1k_v37.fa",
  "--assembly", "GRCh37",
  "--format", "vcf",
  "--output_file", "STDOUT",
  "--no_stats",
  "--cache",
  "--offline",
  "--vcf",
  "--merged"])
output_df = glow.transform("pipe", input_df, cmd=cmd, input_formatter='vcf', in_vcf_header=input_vcf, output_formatter='vcf')
output_df.write.format("delta").save("dbfs:/mnt/vep-pipe")