Pyradiomics: [EXTRAÇÃO DE FEAT] Vários recursos retornando os mesmos valores para imagens diferentes

Criado em 14 jan. 2020  ·  16Comentários  ·  Fonte: AIM-Harvard/pyradiomics

Descreva o bug
Olá a todos,

Eu executei o código de piradiômica em alguns conjuntos de dados recentemente.
Tenho obtido alguns resultados estranhos - vários recursos são os mesmos.
ou seja,
original_firstorder_Entropy - todos -3.2E-16
original_firstorder_Uniformity - todos 1
GLCM - todos me fornecem os mesmos valores (0, 1 ou -3,20E-16)

As imagens contêm valores muito diferentes, então tudo isso é inesperado ...

Alguma ideia?
Muito Obrigado

Versão (preencha as seguintes informações):
SO: Windows Server 2012 R2
Versão Python: 3.6.1
PyRadiomics versão 2.2.0

question

Todos 16 comentários

Pode ser devido à sua escolha de binning para essas imagens. Você tentou aumentar o número de caixas e ver se isso faz alguma diferença?

Oi Fedorov,
Não tenho certeza de como posso alterar o número de caixas ... Você poderia descrever e verei se é possível?
Muito Obrigado

Você pode fazer isso usando esta linha no arquivo de configurações: https://github.com/Radiomics/pyradiomics/blob/master/examples/exampleSettings/Params.yaml#L21

Obrigado Fedorov - Eu testei em um subconjunto de dados com binWidth = 50, mas os resultados ainda são os mesmos, infelizmente.

Oi,
c
Você pode verificar qual é a faixa de intensidades dentro das máscaras e
mude a largura da caixa para que o número de caixas caia entre 30 e
130 como sugerido em
https://pyradiomics.readthedocs.io/en/latest/faq.html#what -about-gray-value-discretization-fixed-bin-width-fixed-bin-count

Como você está executando a piradiômica? Você está passando o arquivo de parâmetro
corretamente?

Espero que isso ajude a encontrar o problema

A terça, 14/01/2020, 17:28, GitHub-nome de usuário-hífen notificaçõ[email protected]
escreveu:

Olá Fedorov, testei em um subconjunto de dados com binWidth = 50, mas o
os resultados são os mesmos.

-
Você está recebendo isto porque está inscrito neste tópico.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Radiomics/pyradiomics/issues/552?email_source=notifications&email_token=AGGB5ZLWAWZCFF5SEVV4GI3Q5XY3HA5CNFSM4KGWGJWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEI5OMNI#issuecomment-574285365 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/AGGB5ZPEZ7UXDR22NCWIKCTQ5XY3HANCNFSM4KGWGJWA
.

Oi joao,
As máscaras são binárias, então os valores são 1 ou 0.
Estamos usando uma variedade de imagens, mas definimos nossas máscaras para que, quando sobrepostas nas imagens, cobrem apenas valores positivos.

Originalmente, usamos a configuração padrão de binWidth = 25, mas eu mudei para 50 (número arbitrário) conforme sugerido por Fedorov, mas ainda obtive o mesmo resultado. Executamos piradiomics usando PyCharm, que eu acredito que chama o arquivo params.yaml para o arquivo de parâmetro. Não teve esse problema anteriormente com outros conjuntos de dados.

Desculpe, não fui claro, mas o intervalo a que me referia era o intervalo de
intensidades da imagem onde sua máscara é uma.

Você pode expor aqui os comandos / linhas de código que estão executando a piradiômica?
Portanto, é melhor ajudá-lo!

Obrigado

A terça, 14/01/2020, 18:47, GitHub-nomedeusuário-hífen notificaçõ[email protected]
escreveu:

Oi joao,
As máscaras são binárias, então os valores são 1 ou 0.
Estamos usando uma variedade de imagens, mas definimos nossas máscaras para que quando
sobreposto às imagens, deve abranger apenas valores positivos.

Usamos originalmente a configuração padrão de binWidth = 25, mas eu a alterei
para 50 (número arbitrário), conforme sugerido por Fedorov, mas ainda tinha o mesmo
resultado. Executamos piradiômica usando PyCharm, que eu acredito que exige
o arquivo params.yaml para o arquivo de parâmetro. Não teve esse problema
anteriormente com outros conjuntos de dados.

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Radiomics/pyradiomics/issues/552?email_source=notifications&email_token=AGGB5ZPIXVJU5KUVHW7VNPDQ5YCDXA5CNFSM4KGWGJWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEI5WDLA#issuecomment-574316972 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/AGGB5ZMGT2UAT6L5WO5GQP3Q5YCDXANCNFSM4KGWGJWA
.

