{ "info": { "author": "Nicholas McKibben", "author_email": "nicholas.bgp@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "SSFP\n====\n\nSimple steady-state free precession simulation. The goal is to\nprovide a simple to use, pip-installable solution for simulating this\nwonderful pulse sequence.\n\nIn this package:\n\n- bSSFP: `bssfp()`\n- GS solution: `gs_recon()`\n\nInstallation\n============\n\nShould be as easy as:\n\n.. code-block:: bash\n\n pip install ssfp\n\nUsage\n=====\n\nSee `ssfp.examples` for typical usage. You can run examples like:\n\n.. code-block:: bash\n\n python -m ssfp.examples.basic_bssfp\n\nBalanced steady-state free precession can be called through `bssfp()`.\nThis is an implementation of equations [1--2] in [1]_. These\nequations are based on the Ernst-Anderson derivation [2]_ where\noff-resonance is assumed to be subtracted as opposed to added (as in\nthe Freeman-Hill derivation [3]_). Hoff actually gets Mx and My\nflipped in the paper, so we fix that here. We also assume that\nthe field map will be provided given the Freeman-Hill convention.\n\n.. code-block:: python\n\n from ssfp import bssfp\n\n # Here's the simplest usage, see docstring for all the possible\n # function arguments\n sig = bssfp(T1, T2, TR, alpha)\n\nWe can also easily get the Geometric Solution to the elliptical\nsignal model as described in [1]_ as follows:\n\n.. code-block:: python\n\n from ssfp import gs_recon\n recon = gs_recon(phased_cycled_images, pc_axis=-1)\n\n # Notice that we can specify the axis where the phase-cycles live\n\nPLANET [4]_ is a method for simultaneous T1, T2 fitting for bSSFP\nphase-cycled data. Call like this:\n\n.. code-block:: python\n\n from ssfp import planet\n\n # For a single pixel:\n Meff, T1, T2 = planet(\n phased_cycled_pixels, alpha, TR, T1_guess,\n pcs=np.deg2rad([0, 90, 180, 270, etc...]))\n\nReferences\n==========\n.. [1] Xiang, Qing\u2010San, and Michael N. Hoff. \"Banding artifact\n removal for bSSFP imaging with an elliptical signal\n model.\" Magnetic resonance in medicine 71.3 (2014):\n 927-933.\n.. [2] Ernst, Richard R., and Weston A. Anderson. \"Application of\n Fourier transform spectroscopy to magnetic resonance.\"\n Review of Scientific Instruments 37.1 (1966): 93-102.\n.. [3] Freeman R, Hill H. Phase and intensity anomalies in\n fourier transform NMR. J Magn Reson 1971;4:366\u2013383.\n.. [4] Shcherbakova, Yulia, et al. \"PLANET: an ellipse fitting\n approach for simultaneous T1 and T2 mapping using\n phase\u2010cycled balanced steady\u2010state free precession.\"\n Magnetic resonance in medicine 79.2 (2018): 711-722.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mckib2/ssfp", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "ssfp", "package_url": "https://pypi.org/project/ssfp/", "platform": "", "project_url": "https://pypi.org/project/ssfp/", "project_urls": { "Homepage": "https://github.com/mckib2/ssfp" }, "release_url": "https://pypi.org/project/ssfp/0.2.0/", "requires_dist": [ "numpy (>=1.17.2)", "matplotlib (>=3.1.1)", "scikit-image (>=0.15.0)", "phantominator (>=0.4.3)", "tqdm (>=4.36.1)" ], "requires_python": ">=3.6", "summary": "SSFP simulation", "version": "0.2.0" }, "last_serial": 5896681, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "30df08b021e190956a5b14625f98a7f5", "sha256": "bee3f1ce13d8a3176f767b578114a74f2fca0f83379f77e0d7a9db655ee370e6" }, "downloads": -1, "filename": "ssfp-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "30df08b021e190956a5b14625f98a7f5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 18154, "upload_time": "2019-09-26T16:12:59", "url": "https://files.pythonhosted.org/packages/da/0c/e37ca2799c3da47686e1cd03620814fe997646f109e41e5636664781209f/ssfp-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9a9d54a6e4da5021db603c9d90990bc", "sha256": "fc77acb53774e6fb393009714985c069fa8eefd571a74ae6801dcf1e445bbbb6" }, "downloads": -1, "filename": "ssfp-0.0.1.tar.gz", "has_sig": false, "md5_digest": "d9a9d54a6e4da5021db603c9d90990bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4785, "upload_time": "2019-09-26T16:13:04", "url": "https://files.pythonhosted.org/packages/a7/8a/75975952c23a4103955bad88730f34da9b3a35674cd35c5388f38ae1307a/ssfp-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "07bbbfe0d6a7ab1bcb2e13c70fb549ef", "sha256": "dd6a32f1a56197891a9cbec64fa2abd4b10f8acae682cdb7b8b3d726d6105a9f" }, "downloads": -1, "filename": "ssfp-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "07bbbfe0d6a7ab1bcb2e13c70fb549ef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 22230, "upload_time": "2019-09-26T17:02:37", "url": "https://files.pythonhosted.org/packages/24/c6/fd4369919f4d6c423951b50aef0ac1c62175fa0a2cce0443c7c8f9bca298/ssfp-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e650066674fbd40ce1a8db1683b5fe17", "sha256": "c786c6218ce708442d2f4d6fd3deaaa07c703c4f1896a50281d17504e1941bb2" }, "downloads": -1, "filename": "ssfp-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e650066674fbd40ce1a8db1683b5fe17", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8022, "upload_time": "2019-09-26T17:02:39", "url": "https://files.pythonhosted.org/packages/1f/e9/67fce5edfa59bcff179140025190c69eeba02a2e4ad56c4c6bace1e33926/ssfp-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "37b2bde9ebfb9caf4ea192a7442bd6c8", "sha256": "077c10f4e67a7f6ab322b60afca4c8f010a2db1ca7a6a263078136486c46e6a9" }, "downloads": -1, "filename": "ssfp-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "37b2bde9ebfb9caf4ea192a7442bd6c8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 28307, "upload_time": "2019-09-27T15:21:30", "url": "https://files.pythonhosted.org/packages/da/3b/cd78083976193de364d3d7a2a5a1a6726f6157662277c345620c6c0d7a76/ssfp-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e5b54c7e47991be99f1d3d1ecd50c21", "sha256": "02af2e2af20e88d81f931e6c393576ef6c686c4278b742782bfff0ed39168b03" }, "downloads": -1, "filename": "ssfp-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0e5b54c7e47991be99f1d3d1ecd50c21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 13486, "upload_time": "2019-09-27T15:21:32", "url": "https://files.pythonhosted.org/packages/e4/b5/9bafa4606b924059997dd85bdc19a1440c0f0b8c1dfd4ae5036ab2aa1cd1/ssfp-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "37b2bde9ebfb9caf4ea192a7442bd6c8", "sha256": "077c10f4e67a7f6ab322b60afca4c8f010a2db1ca7a6a263078136486c46e6a9" }, "downloads": -1, "filename": "ssfp-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "37b2bde9ebfb9caf4ea192a7442bd6c8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 28307, "upload_time": "2019-09-27T15:21:30", "url": "https://files.pythonhosted.org/packages/da/3b/cd78083976193de364d3d7a2a5a1a6726f6157662277c345620c6c0d7a76/ssfp-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e5b54c7e47991be99f1d3d1ecd50c21", "sha256": "02af2e2af20e88d81f931e6c393576ef6c686c4278b742782bfff0ed39168b03" }, "downloads": -1, "filename": "ssfp-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0e5b54c7e47991be99f1d3d1ecd50c21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 13486, "upload_time": "2019-09-27T15:21:32", "url": "https://files.pythonhosted.org/packages/e4/b5/9bafa4606b924059997dd85bdc19a1440c0f0b8c1dfd4ae5036ab2aa1cd1/ssfp-0.2.0.tar.gz" } ] }