Pyradiomics: [BUG] Fallo silencioso al inicializar el extractor con una ruta no válida

Creado en 17 jun. 2020  ·  5Comentarios  ·  Fuente: AIM-Harvard/pyradiomics

Describe el error
Fallo silencioso al inicializar el extractor con una ruta no válida.

Comportamiento observado:
Cuando se usa radiomics.featureextractor.RadiomicsFeatureExtractor con una ruta no existente (o una que contenga ~/ ), el archivo yaml no se lee, pero el extractor devuelve un objeto predeterminado.

Comportamiento esperado:
Se produjo un error: archivo no encontrado. Actualmente, los usuarios pueden continuar execute (¡¿y publicar ?!) pensando que la salida usa su configuración.

Configuración de PyRadiomics
No aplica. Cualquier yaml piradiomics válido.

Versión (complete la siguiente información):

  • SO: CentOS 7
  • Versión de Python: 3.7.6
  • Versión de PyRadiomics: 3.0

Contexto adicional
Se ejecuta en un entorno anaconda base de instalación nueva.

bug

Todos 5 comentarios

Buen punto, esto puede ser muy peligroso.

Si habilita --validate , se identificará este problema, pero la validación del archivo de parámetros está desactivada de forma predeterminada.

@JoostJM, ¿hay alguna razón para no validar siempre? ¿Qué tal si cambiamos el indicador --validate a sí / no y lo configuramos en sí de forma predeterminada?

Investigaré, pero por lo que sé, el archivo de parámetros también se valida cuando se ejecuta la línea cmd normalmente. --validate usa la interfaz PyRadiomics normal, pero solo valida el archivo de parámetros y verifica si existen todas las rutas de la imagen y la máscara.

Ayer miré y pude confirmar el problema.

De hecho, es un error en la función __init__ del extractor de características, que fallará silenciosamente si una cadena es una ruta que apunta a un archivo inexistente y luego aplica la configuración predeterminada. Si actualizará esto.
Durante la validación, se registra un error cuando la ruta del archivo de parámetros no es válida.

Al pasar una ruta de archivo válida, el archivo de parámetros se valida en ambos casos, es decir, se verifica si se ajusta al esquema de configuración de piradiómica. Esto también es cierto cuando se pasa un diccionario como un único argumento posicional para la inicialización del extractor de características (no un diccionario expandido / argumentos de palabras clave, que se interpretan como parámetros de configuración de tipo "ajustes").

Esto también es cierto cuando se pasa un diccionario como un único argumento posicional para la inicialización del extractor de características.

Respecto a esto, ¿a qué tipo de diccionario te refieres? Porque la documentación dice:

Los parámetros de tipo 1 (tipo de imagen) y 2 (clase de entidad) solo se pueden proporcionar en la inicialización cuando se usa el archivo de parámetros

A menos que se refiera a un dict de configuración, entonces cuando inicializo el extractor de características con mydict lugar de **mydict , ¿se supone que funciona? Porque la validación en el primer caso _siempre_ parece fallar independientemente de la configuración del dictado.

Editar: No importa, encontré la documentación relevante:

En la inicialización, se puede proporcionar un [...] diccionario que contiene todas las configuraciones necesarias (nivel superior que contiene las teclas "configuración", "imageType" y / o "featureClass). Esto se hace pasándolo como el primer argumento posicional.

¿Fue útil esta página
0 / 5 - 0 calificaciones