Method Article
* Estes autores contribuíram igualmente
Aqui apresentamos o PyDesigner, um pipeline de processamento de ressonância magnética de difusão (dMRI) baseado em Python capaz de corrigir artefatos típicos de dMRI e produzir imagens de tensor de difusão (DTI), imagens de curtose de difusão (DKI), imagens de bola de fibra (FBI), modelagem de microestrutura (integridade da substância branca [WMTI] e substância branca da bola de fibra [FBWM]) e saídas de tractografia.
O PyDesigner é um pacote de software baseado em Python baseado no parâmetro de difusão original EStImation com pipeline Gibbs and NoisE Removal (DESIGNER) (Dv1) para pré-processamento de dMRI e estimativa de tensor. Este software é fornecido abertamente para pesquisas não comerciais e não pode ser usado para atendimento clínico. O PyDesigner combina ferramentas de FSL e MRtrix3 para realizar redução de ruído, correção de toque de Gibbs, correção de movimento de correntes parasitas, mascaramento cerebral, suavização de imagem e correção de viés de Rician para otimizar a estimativa de múltiplas medidas de difusão. Ele pode ser usado em várias plataformas no Windows, Mac e Linux para derivar com precisão métricas comumente usadas de conjuntos de dados DKI, DTI, WMTI, FBI e FBWM, bem como ODFs de tractografia e arquivos .fib. Também é independente de formato de arquivo, aceitando entradas na forma de formato .nii, .nii.gz, .mif e dicom. Fácil de usar e fácil de instalar, este software também produz métricas de controle de qualidade que ilustram gráficos de relação sinal-ruído, voxels discrepantes e movimento da cabeça para avaliar a integridade dos dados. Além disso, esse pipeline de processamento de dMRI oferece suporte ao processamento de vários conjuntos de dados de tempo de eco e apresenta personalização de pipeline, permitindo que o usuário especifique quais processos são empregados e quais saídas são produzidas para atender a uma variedade de necessidades do usuário.
A ressonância magnética de difusão (dMRI) é amplamente aplicada para o estudo não invasivo das propriedades microestruturais do cérebro. Embora muitos métodos de dMRI tenham sido propostos, dois comumente usados são a imagem por tensor de difusão (DTI) e a imagem de curtose difusional (DKI). Essas técnicas estão intimamente relacionadas, sendo o DKI uma extensão do DTI que inclui a quantificação da não-Gaussianidade difusional1. Ambos fornecem uma variedade de medidas de difusão escalar e permitem a construção da tractografia de fibras da substância branca. Uma vantagem importante do DTI e do DKI é que eles têm uma base sólida em física de difusão, de modo que sua validade não depende de suposições detalhadas sobre a microestrutura do tecido 2,3. Isso permite que o DTI e o DKI sejam aplicados em todo o cérebro e corpo para participantes de qualquer idade e estado de doença.
Como as imagens brutas ponderadas por difusão (DWIs) são degradadas por vários fatores, incluindo ruído de sinal, movimento, toque de Gibbs e distorção de correntes parasitas, o pré-processamento deve ser empregado antes do cálculo de quaisquer quantidades de difusão4. O pré-processamento de DWIs é um campo ativo de pesquisa que agora está altamente desenvolvido. No entanto, combinar as etapas de processamento necessárias em um único pipeline que forneça resultados consistentes é um desafio porque várias configurações definidas pelo usuário devem ser ajustadas dependendo dos detalhes da aquisição de dMRI e porque a ordem em que as etapas de pré-processamento são executadas afeta o resultado. Por esse motivo, o pipeline do parâmetro de difusão EStImation with Gibbs and NoisE Removal (DESIGNER, GitHub: NYU-DiffusionMRI/DESIGNER) foi inicialmente proposto em 2016 para otimizar, padronizar e agilizar o pré-processamento para DWIs5. O DESIGNER Dv1 conta com ferramentas de software incorporadas em FSL, MRtrix3, MATLAB e Python para criar um processo DWI contínuo e completo - que engloba a correção de imagem por meio de pré-processamento e estimativa de tensor de difusão/curtose5. Com sinalizadores de controle para ativar ou desativar as etapas de pré-processamento, as correções de DWI podem ser executadas seletivamente. O DESIGNER pré-processa em uma ordem específica - (i) análise de componentes principais de Marchenko-Pastur (MP-PCA) denoising6, (ii) correção de toque de Gibbs7, (iii) correção de distorção de imagem ecoplanar (EPI)8, correção de corrente parasita9, correção de movimento10 e substituição de outlier11, (iv) correção de campo de polarização B1, (v) geração de máscara cerebral, (vi) suavização, (vii) correção de viés de ruído Rician e (viii) normalização b0. O pré-processamento nesta ordem específica melhora a precisão e a relação sinal-ruído (SNR) efetiva5. Vale a pena notar que cada etapa do PyDesigner é opcional e pode ser empregada ou ignorada com base na preferência do usuário. A suavização, por exemplo, pode não ser uma etapa de pré-processamento necessária para alguns conjuntos de dados. Embora ajude a mitigar erros de filtragem, pode não ser necessário para conjuntos de dados de qualidade ultra-alta. Dessa forma, os usuários podem optar por empregar apenas as etapas necessárias para seus dados.
A implementação do DESIGNER em todas as plataformas é um desafio devido às diferenças nos sistemas operacionais e nas configurações do ambiente. Em particular, o fato de o DESIGNER Dv1 ser escrito principalmente em MATLAB cria problemas significativos de portabilidade decorrentes de requisitos de configuração complicados necessários para habilitar a interface Python-MATLAB. Além disso, diferentes combinações de MATLAB, Python e versões de dependência comprometem a reprodutibilidade desse pipeline. Por esse motivo, desenvolvemos o PyDesigner, que é totalmente baseado em Python. Esse pipeline de processamento de dMRI não apenas permite um pré-processamento contínuo, mas também permite que o pipeline seja incorporado a um contêiner do Docker, o que aumenta muito a portabilidade e a reprodutibilidade. Além disso, ao substituir o código MATLAB, o PyDesigner evita todas as taxas de licenciamento e melhora a acessibilidade.
Este pipeline de processamento de dMRI aumenta a abordagem mãos-livres introduzida pelo DESIGNER, adiciona vários novos recursos e incorpora ferramentas de FSL e MRtrix3 para realizar o pré-processamento. Bibliotecas matemáticas padrão do Python, como Numpy12, SciPy13 e CVXPY14,15, foram usadas para substituir as partes do MATLAB do DESIGNER pelo código Python. Este software é fornecido abertamente e está disponível no Github16. O objetivo deste artigo não é validar ou comparar nosso software com software semelhante, mas sim fornecer aos usuários um guia passo a passo para processar seus dados com o PyDesigner, caso optem por fazê-lo.
Todos os dados usados para desenvolver e testar o software foram coletados sob um protocolo de estudo aprovado pelo conselho de revisão institucional.
NOTA: O PyDesigner foi criado no MacOS 10.14 e requer um Windows Subsystem for Linux (WSL) para ser executado no Windows. Os mesmos comandos podem ser usados para sistemas Linux/Mac.
1. Compatibilidade do sistema operacional
2. Instale o FSL
NOTA: Todos os testes do PyDesigner foram feitos com o FSL versão 6.0.2 e recomenda-se o uso da v6.0.2 ou superior.
$ flirt -version
. Isso deve retornar o número da versão. Prossiga para a etapa 3.3. Crie um ambiente Conda
$ conda create -n mri python=3.7
. Use esse ambiente conda para todas as atividades relacionadas ao PyDesigner.Proceed ([y]/n)?
Enter y
.python=
A versão 3.7 é recomendada, pois o PyDesigner foi construído e testado nesta versão.4. Instale o MRtrix3
$ conda activate mri
y
para continuar o processo de download.$ mrinfo -h
5. Instale o PyDesigner
$ conda activate mri
$ pip install PyDesigner-DWI
$ pydesigner -v
6. Preparação de dados
NOTA: O PyDesigner funciona com vários tipos de arquivo, como .nii, .nii.gz, .mif e DICOM. No vídeo, os DICOMs são classificados e convertidos em NIfTI antes de usar esse pipeline de processamento de dMRI. Os arquivos NIfTI são mais fáceis de trabalhar porque são desidentificados e há um arquivo por sequência.
$ sudo apt installdcm2niix
$ dcm2niix -h
$ dcm2niix -f %s_%p_%d -o pathtosavefolder/ pathtorawdicoms/
7. Uso básico do PyDesigner
NOTA: O PyDesigner pode levar até 1,5 h para um único conjunto de dados, dependendo dos parâmetros de processamento e dos recursos do computador.
-s
ou -standard
. Esse comando executará o pipeline de pré-processamento recomendado na seguinte ordem: redução de ruído6, correção de toque de Gibbs7, correção de distorção EPI8, correção de movimento de corrente parasita9, criação de máscaras cerebrais e de líquido cefalorraquidiano (LCR), suavização, correção de viés de Rician, detecção de outlier11, estimativa de tensor e criação de mapas paramétricos.$ conda activate mri
$ pydesigner -h
. Esta documentação explica todos os comandos e sintaxe possíveis para o PyDesigner.$ pydesigner -s --verbose --rpe_pairs 1 -o ./output_folder/ ./input_folder/input1.nii ./input_folder/input2.nii
--verbose
: Use isso para exibir o console do PyDesigner à medida que ele processa dados (não necessário).--rpe pairs #
: Use isso para permitir que os usuários com uma sequência TOPUP acelerem o processo de correção de distorção EPI8 usando TOPUP. O # refere-se a quantos volumes B0 da sequência TOPUP serão usados. O uso de #=1 evita a superestimação do campo de distorção e reduz o tempo necessário para criar esse campo. Os usuários têm usado rotineiramente #=1 com resultados confiáveis. Ao usar #=1, o PyDesigner usará como padrão o primeiro volume.8. Uso avançado do PyDesigner: Adaptando o software às necessidades individuais dos usuários
NOTA: Ao adaptar o PyDesigner, omita o -s
sinalizador; esse sinalizador é o comando para pré-processamento automático.
$ conda activate mri
$ pydesigner flag1 flag2 flag3 -o ./output_folder/ ./input_folder/input1.nii
$ conda activate mri
-m
.-m
: Adicione este sinalizador para limitar o ajuste do tensor apenas aos voxels cerebrais. Isso acelera o ajuste do tensor + detecção de outliers.$ pydesigner -m -o ./output_folder/ ./input_folder/input1.nii
$ conda activate mri
-n
.$ pydesigner -n -o ./output_folder/ ./input_folder/input1.nii
9. Futuras atualizações do PyDesigner
NOTA: As atualizações podem ser encontradas no site23.
$ pip install --upgrade PyDesigner-DWI
10. Solução de problemas de instalação
$ pip install nameofmodule
$ pip install PyDesigner-DWI
11. Solução de problemas de erros de saída
12. Executando o PyDesigner com um conjunto de dados de exemplo
$ mkdir ./user_download_folder/ ds004945-download /PyDesigner_Outputs
$ conda activate mri
$ pydesigner - o ./user_download_folder/ds004945-download/PyDesigner_Outputs -s ./user_download_folder/ds004945-download/sub-01/dwi/sub-01_dwi.nii
O software PyDesigner aplica várias etapas de correção de imagem aos dados brutos de difusão e gera saídas usadas para melhorar a precisão dos arquivos brutos ao realizar análises. Cada etapa disponível no pipeline foi previamente validada por meio de publicações revisadas por pares 5,6,7,8,9,10,11, conforme discutido na introdução. As saídas do software podem ser usadas em análises como perfis de tractografia, matrizes de conectividade, análises de voxel, análises de ROI, análises de fODF, TBSS e análises baseadas em fixel.
O site do software23 lista todos os arquivos de saída gerados durante o pipeline de pré-processamento. Depois que cada prompt for executado, o console produzirá uma descrição de todos os processos concluídos. Existem 3 tipos de arquivos de saída: arquivos de processamento, métricas e controle de qualidade. A estrutura do diretório de saída é mostrada na Figura 1. Esses arquivos estão disponíveis ao usar o pré-processamento padrão (consulte a seção 7 do protocolo). Se o usuário precisar de uso mais avançado (consulte a seção 8 do protocolo), os arquivos de saída disponíveis dependerão de quais processos foram concluídos.
Figura 1: Representação visual do pipeline do PyDesigner. O pré-processamento começa fornecendo uma entrada 4D DWI para PyDesigner (canto superior esquerdo), que então passa por MP-PCA denoising para produzir um 4D DWI sem ruído e um mapa de ruído 3D. O DWI 4D com ruído passa por correção de toque de Gibbs, correção de polarização de Rician, TOPUP, correção de corrente parasita e correção de outlier. Uma máscara cerebral é então calculada para etapas subsequentes, detecção de outliers e ajuste de tensor para acelerar os cálculos, executando-os apenas dentro da máscara cerebral. As saídas podem ser encontradas em subdiretórios na pasta de processamento do assunto principal - intermediate_nifti, métricas e metrics_qc. Observe que as capturas de tela das saídas do PyDesigner não pretendem ser uma lista exaustiva de todas as saídas possíveis, mas sim fornecer um exemplo visual esquemático do que os usuários podem esperar. As saídas, tanto as saídas finais quanto os arquivos intermediários, variam de acordo com os dados de entrada do usuário e os sinalizadores de processamento empregados. Clique aqui para ver uma versão maior desta figura.
Processamento
Os arquivos de processamento são usados durante o pipeline do PyDesigner e são armazenados no diretório de saída raiz. Para cada etapa de pré-processamento, os arquivos DWI intermediários são salvos na pasta de saída "intermediate_nifti", conforme mostrado na Figura 1. Esses arquivos devem ser referenciados ao abordar quaisquer problemas com processamento ou saídas para avaliar cada etapa do pipeline separadamente.
Figura 2: Arquivos DWI NifTI intermediários ótimos e abaixo do ideal. A figura mostra o arquivo NIfTI intermediário para cada etapa de correção de imagem do pipeline do PyDesigner. A linha superior é um exemplo de saídas de arquivo intermediário ideais usando dados de um cérebro adulto saudável, a linha do meio é um exemplo de saídas de arquivo intermediário ideais usando dados de um cérebro patológico (meningioma) e a linha inferior exibe saídas de arquivo intermediário abaixo do ideal usando dados de um cérebro adulto saudável com um artefato de suscetibilidade não relacionado à estrutura ou saúde do cérebro. Clique aqui para ver uma versão maior desta figura.
Métricas
Essa pasta contém todos os mapas paramétricos que o PyDesigner calcula (consulte a Figura 1). Isso inclui mapas paramétricos para DTI/DKI, imagem de bola de fibra (FBI)/substância branca de bola de fibra (FBWM) e métricas de integridade do trato da substância branca (WMTI) (Tabela 1)16.
Tabela 1: Intervalo esperado de valores para métricas DTI/DKI e FBI/FBWM. A tabela inclui uma lista de métricas robustas de DTI, DKI, FBI e FBWM geradas pelo PyDesigner e seus intervalos de valores esperados. As sequências e valores b necessários (s/mm2) para derivar cada métrica também são listados. As métricas de DTI listadas são FA, MD, AD e RD. As métricas DKI listadas são MK, AK, RK e KFA. A métrica do FBI listada é a FAA. As métricas FBWM listadas são AWF, DA, DE_AX, DE_RAD e FAE.
Os usuários podem realizar o controle de qualidade visual e de valor (QC) das métricas de difusividade média (MD), anisotropia fracionada (FA) e curtose média (MK) para identificar resultados abaixo do ideal. Se essas métricas não forem ideais pelos padrões descritos abaixo, os usuários deverão examinar cada arquivo intermediário descrito na Figura 2 para determinar qual etapa de pré-processamento não foi bem-sucedida.
O controle de qualidade visual é usado para identificar resultados abaixo do ideal (por exemplo, problemas de ajuste de tensor e artefatos). Recomendamos o uso do ImageJ para controle de qualidade visual para garantir que nenhuma manipulação seja feita na imagem por meio dos padrões do software. A linha superior da Figura 3 mostra mapas métricos típicos de MD, FA e MK usando um limite biologicamente plausível de 0-3 μm2/ms, 0-1 μm2/ms e 0-2 μm2/ms, respectivamente (Figura 3 [linha superior]). O mapa MD deve ter os valores mais altos nos ventrículos e valores altos na substância cinzenta cortical (Figura 3A [linha superior]). O mapa de FA deve ter tratos aparentes de substância branca que são claros em todo o cérebro (Figura 3B [linha superior]). O mapa MK deve ter valores altos em WM e valores mais baixos na substância cinzenta e no LCR (Figura 3C [linha superior]). A Figura 3D [linha superior] é um exemplo de um mapa de métricas com problemas de ajuste de tensor, o que resulta em clusters de voxels de valor zero. Se ocorrer algum problema, revise o arquivo log_command.json para encontrar erros de pré-processamento. Revise os arquivos intermediários para determinar o erro específico. Para obter ajuda na solução de problemas, envie uma solicitação na página do GitHub do PyDesigner.
O controle de qualidade de valor é usado para identificar se os voxels de um determinado mapa métrico são relativamente uniformes entre os sujeitos para cada conjunto de dados. O intervalo de valores esperado para cada mapa e conjunto de dados depende dos dados e dos parâmetros PyDesigner. Em nosso conjunto de dados de teste, tivemos picos consistentes nas faixas de 8000 a 10.000, 2500 a 4000 e 5000 a 13.000 para MD, FA e MK, respectivamente, usando o binning de histograma padrão FSLeyes. A linha inferior da Figura 3 fornece exemplos de variabilidade do histograma. A Tabela 1 contém os valores esperados do eixo x para essas métricas. Voxels mais altos ou mais baixos são característicos do conjunto de dados ou indicam um problema de artefato ou pré-processamento (Figura 3D [linha inferior]).
Figura 3: Exemplos de mapas de métricas e histogramas do PyDesigner com resultados ótimos e abaixo do ideal. A linha superior mostra exemplos de mapas MD, FA e MK de assunto único usados para controle de qualidade visual. A linha inferior mostra histogramas de vários assuntos usados para o valor QC. (AC) Exemplos típicos de mapas métricos e histogramas que passam no controle de qualidade visual e de valor. Cada linha azul nos histogramas para cada tipo de métrica representa um conjunto de dados individual. Observe que cada conjunto de dados segue uma curva semelhante e se enquadra em um intervalo semelhante. (D) Um exemplo de um mapa métrico que não passa no controle de qualidade visual ou de valor. Observe como a linha vermelha no histograma mostra uma curva diferente da de A-C. Os voxels zero circulados neste mapa métrico são devidos a problemas de ajuste do tensor durante o pré-processamento (Painel D, linha superior). Este histograma é um exemplo de voxels geralmente mais altos ou mais baixos em um conjunto de dados do que o esperado (Painel D, linha inferior). Clique aqui para ver uma versão maior desta figura.
Controle de qualidade
Depois que o PyDesigner processar os dados, a pasta metrics_qc (consulte a Figura 1) deverá ser usada para identificar conjuntos de dados abaixo do ideal. Para cada conjunto de dados, o PyDesigner gera três gráficos usados para controle de qualidade.
Figura 4: histogramas de controle de qualidade gerados pelo PyDesigner para conjuntos de dados ótimos e abaixo do ideal. SNR, movimento de cabeça entre volumes e histogramas atípicos gerados pelo PyDesigner. Ambas as linhas representam dados de um cérebro adulto saudável. A linha superior é um exemplo de histogramas de controle de qualidade para um conjunto de dados ideal. A linha inferior mostra as saídas de controle de qualidade de um conjunto de dados abaixo do ideal com um artefato de suscetibilidade não relacionado à estrutura ou saúde do cérebro. Observe que o tamanho do texto dos rótulos nas saídas padrão do PyDesigner é menor do que eles aparecerão nesta figura. Aumentamos o tamanho do texto nesta figura para facilitar a leitura. Clique aqui para ver uma versão maior desta figura.
Os gráficos head_motion na Figura 4 mostram o deslocamento da cabeça em relação ao primeiro volume e ao volume anterior. Como visto na Figura 4 (painel 1), o deslocamento da cabeça é normalmente pequeno e o PyDesigner se ajusta para esses artefatos de movimento no pipeline de processamento padrão usando o programa FSL Eddy junto com TOPUP para correção de movimento e corrente parasita9. Para conjuntos de dados abaixo do ideal, o gráfico head_motion pode parecer vazio, conforme mostrado na Figura 4 (painel 4). Isso indica que a correção de movimento por correntes parasitas não foi bem-sucedida, portanto, o PyDesigner não conseguiu gerar um gráfico. Os arquivos de log de correção de correntes parasitas podem ser encontrados na subpasta de redemoinhos dentro da pasta metrics_qc (consulte a Figura 1). O gráfico de relação sinal-ruído (SNR) exibe 3 gráficos. Cada gráfico é para um valor b diferente e mostra os dados pré-processados e brutos. Para um conjunto de dados ideal, o pico de SNR de dados brutos deve ser ≥5 (Figura 4 [painel 2]). Conjuntos de dados abaixo do ideal terão um pico de SNR de dados brutos de ≤3 (Figura 4 [painel 5]). Idealmente, os usuários devem ver que o pico de SNR para todos os valores b aumenta ligeiramente, mas não drasticamente. O gráfico de valores discrepantes é encontrado na pasta de ajuste dentro metrics_qc e mostra a porcentagem de valores discrepantes no conjunto de dados (Figura 4 [painel 3 e 6]). Um bom conjunto de dados deve ter uma baixa porcentagem de valores discrepantes, normalmente inferior a 5% (Figura 4 [painel 3]). Um conjunto de dados abaixo do ideal terá uma grande porcentagem de valores discrepantes, conforme mostrado na Figura 4 (painel 6).
Exemplos de resultados do conjunto de dados
Depois que o PyDesigner terminar de processar o conjunto de dados de exemplo, todas as saídas deverão estar contidas na pasta "PyDesigner_Outputs". Essas saídas podem ser comparadas com as encontradas na pasta "derivados" empacotada com o conjunto de dados de exemplo baixado do OpenNeuro (processado no MacOS 12.4). Se o software for executado corretamente, a estrutura de arquivos de "PyDesigner_Outputs" e "derivados" será exatamente a mesma. Da mesma forma, os gráficos SNR, movimento da cabeça e outliers encontrados na subpasta "metrics_qc" devem corresponder aos da Figura 5A. Os mapas métricos (encontrados na subpasta "métricas") podem ser comparados por meio de software de imagem como FSLeyes, MRIcron, ImageJ, etc. Histogramas de valores de FA, MD e MK de pré-processados/métricas podem ser vistos na Figura 5B. Observe que todos os histogramas de métrica mostrados na Figura 5B são dimensionados com base nas escalas de valores de métrica sugeridas na Tabela 1.
Figura 5: Exemplo de histogramas métricos e de controle de qualidade métricos. (A) SNR, movimento da cabeça entre volumes e histogramas discrepantes gerados pelo PyDesigner para os dados de exemplo baixados do OpenNeuro. Observe que o tamanho do texto foi aumentado nos gráficos nesta figura para facilitar a leitura. (B) Histogramas de mapas de métricas de assunto único de contagens de valores de voxel para FA, MD e MK para o mesmo conjunto de dados, visualizados por meio do FSLeyes v6.0. Clique aqui para ver uma versão maior desta figura.
Figura 6: Mapas DTI e DKI derivados de PyDesigner, DESIGNER, DKE e DIPY. O ajuste do tensor foi realizado com a restrição Kapp > 0 no PyDesigner, DESIGNER5 e Diffusional Kurtosis Estimator (DKE)27, enquanto o ajuste irrestrito foi usado no Diffusion Imaging in Python (DIPY)28 devido a limitações de software. As unidades para MD são micrômetros quadrados por milissegundo (μm2/ms), enquanto as outras métricas são adimensionais. Desistências devido a um problema genérico da correção de toque de Gibbs podem ser vistas em mapas MK produzidos por DESIGNER, DKE e DIPY. Essa figura foi reproduzida com permissão de Dhiman et al.29. Clique aqui para ver uma versão maior desta figura.
Figura 7: Comparação de FA, MD e MK entre pipelines. A distribuição dos valores calculados para FA, MD e MK de PyDesigner, DESIGNER5, DKE27 e DIPY28 em cérebros excluídos do LCR é semelhante na maioria dos voxels. O cálculo do mapa métrico entre os métodos é comparável. Essa figura foi reproduzida com permissão de Dhiman et al.29. Clique aqui para ver uma versão maior desta figura.
A principal motivação para o desenvolvimento do PyDesigner foi implementar os elementos-chave do DESIGNER enquanto substituía todo o código MATLAB por Python, permitindo assim maior portabilidade e acessibilidade. PyDesigner e DESIGNER Dv1 produzem saídas quase idênticas29. No entanto, existem algumas opções adicionais, configurações padrão e pequenas correções de bugs incluídas no PyDesigner. A documentação online do PyDesigner16 descreve isso em detalhes.
O PyDesigner também produz resultados semelhantes às ferramentas de análise DKI Diffusional Kurtosis Estimator (DKE)27 e Diffusion Imaging in Python (DIPY)28 comumente usadas29 (ver Figura 6 e Figura 7), mas os mapas gerados com base no dMRI pré-processado pelo DESIGNER são considerados mais precisos devido ao seu algoritmo de ajuste, conforme demonstrado por Ades-Aron et al.5. Consulte a Figura 6 para obter uma comparação dos mapas de métricas MD, FA e MK do PyDesigner, DESIGNER5, DKE27 e DIPY28. A Figura 7 mostra a comparação dos histogramas MD, FA e MK de cada pipeline. A combinação de ajuste de tensor restrito, detecção de outliers e correção do coeficiente de curtose aparente produz um ajuste de tensor mais robusto e preciso, como visto no PyDesigner e no DESIGNER5.
Uma vantagem do PyDesigner sobre o DESIGNER Dv1 é que ele está disponível por meio do contêiner NeuroDock Docker30, o que aumenta muito a portabilidade e simplifica a instalação. Esse contêiner é executado em todas as principais plataformas de sistema operacional compatíveis com o Docker, incluindo Windows, Mac OS e várias distribuições Linux. Com base nos comentários do usuário, o PyDesigner v2.0 incluirá atualizações para o PyDesigner Docker Container. As melhorias introduzidas pela nova versão do PyDesigner e a introdução de um Dockerfile de vários estágios resolverão todos os problemas existentes que os usuários estão enfrentando. Se os usuários tiverem problemas com a instalação, recomendamos enviar perguntas para a páginade discussão 16 do PyDesigner. A tecnologia de contêiner do Docker também permite a implantação direta em clusters de alto desempenho (HPCs) para processamento em lote de DWIs rapidamente em clusters locais compatíveis com o Docker.
O PyDesigner também inclui cálculos de modelagem microestrutural que vão além do DKI, incluindo WMTI3, FBI e FBWM. Para WMTI, um conjunto de dados DKI padrão é adequado e os parâmetros microestruturais associados são calculados por padrão. No entanto, deve-se enfatizar que a validade do WMTI é restrita a regiões da substância branca com alta AF (ou seja, FA ≥ 0,4). Algumas métricas WMTI têm precisão limitada devido à suposição de alinhamento paralelo de axônios em qualquer voxel31. FBI 32,33,34 é um método distinto de dMRI aplicável em toda a substância branca cerebral, que requer um alto valor b (ou seja, b ≥ 4000 s/mm 2) e dados de dMRI amostrados com um mínimo de 64 direções de codificação de difusão (junto com dados para b = 0). As principais saídas do FBI são a função de densidade de orientação de fibra (fODF) para cada voxel de substância branca, que pode ser usada para tractografia de substância branca e serve como entrada para FBWM, bem como a anisotropia fracionada intra-axonal (FAA). O FBWM utiliza os dados de dMRI do DKI e do FBI para estimar os mesmos parâmetros do WMTI, mas com maior precisão, e pode ser aplicado em toda a substância branca, independentemente do valor de FA. Assim, se esses dados adicionais estiverem disponíveis, as estimativas do FBWM são preferidas às do WMTI35. Tal como acontece com o FBI, o FBWM só foi validado na substância branca cerebral adulta.
Além das invariantes rotacionais fornecidas pelo PyDesigner (orientação RAS), os arquivos .fib específicos do DSIstudio (orientação LPS) são produzidos separadamente para DTI, DKI e FBI. Os arquivos .fib contêm informações direcionais ODF para gerar perfis de tractografia para cada método. Os perfis de tractografia resultantes podem ser usados para gerar matrizes de conectividade nos níveis de assunto e grupo. Os arquivos .fib DKI e FBI contêm informações multidirecionais que retransmitem informações de fibra cruzada que não estão disponíveis com a tractografia DTI. Além disso, dentro de cada arquivo .fib, os vários invariantes rotacionais de cada método foram incluídos, que podem ser usados em várias combinações como critérios para semear, executar e parar a tractografia. Mais detalhes sobre o DSIstudio podem ser encontrados em seu site36.
Outro recurso notável do PyDesigner é a entrada de vários arquivos, que permite lidar com várias entradas de arquivo - NifTi (.nii), NifTi compactado (.nii.gz), DICOM (.dcm) e formato de arquivo MRtrix (.mif). O PyDesigner pode identificar automaticamente as informações de aquisição dos metadados do cabeçalho, independentemente do formato de entrada, e executar correções de acordo, dando suporte a uma abordagem sem intervenção. Independentemente das diferenças nos protocolos, o mesmo comando (veja acima) pode ser usado para processar uma ampla variedade de DWIs. Assim, este software economiza tempo e esforço, minimizando as etapas e comandos de pré-processamento manual. Em uma atualização lançada recentemente (v1.0-RC10), isso foi aprimorado com a introdução da compatibilidade para vários conjuntos de dados de tempo de eco (multi-TE). Isso permite que o PyDesigner execute etapas de pré-processamento de imagem, que são amplamente independentes do TE, em um DWI multi-TE para produzir uma imagem com o mínimo de ruído e artefatos. Os cálculos de tensores dependentes de TE são então realizados em cada TE separadamente para produzir métricas de difusão ou curtose.
Observamos que o PyDesigner v1.0 não representa um ponto de extremidade no design de pipelines de pré-processamento de imagem. O desenvolvimento e validação de ferramentas de processamento de imagens é uma área ativa de pesquisa. Em particular, durante a preparação deste manuscrito, novos desenvolvimentos em redução de ruído de imagem e remoção de anel de Gibbs foram propostos, resultando no lançamento de um pipeline Designer revisado, Designer Dv237, que inclui redução de ruído aprimorada e correção de artefatos de Gibbs para dMRI adquiridos com aquisições parciais de Fourier35, e está disponível no DESIGNER Github38. Da mesma forma, a conformidade organizacional do BIDS39 é uma faceta importante de qualquer pipeline de análise de ressonância magnética. O formato BIDS permite um compartilhamento de dados mais eficiente e a implementação de pipeline, estabelecendo uma estrutura de conjunto específica para todos os tipos de dados de MRI. Embora o PyDesigner não seja atualmente compatível com o BIDS, uma próxima versão do PyDesigner incluirá saídas compatíveis com o BIDS. Além disso, o PyDesigner foi originalmente escrito usando o Python versão 3.7. No momento desta publicação, o Python 3.7 agora é considerado desatualizado. No entanto, as informações contidas neste manuscrito são independentes da versão Python. Ou seja, os procedimentos descritos aqui que são funções importantes de pré-processamento (por exemplo, redução de ruído, correção de toque de Gibbs, etc.) seguirão o mesmo fluxo de trabalho operacional e conceitual, independentemente das alterações nos procedimentos de instalação. É importante ressaltar que, como acontece com todos os softwares baseados em Python, as versões futuras do PyDesigner serão atualizadas para uma nova versão do Python. Nós nos esforçamos para validar e integrar esses desenvolvimentos ainda mais ao longo do tempo.
Para obter a versão mais atualizada do PyDesigner, incluindo qualquer nova documentação relevante para as atualizações de versão do Python, os leitores são incentivados a consultar o site antes de iniciar uma nova análise e participar do fórum de discussão onde perguntas sobre o PyDesigner podem ser enviadas16. A implementação do Docker para portabilidade é chamada de NeuroDock30, que contém o PyDesigner e suas dependências para permitir o processamento em uma ampla variedade de plataformas.
Nenhum.
Somos gratos pelas discussões úteis com Olivia Horn, Daniel Lench e Graham Warner.
A pesquisa relatada nesta publicação foi apoiada, em parte, pelos subsídios do National Institutes of Health R01AG054159, R01AG057602, R01AG055132, R01DC014021, R01NS110347, R21DA050085, F31NS108623, P20GM109040, P50DC000422, T32GM008716 e T32DC014435. O conteúdo é de responsabilidade exclusiva dos autores e não representa necessariamente as opiniões oficiais dos Institutos Nacionais de Saúde. Financiamento adicional foi fornecido pela Fundação Litwin.
Name | Company | Catalog Number | Comments |
Python version 3.7 or above | Python Software Foundation | https://www.python.org/ | |
FMRIB Software Library (FSL) verison 6.0.2 or above | University of Oxford Centre for Integrative Neuroimaging | https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/ | |
MRtrix3 version 3.0_RC3 or above | numerous contributors | https://www.mrtrix.org/ | |
Anaconda | Anaconda | https://anaconda.org/ | |
Computer | Apple | Mac OS 10.14 | Built on Mac OS 10.14; tested on Mac OS 12.4, Mac OS 13, Windows 11 via WSL |
Solicitar permissão para reutilizar o texto ou figuras deste artigo JoVE
Solicitar PermissãoThis article has been published
Video Coming Soon
Copyright © 2025 MyJoVE Corporation. Todos os direitos reservados