{ "info": { "author": "Ben George", "author_email": "ben.geroge@oncology.ox.ac.uk", "bugtrack_url": null, "classifiers": [], "description": "# Process MOLLI and shMOLLI data\n\nReads a directory of shMOLLI DICOM images and processes the data to produce a look-locker corrected T1 map. Negative values are cropped to 0.\n\nTwo possible methods for processing the data are available.\n\n1. Fast (default). Uses some numerical methods to solve exponential equations of the correct form. May be slightly less accurate, but significantly faster.\n\n2. Slow. Uses scipy curve fitting algorithm to fit the exponential curve. More accurate, but much slower.\n\nThe difference between the two methods is very little as demonstrated in the figure below.\n\n![fast_slow comparison](fast_slow.tif \"Comparison of fast and slow fitting methods\")\n\nAny pixels/voxels where the max value is less than 100 is skipped. NB: For this version, data is processed top-left to bottom-right in the image. As images are often empty around the edges, this means the the processing is 'fast' to start with as each pixel is basically skipped, then slows down as the true data is processed, then speeds up again at the end.\n\n## Usage\n\nAs module\n```python\n> pip3 install sh_molli\n> process_sh_molli_series.py -i -o -p -m \n```\n\nIn code\n```python\n> python3\n> import sh_molli.sh_molli as sh\n> im = sh.process_folder(dir,method='fast')\n```\n\n-i - input folder must be a path containing DICOM images only Can process data based on 'Inversion Time' being stored in dcm.TriggerTime, dcm.InversionTime and dcm.ImageComments\n\n-o - output file name. Uses PIL for image writing, so supports all formats that PIL understands. Recommended using example.tiff to ensure that large values are not cropped\n\n-p - plot flat (1, 0 or not present). If 1, the image will be displayed using matplotlib once the data is processed. Colorbar is cropped to 0-2000 range, sensible values for human tissue.\n\n-m - method. ('fast' or 'slow'). See above.\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "sh-molli", "package_url": "https://pypi.org/project/sh-molli/", "platform": "", "project_url": "https://pypi.org/project/sh-molli/", "project_urls": null, "release_url": "https://pypi.org/project/sh-molli/0.0.55/", "requires_dist": [ "pydicom", "numpy", "scipy", "tqdm", "matplotlib" ], "requires_python": "", "summary": "Package to process (sh)MOLLI MRI data", "version": "0.0.55" }, "last_serial": 5450767, "releases": { "0.0.5": [ { "comment_text": "", "digests": { "md5": "6e5b19ac74c415185ee5f7d9f6e3befe", "sha256": "c0ec5f7c07f60f63373c8c4c08f97794c496f58a90f330f63f9bbbec60ac69c2" }, "downloads": -1, "filename": "sh_molli-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "6e5b19ac74c415185ee5f7d9f6e3befe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18905, "upload_time": "2019-06-18T10:08:19", "url": "https://files.pythonhosted.org/packages/0e/ae/b0ff273b2c5dddec111dfef863763d8d605e77ee6139a9cdb7a01cd76819/sh_molli-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69207eb440c475ad6fc24365e16005cb", "sha256": "bc5e97c7b0a05d8a0d6f8753a8c3ce2b4c68ba91d1a0e3b31c65e97c17283c40" }, "downloads": -1, "filename": "sh_molli-0.0.5.tar.gz", "has_sig": false, "md5_digest": "69207eb440c475ad6fc24365e16005cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3960, "upload_time": "2019-06-18T10:08:20", "url": "https://files.pythonhosted.org/packages/a9/00/726e1ba6e352d94147170b910d7d115d2b5870a8289d31affb1e1332cc34/sh_molli-0.0.5.tar.gz" } ], "0.0.51": [ { "comment_text": "", "digests": { "md5": "35f064a9535bff1f95fe1f3849e58a4c", "sha256": "81b73ef58fcaab2db8bed139517f7059f4fd5050d2ace1850d7fd495e945078c" }, "downloads": -1, "filename": "sh_molli-0.0.51-py3-none-any.whl", "has_sig": false, "md5_digest": "35f064a9535bff1f95fe1f3849e58a4c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18908, "upload_time": "2019-06-14T09:48:23", "url": "https://files.pythonhosted.org/packages/2d/1f/36a6906ac52193bb95025a4267c73f53eae0ae9b413bc5dab0aabb9f6930/sh_molli-0.0.51-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a03ef36993f1b023a3304e6a95553c5", "sha256": "c7770371cff5249086f8e88c1aeb87c846d225a170e61dc15e63efaa11ddbba1" }, "downloads": -1, "filename": "sh_molli-0.0.51.tar.gz", "has_sig": false, "md5_digest": "2a03ef36993f1b023a3304e6a95553c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3979, "upload_time": "2019-06-14T09:48:26", "url": "https://files.pythonhosted.org/packages/db/b9/6dbea0f0c2f1e6d107d7b78a32e34aee06ce27fcc022744027df5ea323a7/sh_molli-0.0.51.tar.gz" } ], "0.0.52": [ { "comment_text": "", "digests": { "md5": "7a3173eda1c6e63ef8350c41f85b9772", "sha256": "87ef281f2f5d51bc24874ac45862787f42ba81a2fb3b5cae5d6f3b0b8ae26ea2" }, "downloads": -1, "filename": "sh_molli-0.0.52-py3-none-any.whl", "has_sig": false, "md5_digest": "7a3173eda1c6e63ef8350c41f85b9772", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18920, "upload_time": "2019-06-18T10:09:02", "url": "https://files.pythonhosted.org/packages/31/da/946c4f0adb201c6f2a79ca775c649a486620e09ee2d821fc8b2d7f2f74a7/sh_molli-0.0.52-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d1b72a984923b69f87d59a2b4513c53", "sha256": "391e2f30cdb843107d6e782992fa1d60411968ec054af76060339fef1a71a1a8" }, "downloads": -1, "filename": "sh_molli-0.0.52.tar.gz", "has_sig": false, "md5_digest": "5d1b72a984923b69f87d59a2b4513c53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3962, "upload_time": "2019-06-18T10:09:04", "url": "https://files.pythonhosted.org/packages/fa/4a/a8065cd408cb96f1fd14c0865b722ab6f65254a9ba840ac9df3d6572d9f0/sh_molli-0.0.52.tar.gz" } ], "0.0.53": [ { "comment_text": "", "digests": { "md5": "80e2f2c4f8649329cdecc7a854eec7fa", "sha256": "55703e1d3bd02edd4b5c8646a4daa593951cf6ea9a1e567b73632aa059de82dd" }, "downloads": -1, "filename": "sh_molli-0.0.53-py3-none-any.whl", "has_sig": false, "md5_digest": "80e2f2c4f8649329cdecc7a854eec7fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18964, "upload_time": "2019-06-18T11:06:31", "url": "https://files.pythonhosted.org/packages/48/ec/d2ed44345ff89fb5217ea7c1433123c5227a9f9aab66222bb6d820e54968/sh_molli-0.0.53-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "add88bc2ba5dd9eba0ba01c24dc53983", "sha256": "233e2a94f0fc1fed45b223b81abf99e66ef9d84486cd457e8133f4174d54ce82" }, "downloads": -1, "filename": "sh_molli-0.0.53.tar.gz", "has_sig": false, "md5_digest": "add88bc2ba5dd9eba0ba01c24dc53983", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4017, "upload_time": "2019-06-18T11:06:32", "url": "https://files.pythonhosted.org/packages/0b/e0/a012c50926c18a79fdd0876b10537adfa2db47c419206f624e4cff3c0c72/sh_molli-0.0.53.tar.gz" } ], "0.0.54": [ { "comment_text": "", "digests": { "md5": "772e8af2d97bd93045d7c388d9bc1dea", "sha256": "1408c7bb9f0619c2b1a15a28893874476367f52b7a5001dc5aeede96c5f129dc" }, "downloads": -1, "filename": "sh_molli-0.0.54-py3-none-any.whl", "has_sig": false, "md5_digest": "772e8af2d97bd93045d7c388d9bc1dea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19997, "upload_time": "2019-06-18T11:55:09", "url": "https://files.pythonhosted.org/packages/97/52/daa26b51e774553aa02d663144ab9cedd60a5d568c694a50c7cde20a5cf0/sh_molli-0.0.54-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "60137c66ab1d656a8b0a406ced78ac04", "sha256": "1137aabf7f2c7e483ca0bf59e7a7e711f1e7283601cea3254e7b5e9fe36792a2" }, "downloads": -1, "filename": "sh_molli-0.0.54.tar.gz", "has_sig": false, "md5_digest": "60137c66ab1d656a8b0a406ced78ac04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5126, "upload_time": "2019-06-18T11:55:11", "url": "https://files.pythonhosted.org/packages/4f/bd/ec582b1e402d04efdaef31bd04beceb6c41c348a2cb5de1a0f0d030bd697/sh_molli-0.0.54.tar.gz" } ], "0.0.55": [ { "comment_text": "", "digests": { "md5": "6b71ce453f9b3bb2dc418a8cd28d735d", "sha256": "7151e636ae39a64d0ac911b2d33f9117fb28d7cec7284d7e2834ed2a61631436" }, "downloads": -1, "filename": "sh_molli-0.0.55-py3-none-any.whl", "has_sig": false, "md5_digest": "6b71ce453f9b3bb2dc418a8cd28d735d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20380, "upload_time": "2019-06-26T09:46:34", "url": "https://files.pythonhosted.org/packages/b7/cd/0799b112f465be257ec15103710bbc84d0b467d4c0780071eb64fa4491ac/sh_molli-0.0.55-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c57beda197b20df3797cb6213d453aba", "sha256": "7993ce0962d7ab0451d28f0b381daf2fb9a1171f97c46fed4a20df3419d9c123" }, "downloads": -1, "filename": "sh_molli-0.0.55.tar.gz", "has_sig": false, "md5_digest": "c57beda197b20df3797cb6213d453aba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5467, "upload_time": "2019-06-26T09:46:36", "url": "https://files.pythonhosted.org/packages/4a/80/71e91989a2dfa8e02d86df6976d0db0e8660ad41416d1e1b8e5074a0c7a8/sh_molli-0.0.55.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6b71ce453f9b3bb2dc418a8cd28d735d", "sha256": "7151e636ae39a64d0ac911b2d33f9117fb28d7cec7284d7e2834ed2a61631436" }, "downloads": -1, "filename": "sh_molli-0.0.55-py3-none-any.whl", "has_sig": false, "md5_digest": "6b71ce453f9b3bb2dc418a8cd28d735d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20380, "upload_time": "2019-06-26T09:46:34", "url": "https://files.pythonhosted.org/packages/b7/cd/0799b112f465be257ec15103710bbc84d0b467d4c0780071eb64fa4491ac/sh_molli-0.0.55-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c57beda197b20df3797cb6213d453aba", "sha256": "7993ce0962d7ab0451d28f0b381daf2fb9a1171f97c46fed4a20df3419d9c123" }, "downloads": -1, "filename": "sh_molli-0.0.55.tar.gz", "has_sig": false, "md5_digest": "c57beda197b20df3797cb6213d453aba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5467, "upload_time": "2019-06-26T09:46:36", "url": "https://files.pythonhosted.org/packages/4a/80/71e91989a2dfa8e02d86df6976d0db0e8660ad41416d1e1b8e5074a0c7a8/sh_molli-0.0.55.tar.gz" } ] }