Considere um arquivo no formato VCF (Variant Call Format) que contém informações sobre SNPs (single nucleotide polymorphisms) de um conjunto de 1.000 amostras. Cada SNP é representado por uma linha no arquivo, e cada linha contém informações sobre a posição do SNP, o identificador do SNP (rsID), os alelos referência e os alelos alternativos, e as informações genotípicas para cada amostra. Ao usar a linguagem de programação Python para implementar uma estrutura de dados que permita a manipulação das informações, qual das seguintes alternativas apresenta a implementação de uma estrutura de dados mais adequada para armazenar todas as informações?
Uma lista de dicionários, onde cada dicionário representa um SNP e contém as informações relevantes como chaves.
Um dicionário onde as chaves são as posições dos SNPs e os valores são os alelos alternativos.
Uma tupla para cada amostra contendo as informações de posição do SNP, o identificador do SNP (rsID) e os alelos referência.
Uma classe chamada SNP com atributos para cada informação presente em uma linha do arquivo VCF e uma lista de instâncias dessa classe para representar todos os SNPs.
Uma estrutura de dados baseada em grafos para armazenar todas as informações das amostras.