Oi joao,
Desculpe, sou um novato em tudo isso - acho que era isso que você estava pedindo.

`de radiomics import featureextractor, getTestCase
importar seis
import sys, os

definir constantes

dataDir = 'E: \ Texture Analysis Files \ PyCharm Projects \ SR_FE_Codes \ IVIM_D_ThresholdedIndiv_20200110 \ Test'
forYAML = 'E: \ Texture Analysis Files \ PyCharm Projects \ SR_FE_Codes'
params = os.path.join (forYAML, "examples", "exampleSettings", "Params.yaml")
extractor = featureextractor.RadiomicsFeatureExtractor (params)
a = [] `

Isso foi exatamente o que eu perguntei.

Acho que o problema pode ser a escala do seu D da análise do IVIM. O
o valor da largura do compartimento pode ser muito alto ou muito baixo para os valores dentro do
mascarar. Depende das unidades (mm² / s ou outro) e como esses valores são
representado (· 10 ^ -6 ou outro).

Acho que a maneira mais fácil de entender a faixa de valores seria carregar
as imagens e máscaras no 3D Slicer e na Quantificação selecione o
Estatísticas de segmentação (ou algo semelhante), verifique o mínimo e
máximo e definir a largura do compartimento de acordo.

Me diga se você conseguiu resolver

A terça, 14/01/2020, 19:21, GitHub-nomedeusuário-hífen notificaçõ[email protected]
escreveu:

Oi joao,
Desculpe, sou um novato em tudo isso - acho que é isso que você estava perguntando
para?

`de radiomics import featureextractor, getTestCase
importar seis
import sys, os
definir constantes

dataDir = 'E: \ Texture Analysis Files \ PyCharm
Projects \ SR_FE_Codes \ IVIM_D_ThresholdedIndiv_20200110 \ Test '
forYAML = 'E: \ Texture Analysis Files \ PyCharm Projects \ SR_FE_Codes'
params = os.path.join (forYAML, "exemplos", "configurações de exemplo",
"Params.yaml")
extractor = featureextractor.RadiomicsFeatureExtractor (params)
a = [] `

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Radiomics/pyradiomics/issues/552?email_source=notifications&email_token=AGGB5ZP2EPWNOVFBG66UU53Q5YGFHA5CNFSM4KGWGJWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEI5ZQQQ#issuecomment-574330946 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/AGGB5ZNKSMN6ZZGCVBVEGO3Q5YGFHANCNFSM4KGWGJWA
.

Você também pode tentar usar o parâmetro binCount conforme descrito aqui no lugar de binWidth : https://pyradiomics.readthedocs.io/en/latest/customization.html#feature -class-level

Olá João, Fedorov,

Agradeço ambos pelas sugestões.
Importei alguns de nossos casos para o Slicer. Estamos olhando para diferentes mapas IVIM (ou seja, ADC, D, f) com diferentes limites definidos, de modo que o mín. / Máx. Variam. Alguns exemplos abaixo:

ADC: 8.33816e-05 a 0,00217475
D: 6,71817e-05 a 0,3
f: 0,000594766 a 0,299469

Vejo que as sugestões parecem ser definir binWidth entre 30-130, mas gostaria de saber se algum de vocês tem sugestões sobre o que eu poderia testar? Não tenho certeza de para qual direção devemos mudar binWidth dadas nossas várias escalas nos diferentes mapas.

Muito obrigado por sua ajuda,

Portanto, o problema é que uma largura de caixa de 25 ou 50 é muito alta para o intervalo
(máximo-mínimo) dos valores de ADC, D e f. Você pode, por exemplo, selecionar
para ADC uma largura de caixa de
(0,00217475 - 8,33816e-05) / 80
onde 80 é o número de compartimentos.
O valor 80 é apenas um exemplo para você obter a largura do escaninho.
Você pode fazer o que é proposto na piradiômica que seria executar o
extração de recurso uma vez e olhe para firstorder_range e veja se por
dividindo pela largura do compartimento selecionado, a maioria dos pacientes teria
entre 30 e 130 escaninhos (não é uma largura de escaninho entre 30 e 130).

Você pode tentar a solução de Andrey e verá que esses valores
mudança.

Espero que tenha sido claro o suficiente para ajudá-lo

A terça, 14/01/2020, 21:10, GitHub-nome de usuário-hífen notificaçõ[email protected]
escreveu:

Olá João, Fedorov,

Agradeço ambos pelas sugestões.
Importei alguns de nossos casos para o Slicer. Estamos olhando para olhar
em diferentes mapas IVIM (ou seja, ADC, D, f) com diferentes limites definidos, então
o mínimo / máximo variam. Alguns exemplos abaixo:

