Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tutorials for tskit in other languages (C & Rust) #105

Open
hyanwong opened this issue Jun 24, 2021 · 7 comments
Open

Tutorials for tskit in other languages (C & Rust) #105

hyanwong opened this issue Jun 24, 2021 · 7 comments

Comments

@hyanwong
Copy link
Member

We have a fully functional short tskit & R tutorial. I wonder if it's worth having a part of the tutorials book on other languages and include a (short) C example and a Rust example? I'm guessing @molpopgen would be the one to do this, if he has any time.

@jeromekelleher
Copy link
Member

Certainly a C one would be nice. We can adapt some of the content in the C API page.

@petrelharp
Copy link
Contributor

Hah, for a moment I thought this meant eg in spanish, and wondered why the first spanish tutorial would be about rust.

@hyanwong
Copy link
Member Author

Cierto en Espagnol. Moi je peux traduire en Français si vous voulez :)

@molpopgen
Copy link
Member

I can do one for the rust interface. Unfortunately (IMO) I think it has to be a notebook rather than myst-md. The way one specifies the dependencies for a rust notebook is not allowed in the markdown. I've know this for a while but haven't had the time to figure out where to file the issue (jupyter-book or the rust kernel authors, or both, or neither).

This is low on the short-term priority list, though.

@hyanwong
Copy link
Member Author

This is low on the short-term priority list, though.

Yes, absolutely. I only opened this issue so as not to forget it. We could either leave it as an open issue or make a tutorial stub and just fill it with a "todo"

@molpopgen
Copy link
Member

molpopgen commented Jul 11, 2022

To follow up on this (which some recent Slack posts reminded me of): a literate tutorial for tskit-rust is unlikely unless we start using RMarkdown/knitr. I recently closed a PR based on mdbook due to the amount of work required. The current goal is to get a working example for all elements of the public API. An example is here and the next release will have many more. But it is slow to get it all done.

EDIT: sigh, it looks like Rmd/rextendr are still tricky to get working.

@molpopgen
Copy link
Member

For posterity:

---
title: "tskit-rust tutorial"
author: Kevin Thornton / tskit-developers
output: html_document
---

```{r, echo=FALSE}
library(rextendr)
```

# Adding a node to a `TableCollection`.

```{extendr engine.opts = list(dependencies = list(`tskit` = "0.9.0"))}
let mut tables = tskit::TableCollection::new(100.0).unwrap();

// Node flags, birth time, population id, individual id
let node_id = tables.add_node(0, 0.0, tskit::PopulationId::NULL, tskit::IndividualId::NULL).unwrap();

// The type tskit::NodeId can be compared to i32
assert_eq!(node_id, 0);
```

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants