{"id":17646656,"url":"https://github.com/davidssmith/tron","last_synced_at":"2025-05-07T07:11:55.822Z","repository":{"id":150476369,"uuid":"45285624","full_name":"davidssmith/TRON","owner":"davidssmith","description":"Trajectory Optimized Nufft","archived":false,"fork":false,"pushed_at":"2021-02-04T02:07:38.000Z","size":3323,"stargazers_count":31,"open_issues_count":1,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-25T22:43:25.580Z","etag":null,"topics":["fft","gpu-acceleration","mri","mri-reconstruction","nfft","parallel-algorithm","parallel-computing","radial-projection","sampling","signal-processing"],"latest_commit_sha":null,"homepage":null,"language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidssmith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-10-31T02:17:55.000Z","updated_at":"2024-11-28T19:39:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"c68355c5-42ef-44ce-8566-6489ee1aaacd","html_url":"https://github.com/davidssmith/TRON","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidssmith%2FTRON","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidssmith%2FTRON/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidssmith%2FTRON/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidssmith%2FTRON/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidssmith","download_url":"https://codeload.github.com/davidssmith/TRON/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242902611,"owners_count":20204130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fft","gpu-acceleration","mri","mri-reconstruction","nfft","parallel-algorithm","parallel-computing","radial-projection","sampling","signal-processing"],"created_at":"2024-10-23T11:04:57.427Z","updated_at":"2025-03-10T18:31:27.413Z","avatar_url":"https://github.com/davidssmith.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TRON: TRajectory Optimized Nufft\n\n\u003cimg src=\"tron_recon.png\" alt=\"TRON recon\" /\u003e\n\n## Introduction\n\nThis is the repository for the paper, \"[Trajectory Optimized Nufft: Faster Non-Cartesian MRI Reconstruction through\nPrior Knowledge and Parallel Architectures](https://onlinelibrary.wiley.com/doi/10.1002/mrm.27497)\".\n\nFast non-Cartesian MRI reconstruction (\"gridding\") requires interpolation of\nnon-uniformly sampled Fourier data onto a Cartesian grid. This interpolation\nis slow due to complicated, non-local data access patterns that are hard to\noptimize for modern, parallel CPU architectures.\n\nTRON is a gridding code customized for a standard radial (both linear and\ngolden angle) trajectory and Nvidia's CUDA architecture to eliminate the\nbottlenecks that gridding algorithms encounter when written for arbitrary\ntrajectories and hardware.\n\nTRON is 30x faster than gpuNUFFT (a fast GPU code) and 75x faster than the\nimage reconstruction toolbox (IRT) of Fessler (a ubiquitous CPU-based Matlab\ncode). TRON eliminates the need to presort data or perform a separate sample\ndensity compensation, while  comprising 50% less code than the minimal subset\nof IRT tested.\n\n## Reproducing the Paper Results\n\nTo get generate the paper figures and data, follow these steps:\n\nRequirements: Newish version of MATLAB and CUDA.\n\n\n0. Make sure you have a working CUDA installation with cuFFT and the compiler `nvcc` in\n   your path.\n\n1. Clone and compile [TRON](https://github.com/davidssmith/TRON) into your folder of choice.\n\n2. Pull the TRON example data from the LFS server using `git-lfs pull` in the\n   folder where you cloned TRON.\n\n3. Clone and compile [gpuNUFFT](https://github.com/andyschwarzl/gpuNUFFT) into your folder of choice.\n\n4. Clone and compile [BART](https://github.com/mrirecon/bart) into your folder of choice.\n\n5. Correct the path to gpuNUFFT and BART in the RUNME2 script.\n\n6. Run `src/RUNME1_tron_degrid_phantom.sh` on the command line.\n\n7. Change to the `src/` subdirectory and run `src/RUNME2_others_degrid_phantom.m` \n   in MATLAB. This should not take long to finish.\n\n8. Go back to the command line and run `src/RUNME3_tron_grid_all.sh`. This will\n   also not take long.\n\n9. Go back to MATLAB and run `./RUNME4_others_grid_all.m`. This is slow. An hour\n   is normal. Put your feet up and read our paper while you wait.\n\n10. If all steps run without errors, you're done. Congratulations! The\n   paper figures should be in `src/figs` and the reconstructions will be in \n   `src/output`.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidssmith%2Ftron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidssmith%2Ftron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidssmith%2Ftron/lists"}