Get started

Install & setup

BulkSeq Studio is free and runs on Windows and Linux. You download one file, launch it, and let the app set up the bioinformatics tools for you the first time. No coding, and on Windows no administrator account for the install itself.

Windows

Two downloads on the Releases page, pick either:

  • InstallerBulkSeqStudio-Setup-0.16.0.exe. A per-user install that needs no administrator rights; afterwards you launch it from the Start Menu.
  • PortableBulkSeqStudio-Portable-0.16.0.zip. Unzip it anywhere and double-click BulkSeqStudio.exe. Nothing is installed.

To update, run a newer installer: it detects the existing install and offers to update or uninstall first.

Linux

Download from the same Releases page and pick either:

  • AppImage — a single self-contained file. Make it executable, then run it; nothing to extract or install. To update, download the newer file or run AppImageUpdate on it (the build ships zsync update info).
  • Tarball — extract it and run the bundled launcher BulkSeqStudio.

Both bundle the interface, so you do not need system Python. They are built on Ubuntu 24.04 and need glibc 2.39 or newer.

What is WSL2, and why does Windows need it?

The bioinformatics tools that do the analysis (alignment, counting, DESeq2, enrichment) are Linux programs. On Windows, BulkSeq Studio runs them inside WSL2 — the Windows Subsystem for Linux, a lightweight Linux that Windows runs quietly in the background. You never open a Linux terminal yourself. The window you see is only the graphical interface; the actual computation happens in a managed micromamba environment inside WSL2. The app can enable WSL2 and install that environment for you from its setup screen, so you do not configure anything by hand.

On Linux there is no WSL: the same interface runs the same pipeline directly in a local environment, and the results are identical.

Install and first run, step by step

  1. Download and open the app

    Grab the Windows installer or portable ZIP (or, on Linux, the AppImage or tarball) from the Releases page, then launch BulkSeq Studio. The per-user Windows install does not ask for an administrator password.

  2. Let the Environment setup screen check your machine

    On first launch (and any time later from Check Environment on the Project tab), a readiness screen checks the pieces it needs and shows each one as Ready or Action needed, with an install button when something is missing.

  3. Install anything marked "Action needed"

    Work top to bottom: click each Install… button, then press Re-check to refresh the statuses. The downloads run inside your own WSL user account with no sudo password. Show details / log expands the full setup log if a step needs attention.

  4. Click Continue when the header reads "4 of 4 ready"

    Once every row is Ready, the screen is done. You can already create projects, edit metadata, and build configs while the tools finish installing; only starting a pipeline run needs them.

The Environment setup window: four readiness rows, each Ready or Action needed, with install buttons and a Continue button.
The first-run Environment setup screen on Windows. Each row has a status and, when needed, a one-click install.

The four readiness rows (Windows first run)

  • Python GUI / core packages — the libraries the interface itself needs.
  • WSL2 — the lightweight Linux the pipeline runs inside, plus the micromamba package manager. If WSL2 is not yet enabled, this single step opens an Administrator PowerShell window once (Windows requires elevation only to turn the feature on), and you may be asked to reboot.
  • Core bioinformatics environment ("bulkseq") — Snakemake, the three aligners (STAR, HISAT2, Salmon), featureCounts, samtools, fastp, FastQC, and MultiQC. The download takes a few minutes.
  • R / DESeq2 stack — R with DESeq2, the enrichment packages, and the figure toolchain. This is the largest, slowest install and can take a while; you only do it once.

On Linux the WSL2 row does not apply — the pipeline runs locally and those controls are hidden.

Disk space Set aside about 10 GB of free disk for the toolchain and reference indices, and 16 GB or more of RAM is recommended (STAR alignment is the memory-heavy step; for very large genomes the HISAT2 or Salmon aligner needs far less). The one-time environment setup downloads several packages, so the first run is slower than later ones — give it time and a stable internet connection.

Raising the WSL2 memory limit (Windows)

On Windows the pipeline runs inside WSL2, which by default may use only about half of your host RAM. That VM cap — not the Windows total — is what memory-heavy steps run against (STAR indexing and alignment on large genomes, or DESeq2 on big count matrices). The easiest way to raise it is the Edit WSL2 memory / CPU limits… button on the Resources tab, which writes the caps and can restart WSL to apply them. To do it by hand instead, create or edit %UserProfile%\.wslconfig (a plain text file in your user folder), add a [wsl2] section, then apply it with wsl --shutdown in PowerShell before reopening the app:

[wsl2]
memory=48GB      # cap the VM at 48 GB (default is ~50% of host RAM)
processors=16    # optional: limit WSL2 to 16 logical processors

See Microsoft's Advanced settings configuration in WSL ↗ for every .wslconfig option. On Linux there is no cap to configure — the pipeline runs natively with your machine's full RAM.

BulkSeq Studio running natively on a Linux desktop.
The same application running natively on Linux. Every tab, the Figure Style editor, and the interactive PPI viewer work the same as on Windows.

Your first analysis

Quick start

From a public study to differential expression, enrichment, and an interactive protein network, without writing any code. The example below follows the most common path: paste study accessions, let the app fetch the data, and run.

