https://github.com/jamesrswift/ionio-illustrate
A Typst package for rendering and annotating mass spectrometric data
https://github.com/jamesrswift/ionio-illustrate
mass-spectrometry typst-package
Last synced: 7 months ago
JSON representation
A Typst package for rendering and annotating mass spectrometric data
- Host: GitHub
- URL: https://github.com/jamesrswift/ionio-illustrate
- Owner: jamesrswift
- License: mit
- Created: 2023-10-21T15:59:15.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-01T11:15:10.000Z (over 1 year ago)
- Last Synced: 2025-03-01T23:17:40.504Z (7 months ago)
- Topics: mass-spectrometry, typst-package
- Language: Typst
- Homepage:
- Size: 3.87 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# The `ionio-illustrate` package
This package implements a Cetz chart-like object for displying mass spectrometric data in Typst documents. It allows for individually styled mass peaks, callouts, titles, and mass callipers.
Explore the docs »
Report Bug
·
Request Feature
## Getting Started
To make use of the `ionio-illustrate` package, you'll need to add it to your project like shown below. Make sure you are importing a version that supports your end goal.```typst
#import "@preview/ionio-illustrate:0.3.0": *
```Then, load in your mass spectrum data and pass it through to the package like so. Data should be 2D array, and by default the mass-charge ratio is in the first column, and the relative intensities are in the second column.
```typst
#let data = csv("isobutelene_epoxide.csv")#let ms = mass-spectrum(massspec, args: (
size: (12,6),
range: (0,100),
))#figure((ms.display)())
```
There are many ways to further enhance your spectrum, please check out the manual to find out how.
## Roadmap
- [x] Pass style options through to the plot (tracker: #1)
- [ ] Better placement of text depending on plot size
- [ ] Improve default step on axes
- [x] Add support for callouts that are not immediately above their assigned peak
- [ ] Automatically detect when two annotations are too close, and display accordingly
- [ ] Move to new Typst type system (waiting on upstream)
- [x] Add in function for displaying skeletal structure of chemical
- [ ] Optional second axis for absolute intensity
- [x] Add additional display functions
- [x] Figure out function signature for multiple data sets
- [x] Overlayed and shifted
- [x] Horizontal reflection
- [x] How to update existing extras?See the [open issues](https://github.com/jamesxx/ionio-illustrate/issues) for a full list of proposed features (and known issues).
## Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request## License
Distributed under the MIT License. See `LICENSE` for more information.
## Gallery


