Repository navigation
Dos paneles contaban menos de lo que hay - #1012
Merged
github-actions[bot] merged 1 commit intoOct 13, 2026
Merged
Conversation
1. EL TOP 20 DE ORGANISMOS PARTIA CADA TAXON EN DOS. Agrupaba por (organism, taxonomy_id), y las dos rutas de carga escriben el nombre distinto: la de Swiss-Prot pone "Homo sapiens" y la del TSV "Homo sapiens (Human)". Medido sobre el corpus vivo: 726 taxones llevan mas de un nombre, y los SEIS primeros del ranking lo hacian, asi que el orden estaba mal de arriba abajo. El 9606 son 41.823 proteinas canonicas y salia como 21.387 y 20.436, compitiendo consigo mismo. Ahora agrupa por taxonomy_id y el nombre se elige con min() para que sea determinista y no el que emita el plan. Se excluyen las filas sin taxon, que son las 28.868 entradas borradas de UniProtKB y no llevan ni taxon ni organismo; el filtro de organism ya las quitaba, pero conviene decirlo tambien de la clave de agrupacion nueva. 2. LA COBERTURA POR PLM MEDIA LA ESPINA Y NO EL CORPUS. Decia 576.450 al 100,0%. Es aritmetica honesta sobre la poblacion equivocada: hay 746.014 proteinas canonicas y TODAS tienen embedding, asi que la tarjeta escondia 169.564 y afirmaba algo mas debil de lo que los datos sostienen. El reviewed=True de los dos lados lo puse yo en #1002 para cortar un 121,5% medido, pero la causa de aquello era un numerador desalineado, no la espina. Alinear los dos lados en is_canonical a secas arregla el porcentaje sin encoger lo que se reporta. Canonicas y no la tabla entera porque una isoforma comparte secuencia con su padre. De paso, el recuento de filas NO es el de proteinas, y esta vez al reves: 684.048 filas de embedding cubren 792.535 proteinas, porque las accesiones que comparten secuencia comparten su embedding. EL TEST DE LA COBERTURA ERA MIO Y ESTABA MAL DE DOS FORMAS. Afirmaba que una cadena concreta aparecia dos veces en el fuente, asi que habia que editarlo cada vez que cambiara la poblacion y no decia nada sobre que los dos lados coincidieran, que es lo unico que importa. Ahora compara los conjuntos de filtros de numerador y denominador. Cuatro tests nuevos del ranking y dos de la cobertura. Las cuatro mutaciones comprobadas: agrupar por nombre otra vez, el nombre sin agregar, sin excluir el taxon nulo, y volver a estrechar a Swiss-Prot.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #1012 +/- ##
===========================================
+ Coverage 87.85% 88.04% +0.19%
===========================================
Files 306 330 +24
Lines 23414 25662 +2248
===========================================
+ Hits 20570 22594 +2024
- Misses 2844 3068 +224
🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Los dos salen en la misma captura de las estadisticas publicas y los dos reportan
menos de lo que el registro sostiene.
1. El top 20 de organismos partia cada taxon en dos
Agrupaba por
(organism, taxonomy_id), y las dos rutas de carga escriben elnombre distinto: la de Swiss-Prot pone
Homo sapiensy la del TSVHomo sapiens (Human).Medido sobre el corpus vivo:
Asi que no es que una barra estuviera mal: el orden estaba mal de arriba
abajo, porque comparaba mitades contra enteros.
Ahora agrupa por
taxonomy_id. El nombre se elige conmin()para que seadeterminista y no el que el plan emita; el taxon es la identidad y el nombre una
etiqueta. Se excluyen las filas sin taxon, que son las 28.868 entradas borradas
de UniProtKB: no llevan ni taxon ni organismo, el filtro de
organismya lasquitaba, y conviene decirlo tambien de la clave nueva para que no colapsen en una
barra sin nombre.
2. La cobertura por PLM media la espina y no el corpus
Decia 576.450 al 100,0%. Es aritmetica honesta sobre la poblacion
equivocada:
Todas las canonicas estan embebidas, asi que la tarjeta escondia 169.564 y
afirmaba algo mas debil de lo que los datos sostienen.
El
reviewed=Trueen los dos lados lo puse yo en #1002, para cortar un 121,5%medido. Pero la causa de aquello era un numerador desalineado, no la espina:
alinear los dos lados en
is_canonicala secas arregla el porcentaje sin encogerlo que se reporta. Canonicas y no la tabla entera porque una isoforma comparte
secuencia con su padre y contaria como cobertura separada de lo mismo.
De paso, y en la direccion contraria a la trampa habitual: 684.048 filas de
embedding cubren 792.535 proteinas, porque las accesiones que comparten
secuencia comparten su embedding.
El test de la cobertura era mio y estaba mal de dos formas
Afirmaba que
.filter(Protein.reviewed.is_(True))aparecia dos veces en eltexto fuente. Habia que editarlo cada vez que cambiara la poblacion, y no decia
nada sobre lo unico que importa, que es que los dos lados coincidan.
Ahora extrae el conjunto de columnas que filtra cada lado y los compara, mas un
segundo test que fija cual es la poblacion. Un cambio de poblacion futuro rompe
el segundo y deja el primero en pie, que es como deberia haber estado.
Comprobado
Seis tests nuevos y 28 en el fichero, todos en verde. Cuatro mutaciones
verificadas una a una: volver a agrupar por nombre, el nombre sin agregar, sin
excluir el taxon nulo, y volver a estrechar a Swiss-Prot.
ruff,mypyy el presupuesto de smells en verde.Lo que NO era un fallo
En la misma captura, el panel "GO annotations: source x version x aspect x
evidence" sale vacio. Lo comprobe por la misma ruta que usa el navegador: responde
200 en 18 ms con 35 KB. Era el esqueleto del
useLazyLoadcazado en vuelo alhacer scroll, no un fallo, asi que no toco nada ahi.