April 27, 2019

Open Leaders 7 is almost finished. Join us for a Sprint!

In a previous post, I mentioned that I was a part of Mozilla's Open Leaders program, which is dedicated to working open and improving the overall health of the internet. Each Open Leader worked on an open project over the duration of the 14 week program, which in my case is an open educational curriculum for the DevoWorm group and the OpenWorm Foundation more generally.

Purpose and Outcomes from the Mozilla's POP (purpose, outcomes, process) standards for project management). Click to enlarge.

The purpose of building this curriculum is twofold: to encourage contributions to the organization, and to create educational opportunities that enrich people's contributions. Therefore, our curriculum combines topical tutorials with course materials focused on interdisciplinary topics (bridging data science, computer science, and biology) and training in niche topical areas. The curriculum has a front-end (managed at Eliademy) and a back-end (managed in a Github repository). You can make contributions to the front-end by either enrolling in the course or making notes in hypothes.is.

Examples of the front-end, back-end, and course content. Click to enlarge.

Another way to contribute is to attend the Sprint for Internet Health. Last year this was referred to as the Global Sprint, and gives people an opportunity to engage in open source creation as well as consumption. Our project already has two contributors (Asmit Singh, Vinay Varma, and Uggwal Singh, who are also Google Summer of Code applicants to the organization) who have been refining the materials by way of pull requests. More details to come!

Details on how to get involved. Click to enlarge.

April 4, 2019

April is Documentation Month!

This content is cross-posted from OpenWorm Foundation blog.
Based on popular demand, April will be “Docs Month” within the OpenWorm Foundation. The month will be filled with reevaluating our organizational docs, in addition to putting together a proposal (in conjunction with INCF) for the inaugural Google Season of Docs
If you have a technical writing background, we can work on a community contribution, which can include (but is not limited to) the following current organizational needs:
1) building an OpenWorm Wiki, which might reference special topics and within the subprojects. 
2) website redesign so as to make it easy to find key information (e.g. people, how to get to Slack, Github, Docker and Blender models). 
3) help refine a reference document started by Senior Contributor Gopal Sarma. 
4) an inventory of projects and docs that align with current organizational goals. 
5) a reorganization of all project docs, mainly merging DevoWorm, NeuroML, Geppetto, and other assorted docs into one location. 
6) help with the educational curriculum. 
7) find and write specs for “casual contributor-friendly” contributions.
Let's get working! 
UPDATE (4/26): We submitted an application by the deadline that incorporates many of these elements. If you are interested in learning more, please join our Slack team and join the #documentation channel, or contact me via e-mail.

March 6, 2019

March is PyOpenWorm month!

This content is cross-posted from OpenWorm Foundation blog.

PyOpenWorm is a data-access and data sharing library for the OpenWorm project. It is designed to provide the project with a coordinated means for generically describing data in a variety of formats, tracking the origins of said data, and describing various transformations between formats.
This month should see a release for PyOpenWorm and further integration with c302, the neural network model generation tool set. We’re always happy to welcome contributors in this effort! There are, however, a number of other areas where you can help on PyOpenWorm: see the beginner label on PyOpenWorm issue tracker for a listing of issues to start with or else get in touch with Mark Watts, (github:mwatts15) for suggestions.
Also this summer, OpenWorm is again participating in Google Summer of Code (GSoC) under the banner of the INCF. My personal favorite project idea focuses on file sharing (model files, experimental data, etc.) within PyOpenWorm. The file sharing component will have a major role in PyOpenworm going forward, so this is a great project to get involved with now. You can see the list of all OpenWorm projects for 2019 here. Although applications aren’t open until 25 March, you can get in touch with the GSoC mentors and learn more about the problems they’re trying to solve today – so don’t be shy! You can learn more about GSoC in general on their website.
This project of the month kicks off with an “office hours” session on the OpenWorm Slack chat this Wednesday, 6 March at 17:00 UTC where several senior contributors (including me) simultaneously make themselves available for Q&A, discussion, and to talk about current and upcoming activities in the project. You can join by filling out this (short) form.  This is also the best starting place if you’re interested in contributing to OpenWorm more broadly since it will let us know what you’re interested in and what skills you have now so we can help you find which area best fits your interests.
Thanks for reading! Looking forward to hearing from you :-)
Find us on Twitter: @OpenWorm
Link to the OW Contributor form is here

March 1, 2019

Open Data Day 2019: DevoZoo is Live!

Welcome to Open Data Day 2019, sponsored by Orthogonal Research and Education Laboratory! This year we are introducing an open data repository called DevoZoo. Based on work going on in the DevoWorm group, DevoZoo include various primary, secondary, and tertiary datasets from a variety of developing organisms (all characterizing embryogenesis). There are several other tabs on the site, including references on C. elegans developmental biology (the embryo image), a collection of Jupyter notebooks (DevoNotes), methods developed within the DevoWorm group (DevoMethods), and an educational curriculum (DevoWormU).

