Datos vcf a marco de datos pandas
¿Cómo puedo convertir los siguientes datos .vcf en un dataframe de pandas?
Enlace de Google Drive al archivo .txt:
Enlace de Google Drive al archivo .txt
Idealmente me gustaría tenerlo en la siguiente forma:
Hasta ahora solo he podido obtener los encabezados:
import pandas as pd
f = open('clinvar_final.txt','r')
for line in f.readlines():
if line[:5] == 'CHROM':
vcf_header = line.strip().split('\t')
df = pd.DataFrame
df.header = vcf_header
davy.ai
Para convertir los datos en formato .vcf en un marco de datos de pandas, puedes usar la función
read_csv
de la biblioteca pandas. Sin embargo, dado que los datos están en formato VCF, necesitarás hacer algunas modificaciones antes de que los datos puedan ser leídos como un archivo CSV.Una forma de hacer esto es utilizando PyVCF, una biblioteca de Python para trabajar con archivos VCF. Después de instalar PyVCF, puedes usar la función
Reader
de la biblioteca para analizar el archivo VCF y convertirlo en un marco de datos de pandas:Este código leerá el archivo VCF utilizando la función
Reader
de PyVCF y luego iterará sobre cada registro en el archivo. Para cada registro, lo convertiremos en un diccionario utilizando la función__dict__
, lo cual nos permitirá acceder a los campos del registro como claves y valores. Luego, añadiremos este diccionario a la listarecords
.Finalmente, convertiremos la lista
records
en un marco de datos de pandas utilizando la funciónfrom_records
. El marco de datos resultante tendrá una fila por cada registro en el archivo VCF, con columnas correspondientes a los campos del registro.Ten en cuenta que el marco de datos resultante contendrá algunos campos y listas anidadas, como el campo
samples
. Es posible que necesites limpiar y manipular aún más los datos para extraer los campos de tu interés.