ADC: 8.33816e-05 a 0,00217475
D: 6,71817e-05 a 0,3
f: 0,000594766 a 0,299469

Vejo que as sugestões parecem ser definir binWidth entre 30-130, mas
estava se perguntando se algum de vocês tinha sugestões sobre o que eu poderia testar? eu
não tenho certeza de qual direção devemos alterar binWidth para dados nossos vários
escalas nos diferentes mapas.

Muito obrigado por sua ajuda,

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Radiomics/pyradiomics/issues/552?email_source=notifications&email_token=AGGB5ZJMMWFJBVIEFAMQCOLQ5YS3PA5CNFSM4KGWGJWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEI6ELLA#issuecomment-574375340 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/AGGB5ZOTFERRJZDRYKDQYPTQ5YS3PANCNFSM4KGWGJWA
.

Muito obrigado João, isso foi muito útil!

Vou tentar suas sugestões e dar uma olhada para ver o que foi publicado como
Nós vamos.

Em 14 de janeiro de 2020 às 16:31, João Santinha [email protected] escreveu:

Portanto, o problema é que uma largura de caixa de 25 ou 50 é muito alta para o intervalo
(máximo-mínimo) dos valores de ADC, D e f. Você pode, por exemplo, selecionar
para ADC uma largura de caixa de
(0,00217475 - 8,33816e-05) / 80
onde 80 é o número de compartimentos.
O valor 80 é apenas um exemplo para você obter a largura do escaninho.
Você pode fazer o que é proposto na piradiômica que seria executar o
extração de recurso uma vez e olhe para firstorder_range e veja se por
dividindo pela largura do compartimento selecionado, a maioria dos pacientes teria
entre 30 e 130 escaninhos (não é uma largura de escaninho entre 30 e 130).

Você pode tentar a solução de Andrey e verá que esses valores
mudança.

Espero que tenha sido claro o suficiente para ajudá-lo

A terça, 14/01/2020, 21:10, GitHub-nome-de-usuário-hífen >
escreveu:

Olá João, Fedorov,

Agradeço ambos pelas sugestões.
Importei alguns de nossos casos para o Slicer. Estamos olhando para olhar
em diferentes mapas IVIM (ou seja, ADC, D, f) com diferentes limites definidos, então
o mínimo / máximo variam. Alguns exemplos abaixo:

ADC: 8.33816e-05 a 0,00217475
D: 6,71817e-05 a 0,3
f: 0,000594766 a 0,299469

Vejo que as sugestões parecem ser definir binWidth entre 30-130, mas
estava se perguntando se algum de vocês tinha sugestões sobre o que eu poderia testar? eu
não tenho certeza de qual direção devemos alterar binWidth para dados nossos vários
escalas nos diferentes mapas.

Muito obrigado por sua ajuda,

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
<
https://github.com/Radiomics/pyradiomics/issues/552?email_source=notifications&email_token=AGGB5ZJMMWFJBVIEFAMQCOLQ5YS3PA5CNFSM4KGWGJWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEI6ELLA#issuecomment -574375340
,
ou cancelar
<
https://github.com/notifications/unsubscribe-auth/AGGB5ZOTFERRJZDRYKDQYPTQ5YS3PANCNFSM4KGWGJWA

.

-
Você está recebendo isso porque é o autor do tópico.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Radiomics/pyradiomics/issues/552?email_source=notifications&email_token=AOAQCNIEPHMNDHUL2LV7SPTQ5YVKLA5CNFSM4KGWGJWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEI6GKFI#issuecomment-574383381 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/AOAQCNPKNW3LUEBDZAUN6RLQ5YVKLANCNFSM4KGWGJWA
.

Oi Fedorov,
Estou tentando ajustar binCount vs binWidth, mas não consigo encontrar uma linha no código para binCount. Você pode me aconselhar sobre onde posso encontrar isso?
obrigada

É mais fácil experimentar usando a ferramenta de linha de comando para extração de recursos e especificar parâmetros no arquivo de configuração. Você pode começar com este arquivo de configuração e especificar binWidth no lugar de binCount ?

Olá a todos,

Acho que esse problema foi resolvido alterando binWidth para refletir a escala de valores na imagem.

Obrigado João, Fedorov!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

AT3432984 picture AT3432984  ·  3Comentários

JoostJM picture JoostJM  ·  14Comentários

vnarayan13 picture vnarayan13  ·  14Comentários

GiulioBen picture GiulioBen  ·  7Comentários

devareddy picture devareddy  ·  7Comentários