Essential software tools for the working scientist
Physics
If you are a physicist interested in simulation, I repeat my recommendation to install Julia and explore the language as well as the rapidly growing ecosystem of physics and related packages. It is not by accident that interest in Julia is exploding among scientists from all fields. Any project that you create will benefit from the ease with which you can remix code from other packages; in some cases you will discover that you have to do much less work than you anticipated.
As a case study, here is every step needed to go from zero to a fluid dynamics simulation of mixing at the boundary between a heavy (cold) and light (warmer) fluid (Rayleigh-Taylor instability). That is, not including about two hours of reading documentation and playing around with the simulation software to learn how it works.
I'd heard good things about a Julia package for fluid simulation called Oceananigans.jl [11]. Getting libraries for Julia is a breeze, because it has a package manager not only built in, but integrated into the REPL. Just hit the ] key to enter the package sub-REPL, and type add Oceananigans
. Julia will download whatever is needed from the Internet, including any dependencies required, and pre-compile the code.
For the rest, refer to Figure 3, which shows the entire Julia session. The final command creates the plot in Figure 4, which shows the temperature field.
In my career, I've had to work with simulation codes from various sources. I have never experienced getting a useful calculation done as easily as I was able to do with Oceananigans. It not only has a sophisticated interface, but it is remarkably fast, owing in part to Julia's ability to generate efficient machine code. On my very modest laptop, this calculation took on the order of 30 seconds. If you are in computational physics, or any branch of numerical science, I recommend experiencing the Julia ecosystem for yourself.
Mathematics
The symbolic mathematics program Maxima [12] is extremely useful. It is light, fast, and available from any distribution's package manager. Maxima is the open source successor to the venerable commercial program Macsyma. It is written in Lisp and can handle many areas of mathematics, such as basic algebra, calculus, trigonometry, differential equations, series, and much more.
Maxima uses gnuplot to draw graphs, but that's OK, because you've already followed my advice and installed it. It can print its output in the form of TeX math markup, which you can paste directly into your TEX documents (see the Writing Papers section).
Figure 5 shows a quick calculation in Maxima, a screenshot from my laptop. On the top is a terminal window, and below that a gnuplot graph. In the terminal, I've invoked Maxima (which starts instantly) and defined an ordinary differential equation using Maxima's syntax for derivative operators. Notice that the inputs and outputs are numbered, so you can use them in subsequent expressions. Maxima repeats the equation, but in a more visual form, using ASCII characters to approximate what the math is supposed to look like. In my second input, I'm asking for a solution using the ODE solver; Maxima has more than one solver for some types of equations, because a particular solver may not work on a particular problem. The reply is a solution made of Bessel functions, which is correct: the ODE I entered is the Bessel equation.
The solution contains two free parameters, called %k1
and %k2
, whose values can't be determined without more information, namely boundary conditions. My next input defines the solution sol
by giving Maxima these boundary conditions. That input I terminated with a dollar sign rather than the usual semicolon, to suppress the somewhat voluminous output. Instead, I would like to see a graph of this solution, which I order up in the next input, inserting the rhs
(right hand side) of sol
as the function to be plotted. The plot accepts a range for the independent variable and pops up the gnuplot graph immediately.
Maxima can do a lot and is efficient once you get familiar with its syntax. But if you're a mathematician who makes extensive use of computer assistance, especially if you travel in fields not served by Maxima, you may want to install SageMath [13]. You need to follow the link to download it, but make sure you have several gigabytes free before you do. SageMath is a huge system, packaging together about 100 pieces of mathematical software (including Maxima) in a giant bundle with a unified interface based on Python. SageMath can deal with some truly obscure subdisciplines and even has components for doing such things as solving Rubik's Cubes. Most people work with SageMath through its interactive, web-based notebook, which is similar to Jupyter [14], but it has a command-line interface as well.
Biology
With the advent of bioinformatics [15] as a major activity within biology, the computer as a tool is more central to this discipline than ever before.
Bioinformatics is a blending of computer science and biology usually concerned with dealing with DNA sequences or other sequences of molecular data: essentially strings of potentially millions of letters. This gives the computational problems in this field something of a linguistic character. Bioinformatics plays a big part in gene-based drug discovery, wildlife conservation, cancer treatment, forensic analysis, and much more.
EMBOSS [16] is an acronym for European Molecular Biology Open Software Suite. It is a major computational resource used by many biologists all over the world. EMBOSS packages 200 applications for sequence analysis, visualizing proteins, analyzing protein structure, providing transparent access to remotely hosted molecular sequences, and much more.
I should mention that a handful of these 200 programs are trivial utilities for doing things like removing whitespace from an ASCII file. Clearly EMBOSS attempts to be a complete environment providing anything even a computer-naive bioinformatician might need.
EMBOSS can be operated with graphical, web-based, or command-line interfaces. Figure 6 shows a screenshot of one of the available web interfaces to a utility that displays protein sequences graphically. SourceForge provides the interface as a demo, so the biologist interested in trying out the program, or even in using it for real work up to a point, can experiment on real data without having to download and install it.
Even more than a comprehensive software suite for molecular biology and bioinformatics, EMBOSS provides a platform to allow computational biologists to release their own open source projects.
« Previous 1 2 3 Next »
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Canonical Bumps LTS Support to 12 years
If you're worried that your Ubuntu LTS release won't be supported long enough to last, Canonical has a surprise for you in the form of 12 years of security coverage.
-
Fedora 40 Beta Released Soon
With the official release of Fedora 40 coming in April, it's almost time to download the beta and see what's new.
-
New Pentesting Distribution to Compete with Kali Linux
SnoopGod is now available for your testing needs
-
Juno Computers Launches Another Linux Laptop
If you're looking for a powerhouse laptop that runs Ubuntu, the Juno Computers Neptune 17 v6 should be on your radar.
-
ZorinOS 17.1 Released, Includes Improved Windows App Support
If you need or desire to run Windows applications on Linux, there's one distribution intent on making that easier for you and its new release further improves that feature.
-
Linux Market Share Surpasses 4% for the First Time
Look out Windows and macOS, Linux is on the rise and has even topped ChromeOS to become the fourth most widely used OS around the globe.
-
KDE’s Plasma 6 Officially Available
KDE’s Plasma 6.0 "Megarelease" has happened, and it's brimming with new features, polish, and performance.
-
Latest Version of Tails Unleashed
Tails 6.0 is based on Debian 12 and includes GNOME 43.
-
KDE Announces New Slimbook V with Plenty of Power and KDE’s Plasma 6
If you're a fan of KDE Plasma, you'll be thrilled to hear they've announced a new Slimbook with an AMD CPU and the latest version of KDE Plasma desktop.
-
Monthly Sponsorship Includes Early Access to elementary OS 8
If you want to get a glimpse of what's in the pipeline for elementary OS 8, just set up a monthly sponsorship to help fund its continued existence.