Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seigel/kaplan-meier
Simple library to help calculate and graph survival curves.
https://github.com/seigel/kaplan-meier
gem kaplan-meier ruby statistics survival-analysis survival-curves
Last synced: 5 days ago
JSON representation
Simple library to help calculate and graph survival curves.
- Host: GitHub
- URL: https://github.com/seigel/kaplan-meier
- Owner: seigel
- License: mit
- Created: 2018-02-16T04:38:38.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-03-12T03:56:30.000Z (almost 7 years ago)
- Last Synced: 2024-12-09T16:57:13.341Z (14 days ago)
- Topics: gem, kaplan-meier, ruby, statistics, survival-analysis, survival-curves
- Language: Ruby
- Size: 27.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Kaplan Meier Library
This current intent of this library is to support doing a Kaplan-Meier Survival Analysis and generating survival plots for subjects that have a brain tumour diagnosis. This is in support of research being conducted to help create better treatments and improve outcomes.
This does not mean it is only useful for that, but it is the initial driver of the interface for better or for worse.
Please dive in and suggest changes through issues and pull requests. The latter getting more attention.
I will be using a couple of sites to validate the approach. The current two sources I am using as truth are:
* [Example from graphpad](https://s3.amazonaws.com/cdn.graphpad.com/faq/1757/file/P4-Survival%20analysis.pdf)
* [Survival Analysis From Stats Direct](https://statsdirect.com/help/survival_analysis/kaplan.htm)## Installation
Add this line to your application's Gemfile:
```ruby
gem 'kaplan_meier'
```And then execute:
$ bundle
Or install it yourself as:
$ gem install kaplan_meier
## Usage
TODO: Improve these but taking the example data and results from graphpad, here is the current way it would be used.
```ruby
# At some point I will try and generate decent docs. If you look at the code
# it is using named parameters.
km = KaplanMeier::Survival.new
km.add(46, 1, 1)
km.add(64, 0, 1)
km.add(78)
km.add(124)
km.add(130, 0, 1)
km.add(150, 0, 2)km.raw_probabilities
km.raw_probabilities(as_percent: true)
km.probabilities
km.probabilities(as_percent: true)km.range
km.values_for_range
```Use it to drive creating graphs like this using a charting library.
![Survival Curve](https://d.pr/i/VKI4H6+?height=400px)
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/seigel/kaplan_meier.
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).