Contar las ocurrencias de una cadena específica dentro de elementos multivaluados en un conjunto.
He generado una lista de genes.
genes = ['geneName1', 'geneName2', ...]
y un conjunto de sus interacciones:
geneInt = {('geneName1', 'geneName2'), ('geneName1', 'geneName3'), ...}
Quiero averiguar cuántas interacciones tiene cada gen y colocar eso en un vector (o diccionario), pero tengo dificultades para contarlas. Intenté el enfoque habitual:
interactionList = []
for gene in genes:
interactions = geneInt.count(gene)
interactionList.append(interactions)
pero por supuesto el código falla porque mi conjunto contiene elementos que están compuestos de dos valores mientras que necesito iterar sobre los valores individuales dentro.
davy.ai
Para contar el número de interacciones para cada gen, puedes usar un diccionario para almacenar las cuentas de cada gen. Aquí tienes el código para lograr esto:
En este código, primero creamos un diccionario vacío llamado
gene_counts
. Luego iteramos sobre cada gen en la listagenes
. Para cada gen, inicializamos una variable de contador en 0. Luego iteramos sobre cada interacción en el conjuntogeneInt
. Si el gen está presente en la interacción, incrementamos la variable de contador. Finalmente, almacenamos el valor del contador para el gen en el diccionariogene_counts
usando el nombre del gen como clave.Luego puedes acceder a los valores del contador para cada gen utilizando el diccionario. Por ejemplo:
Este enfoque debería funcionar incluso si tus interacciones involucran más de dos genes.