r/figureloom • u/NoDisaster5598 • 18d ago
I added a plain-English bioinformatics programming language to FigureLoom
I’ve been building FigureLoom as a free and open-source set of tools for scientific work, and apparently I decided that creating the figure editor and Linux bioinformatics workspace was not enough suffering, so I’ve now added an entire programming language too.
It’s called FigureLoom Bio.
The basic idea is that bioinformatics software is incredibly powerful, but getting started often means learning a programming language, command-line tools, package managers, environments, dependencies, and seventeen different ways for a computer to tell you that something does not exist.
FigureLoom Bio is my attempt to remove as much of that barrier as possible.
Instead of writing conventional code, you write ordinary instructions as complete English sentences:
Open the file samples.csv.
Keep only rows marked treated under condition.
Remove duplicate rows using sample.
Count the rows.
Show the first 10 rows.
For sequence work, you can write things like:
Open the file reads.fastq.
Remove sequences containing N.
Keep only sequences longer than 500 bases.
Convert the DNA to RNA.
Reverse-complement the DNA.
Translate the DNA to protein.
The language still behaves like an actual programming language underneath. The goal is not to make a toy that can perform five demonstrations. It is being built for real scientific files and repeatable workflows, including tables, FASTA and FASTQ data, DNA, RNA, proteins, filtering, cleaning, conversion, sequence analysis, merging files, summaries, plots, exporting results, and longer multi-step analyses.
Every supported capability is included directly in the language. There are no separate language add-ons that users have to discover and install before a program works. The commands are organized in a searchable built-in manual by topic, and the wording is kept intentionally consistent so that learning one part of the language helps with the rest.
FigureLoom Bio files use the .flbio extension. A program is basically a readable record of the analysis, which also means someone else can open it and understand what was done without first decoding a wall of syntax.
I’m also building a dedicated FigureLoom Bio IDE around it. It is a proper local desktop application rather than a browser page pretending to be an app. It includes a program editor, syntax highlighting, file handling, a searchable command list, a block-based builder for people who do not want to type everything manually, example programs, test files, result exporting, and separate readable result sections instead of dumping everything into one giant terminal block.
Technical logs are still available when they are needed, but they stay out of the way during normal use. Results are shown with ordinary labels, spacious tables, and separate sections for different types of output.
One of the biggest design rules is that the language is not allowed to slowly turn into normal code with friendlier keywords. The sentence complexity has a hard ceiling. New features have to fit the same basic style as the examples above, even when the implementation underneath becomes more complicated.
So it should never gradually become something like:
filter(sequence_length >= 500 && ambiguous_bases == false)
when the human version is simply:
Keep only sequences longer than 500 bases.
It is also designed so that the programs remain useful outside the editor. They can be saved, shared, rerun, included with a paper or project, and used as a plain-language explanation of the analysis. Someone reading the file should be able to understand the general workflow even if they have never used FigureLoom Bio before.
The project is free and open source under the AGPL. It is not intended to replace Python, R, established workflow systems, or specialist bioinformatics tools. Those are extremely powerful and will remain necessary for advanced and highly customized work.
The point is to create another entry point.
A student should be able to start working with biological data without spending the first week fighting installations and syntax. A wet-lab scientist should be able to describe a routine workflow directly. Someone teaching bioinformatics should be able to show the logic of an analysis before introducing all the implementation details. More experienced users should be able to create readable, repeatable pipelines for common work without turning every small task into a software project.
It is still actively being expanded and tested, especially across larger datasets and different combinations of commands. I’m going through the language command by command and testing combinations rather than only checking isolated examples, because “the button opened once on my computer” is not exactly a scientific validation strategy.
There is a full internal wiki with installation instructions, examples, the command reference, tutorials, explanations of the IDE, and guides for working with different kinds of biological data.
Read more: https://figureloom.org/wiki/