DevoZoo is based on the "Models for Data Recycling" mini-grant submitted to (but not funded by) Mozilla Science a few months ago. If you want to understand the greater vision for this initiative, please read over the grant proposal document. Feel free to contribute by playing with the datasets, or by proposing new resources by forking our Github repository and submitting a pull request.

February 16, 2019

Darwin meets Category Theory in the Tangential Space

For this Darwin Day (February 12), I would like to highlight the relationship between evolution by natural selection and something called category theory. While this post will be rather tangential to Darwin's work itself, it should be good food for thought with respect to evolutionary research. As we will see, category theory also has relevance to many types of functional and temporal systems (including those shaped by natural selection) [1], which is key to understanding how natural selection shapes individual phenotypes and populations more generally.

This isn't the last you'll hear from me in this post!

Category Theory originated in the applied mathematics community, particularly the "General Theory of Natural Equivalence" [2]. In many ways, category theory is familiar to those with conceptual knowledge of set theory. Uniquely, category theory deals with the classification of objects and their transformations between mappings. However, category theory is far more powerful than set theory, and serves as a bridge to formal logic, systems theory, and classification.

A category is defined by two basic components: objects and morphisms. An example of objects are a collection of interrelated variables or discrete states. Morphisms are things that link objects together, either structurally or functionally. This provides us with a network of paths between objects that can be analyzed using categorical logic. This allows us to define a composition (or path) by tracing through the set of objects and morphisms (so-called diagram chasing) to find a solution.

In this example, a pie recipe is represented as a category with objects (action steps) and morphisms (ingredients and results). This monoidal preorder can be added to as the recipe changes. From [3]. Click to enlarge.

Categories can also consist of classes: classes of objects might include all objects in the category, while classes of morphism include all relational information such as pathways and mappings. Groupoids are functional descriptions, and allow us to represent generalizations of group actions and equivalence relations. These modeling-friendly descriptions of a discrete dynamic system is quite similar to object-oriented programming (OOP) [4]. One biologically-oriented application of category theory can be found in the work of Robert Rosen, particularly topics such as relational biology and anticipatory systems.

Animal taxonomy according to category theory. This example focuses on exploring existing classifications, from species to kingdom. The formation of a tree from a single set of objects and morphisms is called a preorder. From [3]. Click to enlarge.

One potential application of this theory to evolution by natural selection is to establish an alternate view of phylogenetic relationships. By combining category theory with feature selection techniques, it may be possible to detect natural classes that correspond to common ancestry. Related to the discovery of evolutionary-salient features is the problem of phylogenetic scale [5], or hard-to-interpret changes occurring over multiple evolutionary timescales. Category theory might allow us to clarify these trends, particularly as they relate to evolving life embedded in ecosystems [6] or shaped by autopoiesis [7]. 

More relevant to physiological systems that are shaped by evolution are gene regulatory networks (GRNs). While GRNs can be characterized without the use of category theory, they also present an opportunity to produce an evolutionarily-relevant heteromorphic mapping [8]. While a single GRN structure can have multiple types of outputs, multiple GRN structures can also give rise to the same or similar output [8, 9]. As with previous examples, category theory might help us characterize these otherwise super-complex phenomena (and "wicked" problems) into well-composed systems-level representations.

[1] Spivak, D.I. (2014). Category theory for the sciences. MIT Press, Cambridge, MA.

[2] Eilenberg, S. and MacLane, S. (1945). General theory of natural equivalences. Transactions of the American Mathematical Society, 58, 231-294. doi:10.1090/S0002-9947-1945-0013131-6 

[3] Fong, B. and Spivak, D.I. (2018). Seven Sketches in Compositionality: an invitation to applied category theory. arXiv, 1803:05316.

[4] Stepanov, A. and McJones, P. (2009). Elements of Programming. Addison-Wesley Professional.

[5] Graham, C.H., Storch, D., and Machac, A. (2018). Phylogenetic scale in ecology and 
evolution. Global Ecology and Biogeography, doi:10.1111/geb.12686.

[6] Kalmykov, V.L. (2012). Generalized Theory of Life. Nature Precedings, 10101/npre.2012.7108.1.

[7] Letelier, J.C., Marin, G., and Mpodozis, J. (2003). Autopoietic and (M,R) systems. Journal of Theoretical Biology, 222(2), 261-272. doi:10.1016/S0022-5193(03)00034-1.

[8] Payne, J.L. and Wagner, A. (2013). Constraint and contingency in multifunctional gene regulatory circuitsPLoS Computational Biology, 9(6), e1003071. doi:10.1371/journal.pcbi.1003071.

[9] Ahnert, S.E. and Fink, T.M.A. (2016). Form and function in gene regulatory networks: the structure of network motifs determines fundamental properties of their dynamical state space. Journal of the Royal Society Interface, 13(120), 20160179. doi:10.1098/rsif.2016.0179.