Before you start On the Project tab, click Check Environment first. The setup window checks four things (Python GUI, WSL2, the core bioinformatics environment, and the R/DESeq2 stack) and installs anything that is missing. When the header reads 4 of 4 ready, you are clear to run. You can keep building the project while the tools install; only starting a run needs them.
  1. Create or open a project

    On the Project tab, make a new project folder. The app scaffolds the config/ folder, a copy of the Snakemake workflow/, and a provenance manifest. On Windows, click Use WSL filesystem when prompted so the project lives on the fast Linux disk rather than a C:\ drive.

  2. Choose an input

    On the Input Data tab, pick how your data comes in. The simplest is to paste SRR / SRP / PRJ accessions — or an RNA-seq GSE series, which is resolved to its SRA runs — and click Fetch metadata & build samples; the ENA fetch reads the layout, FASTQ URLs, and read counts and builds the sample sheet for you. You can also select local FASTQ files, or skip alignment entirely with Use a Count Matrix, Upload DESeq2 Results, or a GEO microarray series (GSE).

  3. Confirm the metadata and contrast

    On the Metadata tab, the samples appear in an editable table. The condition column is pre-filled with a group suggested from the fetched metadata (a GEO characteristic such as genotype or treatment, or a sample-title group) — confirm it or edit it, and check that the layout (paired or single-end) is correct. These groups define the comparison DESeq2 will run.

  4. Pick a reference and analysis options

    On the Reference Manager tab, choose your organism from the Ensembl / NCBI RefSeq catalog (or import a custom genome and annotation), then click Use Selected Preset. A reference is required before a run will start. On the Workflow Settings tab, set the trimmer, aligner, and rRNA tool (leave the aligner on STAR if unsure), pick the differential-expression engine, build the DESeq2 design and contrast (a Design helper can compose the formula from your metadata), the alpha and |log2FC| thresholds, and how to handle organellar genes. The defaults are sane, so most first runs only need the contrast confirmed.

  5. Start the run and watch the Run Monitor

    Clear any flagged items on the Sanity Checks tab, then go to Run Monitor and click Start Run. The progress bar and a plain-language current phase (Downloading, Aligning, DESeq2, and so on) track the pipeline above the raw log. Use Stop to cancel, Resume to continue an interrupted run, and Unlock if a run was interrupted hard.

    The Run Monitor tab showing a completed run at 100%, with Start Run, Resume, Unlock, Stop, Open Results Report, and the Export Tools & References and Export Study Design buttons
    The Run Monitor after a finished run. The Export Tools & References and Export Study Design buttons save the exact tool versions, reference, and study design for that run.
  6. Read the results

    When the run finishes, the Outputs tab lets you browse the count matrix and DESeq2 table and view the figures (PCA, volcano, MA, heatmaps); toggle Vector (SVG) for a crisp preview at any zoom. Open the PPI Network tab to explore the STRING protein network interactively, and click Open MultiQC Report on the Run Monitor for the read-quality summary. A self-contained results_report.html gathers the figures, top genes, enrichment, and provenance into one shareable file. Export the tools & references and study design files to capture the run's provenance.

Tip Not sure the configuration is right? Use Dry Run before Start Run. A dry run validates the configuration and reports exactly which steps would execute, without downloading or computing anything.

Five ways in

Input modes

BulkSeq Studio meets your data wherever it already is. You can start from raw reads, from public accessions, from a count table, from a finished differential-expression table, or from a GEO microarray series. The mode you choose decides which steps run and which outputs you get; everything downstream of the entry point is shared, so the figures and enrichment look the same no matter how you got there.

1. SRA / ENA accessions

Paste SRR / SRP / PRJ accessions and the app fetches the ENA metadata, builds the sample sheet (layout, FASTQ URLs, read counts), and downloads the reads for you.

Unlocks the full pipeline: FastQC / MultiQC, trimming, alignment, gene counting, DESeq2, enrichment, figures, and the PPI network.

2. Local FASTQ files

Already downloaded your reads? Point the app at FASTQ files on disk. Single-end or paired-end, detected automatically from the sample sheet; both layouts run the full alignment route.

Same full pipeline as the accession route, minus the download step: QC, trimming, alignment, counting, DESeq2, enrichment, figures, PPI.

3. Count matrix (skip alignment)

Upload a gene-by-sample counts table (featureCounts output or any TSV/CSV) to skip download, QC, and alignment.

Goes straight to DESeq2, then figures, enrichment, statistics, and the PPI network. Use this when alignment is already done elsewhere.

4. DESeq2 results table (bring your own)

Upload a finished differential-expression table (the format DESeq2::results() writes). Required columns are gene_id, log2FoldChange, and padj; the up- and down-regulated lists are derived from your significance thresholds.

No FASTQ, alignment, counts, or DESeq2 step. Produces functional enrichment, the volcano / MA / p-value figures, the STRING PPI network, the MSigDB set-overlap test, and a preranked .rnk. Outputs that need per-sample counts (PCA, sample-correlation, count heatmaps, the Wilcoxon test, the normalized-expression export) are skipped.

5. GEO microarray series (GSE)

Enter a GEO series accession. The app ingests the normalized intensities (GEOquery series matrix, or RMA from raw Affymetrix CEL), maps probes to gene symbols, and runs limma differential expression into a DESeq2-shaped results table.

From there it runs the same figures, enrichment, genes-of-interest, and networks as the RNA-seq routes. RNA-seq series pasted here are redirected to the SRA box.

The Input Data tab configured for the bring-your-own DESeq2-results input mode, with the results-table upload control selected.
The Input Data tab in DESeq2-results mode: upload a finished table and go straight to enrichment, figures, and the STRING network, with no reads or alignment.
Tip The three aligner routes (STAR, HISAT2, Salmon) converge on a common count matrix, so once a run reaches the counting step, everything afterward is identical regardless of how the reads were aligned, or which input mode you started from.
One layout per run Single-end and paired-end reads both run the full alignment route, but a single run must use one layout. A mixed-layout sample sheet is rejected with guidance so the two are not counted together by accident.
Match your gene IDs For modes that skip alignment (count matrix, DESeq2 results), the IDs in your table must match the keytype of the organism you select on the Reference tab, or enrichment, KEGG, and STRING will not map. Pick the preset for your organism so the gene-ID namespace lines up.