{ "cells": [ { "cell_type": "markdown", "id": "665eeed2", "metadata": {}, "source": [ "# Bulk RNA-seq mapping with kb-python\n", "\n", "This notebook demonstrates an **alignment-free bulk RNA-seq workflow** in **OmicVerse** using **kb-python (kallisto | bustools)**, starting from SRA files and ending with **differential expression (DE)** and visualization.\n", "\n", "**Pipeline overview**\n", "\n", "1. Import OmicVerse and set plotting style \n", "2. Download SRA data (direct `.lite.1` links) \n", "3. Convert SRA โ†’ paired FASTQ (`parallel_fastq_dump`) \n", "4. Download reference genome/annotation (Ensembl GRCh38) \n", "5. Build kb reference (index + transcript-to-gene map) \n", "6. Quantify reads with kb-python (`ov.alignment.count`, technology=`BULK`) \n", "7. Merge samples into a single matrix and run DESeq2 via `ov.bulk.pyDEG` \n", "8. Visualize DEGs (volcano)\n", "\n", "โ–ฒ **CRITICAL** This notebook **does not modify any existing code or outputs**; it only adds tutorial-style Markdown explanations around the provided cells.\n" ] }, { "cell_type": "markdown", "id": "55e0bcc7", "metadata": {}, "source": [ "## Step 0 โ€” Import OmicVerse\n", "\n", "We start by importing OmicVerse and setting a consistent plotting style for downstream figures.\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "67c6b5d5-c62d-4aaf-94b8-707af9371260", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "๐Ÿ”ฌ Starting plot initialization...\n", "Using already downloaded Arial font from: /tmp/omicverse_arial.ttf\n", "Registered as: Arial\n", "๐Ÿงฌ Detecting GPU devicesโ€ฆ\n", "โœ… NVIDIA CUDA GPUs detected: 1\n", " โ€ข [CUDA 0] Tesla P40\n", " Memory: 22.4 GB | Compute: 6.1\n", "\n", " ____ _ _ __ \n", " / __ \\____ ___ (_)___| | / /__ _____________ \n", " / / / / __ `__ \\/ / ___/ | / / _ \\/ ___/ ___/ _ \\ \n", "/ /_/ / / / / / / / /__ | |/ / __/ / (__ ) __/ \n", "\\____/_/ /_/ /_/_/\\___/ |___/\\___/_/ /____/\\___/ \n", "\n", "๐Ÿ”– Version: 1.7.9rc1 ๐Ÿ“š Tutorials: https://omicverse.readthedocs.io/\n", "โœ… plot_set complete.\n", "\n", "CPU times: user 7.88 s, sys: 2.53 s, total: 10.4 s\n", "Wall time: 15.3 s\n" ] } ], "source": [ "%%time\n", "import omicverse as ov\n", "ov.style(font_path='Arial')" ] }, { "cell_type": "markdown", "id": "f081a102", "metadata": {}, "source": [ "## Step 1 โ€” Download SRA inputs (direct `.lite.1` links)\n", "\n", "Here we download several example SRA runs. In this workflow, we use **direct NCBI SRA download links** ending with `.lite.1`.\n", "\n", "โ–ฒ **CRITICAL**\n", "- `ov.datasets.download_data(..., dir=...)` will skip downloads if the file already exists.\n", "- In many environments, you can also download via `ov.alignment.prefetch()` and then convert using `fastq-dump`/`fasterq-dump`.\n", "- If your network blocks direct SRA links, switch to `prefetch` or mirror the files to a reachable location.\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "b0e829ce-0244-4094-9785-626b1ca31098", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[94m๐Ÿ” Downloading data to ./data/SRR12544433.lite.1\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\u001b[92mDownloading\u001b[0m: 100%|\u001b[32mโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‰\u001b[0m| 426M/426M [00:12<00:00, 34.0MB/s] " ] }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[92mโœ… Download completed\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "links=[\n", " 'https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos9/sra-pub-zq-922/SRR012/12544/SRR12544419/SRR12544419.lite.1',#no\n", " 'https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos9/sra-pub-zq-924/SRR012/12544/SRR12544421/SRR12544421.lite.1',#no\n", " 'https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos9/sra-pub-zq-922/SRR012/12544/SRR12544433/SRR12544433.lite.1'#yes\n", " 'https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos9/sra-pub-zq-922/SRR012/12544/SRR12544435/SRR12544435.lite.1'#yes\n", "]\n", "for link in links:\n", " ov.datasets.download_data(link,dir='./data')" ] }, { "cell_type": "markdown", "id": "d557c073", "metadata": {}, "source": [ "## Step 2 โ€” Convert SRA โ†’ paired FASTQ (single example)\n", "\n", "This cell shows converting **one** SRA file into **paired FASTQ** using `ov.alignment.parallel_fastq_dump`.\n", "\n", "โ–ฒ **CRITICAL**\n", "- Set `split_files=True` for paired-end output (`*_1.fastq.gz`, `*_2.fastq.gz`).\n", "- Use a fast local disk for `tmpdir` to reduce I/O overhead.\n", "- Thread count controls conversion speed; choose based on your CPU allocation.\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "87adedc1-2217-4d9d-9867-2a729c35be35", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1m\u001b[95m๐Ÿš€ Starting parallel-fastq-dump for ./data/SRR12544421.lite.1\u001b[0m\n", "\u001b[96m Threads: 12\u001b[0m\n", "\u001b[96m Output directory: ./data/SRR12544421\u001b[0m\n", "\u001b[94m Added to PATH: /home/groups/xiaojie/steorra/env/omicverse/bin\u001b[0m\n", "\u001b[96m>> /home/groups/xiaojie/steorra/env/omicverse/bin/parallel-fastq-dump --sra-id ./data/SRR12544421.lite.1 --threads 12 --outdir ./data/SRR12544421 --tmpdir ./tmp --minSpotId 1 --split-files --gzip\u001b[0m\n", "2026-01-29 23:56:27,879 - SRR ids: ['./data/SRR12544421.lite.1']\n", "2026-01-29 23:56:27,879 - extra args: ['--split-files', '--gzip']\n", "2026-01-29 23:56:27,880 - tempdir: ./tmp/pfd_0armgw5l\n", "2026-01-29 23:56:27,880 - CMD: sra-stat --meta --quick ./data/SRR12544421.lite.1\n", "2026-01-29 23:56:27,982 - ./data/SRR12544421.lite.1 spots: 10963094\n", "2026-01-29 23:56:27,982 - blocks: [[1, 913591], [913592, 1827182], [1827183, 2740773], [2740774, 3654364], [3654365, 4567955], [4567956, 5481546], [5481547, 6395137], [6395138, 7308728], [7308729, 8222319], [8222320, 9135910], [9135911, 10049501], [10049502, 10963094]]\n", "2026-01-29 23:56:27,982 - CMD: fastq-dump -N 1 -X 913591 -O ./tmp/pfd_0armgw5l/0 --split-files --gzip ./data/SRR12544421.lite.1\n", "2026-01-29 23:56:27,985 - CMD: fastq-dump -N 913592 -X 1827182 -O ./tmp/pfd_0armgw5l/1 --split-files --gzip ./data/SRR12544421.lite.1\n", "2026-01-29 23:56:27,986 - CMD: fastq-dump -N 1827183 -X 2740773 -O ./tmp/pfd_0armgw5l/2 --split-files --gzip ./data/SRR12544421.lite.1\n", "2026-01-29 23:56:27,987 - CMD: fastq-dump -N 2740774 -X 3654364 -O ./tmp/pfd_0armgw5l/3 --split-files --gzip ./data/SRR12544421.lite.1\n", "2026-01-29 23:56:27,989 - CMD: fastq-dump -N 3654365 -X 4567955 -O ./tmp/pfd_0armgw5l/4 --split-files --gzip ./data/SRR12544421.lite.1\n", "2026-01-29 23:56:27,991 - CMD: fastq-dump -N 4567956 -X 5481546 -O ./tmp/pfd_0armgw5l/5 --split-files --gzip ./data/SRR12544421.lite.1\n", "2026-01-29 23:56:27,992 - CMD: fastq-dump -N 5481547 -X 6395137 -O ./tmp/pfd_0armgw5l/6 --split-files --gzip ./data/SRR12544421.lite.1\n", "2026-01-29 23:56:27,994 - CMD: fastq-dump -N 6395138 -X 7308728 -O ./tmp/pfd_0armgw5l/7 --split-files --gzip ./data/SRR12544421.lite.1\n", "2026-01-29 23:56:27,996 - CMD: fastq-dump -N 7308729 -X 8222319 -O ./tmp/pfd_0armgw5l/8 --split-files --gzip ./data/SRR12544421.lite.1\n", "2026-01-29 23:56:27,998 - CMD: fastq-dump -N 8222320 -X 9135910 -O ./tmp/pfd_0armgw5l/9 --split-files --gzip ./data/SRR12544421.lite.1\n", "2026-01-29 23:56:28,001 - CMD: fastq-dump -N 9135911 -X 10049501 -O ./tmp/pfd_0armgw5l/10 --split-files --gzip ./data/SRR12544421.lite.1\n", "2026-01-29 23:56:28,003 - CMD: fastq-dump -N 10049502 -X 10963094 -O ./tmp/pfd_0armgw5l/11 --split-files --gzip ./data/SRR12544421.lite.1\n", "Read 913591 spots for ./data/SRR12544421.lite.1\n", "Written 913591 spots for ./data/SRR12544421.lite.1\n", "Read 913591 spots for ./data/SRR12544421.lite.1\n", "Written 913591 spots for ./data/SRR12544421.lite.1\n", "Read 913591 spots for ./data/SRR12544421.lite.1\n", "Written 913591 spots for ./data/SRR12544421.lite.1\n", "Read 913593 spots for ./data/SRR12544421.lite.1\n", "Written 913593 spots for ./data/SRR12544421.lite.1\n", "Read 913591 spots for ./data/SRR12544421.lite.1\n", "Written 913591 spots for ./data/SRR12544421.lite.1\n", "Read 913591 spots for ./data/SRR12544421.lite.1\n", "Written 913591 spots for ./data/SRR12544421.lite.1\n", "Read 913591 spots for ./data/SRR12544421.lite.1\n", "Written 913591 spots for ./data/SRR12544421.lite.1\n", "Read 913591 spots for ./data/SRR12544421.lite.1\n", "Written 913591 spots for ./data/SRR12544421.lite.1\n", "Read 913591 spots for ./data/SRR12544421.lite.1\n", "Written 913591 spots for ./data/SRR12544421.lite.1\n", "Read 913591 spots for ./data/SRR12544421.lite.1\n", "Written 913591 spots for ./data/SRR12544421.lite.1\n", "Read 913591 spots for ./data/SRR12544421.lite.1\n", "Written 913591 spots for ./data/SRR12544421.lite.1\n", "Read 913591 spots for ./data/SRR12544421.lite.1\n", "Written 913591 spots for ./data/SRR12544421.lite.1\n", "\u001b[92mโœ“ parallel-fastq-dump completed successfully!\u001b[0m\n" ] }, { "data": { "text/plain": [ "{'sra_id': './data/SRR12544421.lite.1',\n", " 'threads': 12,\n", " 'outdir': './data/SRR12544421',\n", " 'split_files': True,\n", " 'gzip': True}" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ov.alignment.parallel_fastq_dump(\n", " sra_id='./data/SRR12544421.lite.1',\n", " threads=12,\n", " outdir='./data/SRR12544421',\n", " tmpdir='./tmp',\n", " split_files=True,\n", " gzip=True,\n", ")" ] }, { "cell_type": "markdown", "id": "f922b602", "metadata": {}, "source": [ "## Step 2b โ€” Batch conversion for multiple SRAs\n", "\n", "This loop converts multiple SRA files to paired FASTQs using the same settings.\n", "\n", "Tip: If you have many samples, consider using a job scheduler (e.g., Slurm) to parallelize across nodes rather than increasing threads indefinitely on one node.\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "e72f7edc-af2e-46ec-adc1-7b41cf0ca691", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1m\u001b[95m๐Ÿš€ Starting parallel-fastq-dump for ./data/SRR12544433.lite.1\u001b[0m\n", "\u001b[96m Threads: 12\u001b[0m\n", "\u001b[96m Output directory: ./data/SRR12544433\u001b[0m\n", "\u001b[94m Added to PATH: /home/groups/xiaojie/steorra/env/omicverse/bin\u001b[0m\n", "\u001b[96m>> /home/groups/xiaojie/steorra/env/omicverse/bin/parallel-fastq-dump --sra-id ./data/SRR12544433.lite.1 --threads 12 --outdir ./data/SRR12544433 --tmpdir ./tmp --minSpotId 1 --split-files --gzip\u001b[0m\n", "2026-01-29 23:58:48,245 - SRR ids: ['./data/SRR12544433.lite.1']\n", "2026-01-29 23:58:48,245 - extra args: ['--split-files', '--gzip']\n", "2026-01-29 23:58:48,246 - tempdir: ./tmp/pfd_8tgtda45\n", "2026-01-29 23:58:48,246 - CMD: sra-stat --meta --quick ./data/SRR12544433.lite.1\n", "2026-01-29 23:58:48,358 - ./data/SRR12544433.lite.1 spots: 16602881\n", "2026-01-29 23:58:48,358 - blocks: [[1, 1383573], [1383574, 2767146], [2767147, 4150719], [4150720, 5534292], [5534293, 6917865], [6917866, 8301438], [8301439, 9685011], [9685012, 11068584], [11068585, 12452157], [12452158, 13835730], [13835731, 15219303], [15219304, 16602881]]\n", "2026-01-29 23:58:48,359 - CMD: fastq-dump -N 1 -X 1383573 -O ./tmp/pfd_8tgtda45/0 --split-files --gzip ./data/SRR12544433.lite.1\n", "2026-01-29 23:58:48,361 - CMD: fastq-dump -N 1383574 -X 2767146 -O ./tmp/pfd_8tgtda45/1 --split-files --gzip ./data/SRR12544433.lite.1\n", "2026-01-29 23:58:48,362 - CMD: fastq-dump -N 2767147 -X 4150719 -O ./tmp/pfd_8tgtda45/2 --split-files --gzip ./data/SRR12544433.lite.1\n", "2026-01-29 23:58:48,364 - CMD: fastq-dump -N 4150720 -X 5534292 -O ./tmp/pfd_8tgtda45/3 --split-files --gzip ./data/SRR12544433.lite.1\n", "2026-01-29 23:58:48,365 - CMD: fastq-dump -N 5534293 -X 6917865 -O ./tmp/pfd_8tgtda45/4 --split-files --gzip ./data/SRR12544433.lite.1\n", "2026-01-29 23:58:48,367 - CMD: fastq-dump -N 6917866 -X 8301438 -O ./tmp/pfd_8tgtda45/5 --split-files --gzip ./data/SRR12544433.lite.1\n", "2026-01-29 23:58:48,368 - CMD: fastq-dump -N 8301439 -X 9685011 -O ./tmp/pfd_8tgtda45/6 --split-files --gzip ./data/SRR12544433.lite.1\n", "2026-01-29 23:58:48,370 - CMD: fastq-dump -N 9685012 -X 11068584 -O ./tmp/pfd_8tgtda45/7 --split-files --gzip ./data/SRR12544433.lite.1\n", "2026-01-29 23:58:48,372 - CMD: fastq-dump -N 11068585 -X 12452157 -O ./tmp/pfd_8tgtda45/8 --split-files --gzip ./data/SRR12544433.lite.1\n", "2026-01-29 23:58:48,373 - CMD: fastq-dump -N 12452158 -X 13835730 -O ./tmp/pfd_8tgtda45/9 --split-files --gzip ./data/SRR12544433.lite.1\n", "2026-01-29 23:58:48,375 - CMD: fastq-dump -N 13835731 -X 15219303 -O ./tmp/pfd_8tgtda45/10 --split-files --gzip ./data/SRR12544433.lite.1\n", "2026-01-29 23:58:48,377 - CMD: fastq-dump -N 15219304 -X 16602881 -O ./tmp/pfd_8tgtda45/11 --split-files --gzip ./data/SRR12544433.lite.1\n", "Read 1383573 spots for ./data/SRR12544433.lite.1\n", "Written 1383573 spots for ./data/SRR12544433.lite.1\n", "Read 1383573 spots for ./data/SRR12544433.lite.1\n", "Written 1383573 spots for ./data/SRR12544433.lite.1\n", "Read 1383573 spots for ./data/SRR12544433.lite.1\n", "Written 1383573 spots for ./data/SRR12544433.lite.1\n", "Read 1383578 spots for ./data/SRR12544433.lite.1\n", "Written 1383578 spots for ./data/SRR12544433.lite.1\n", "Read 1383573 spots for ./data/SRR12544433.lite.1\n", "Written 1383573 spots for ./data/SRR12544433.lite.1\n", "Read 1383573 spots for ./data/SRR12544433.lite.1\n", "Written 1383573 spots for ./data/SRR12544433.lite.1\n", "Read 1383573 spots for ./data/SRR12544433.lite.1\n", "Written 1383573 spots for ./data/SRR12544433.lite.1\n", "Read 1383573 spots for ./data/SRR12544433.lite.1\n", "Written 1383573 spots for ./data/SRR12544433.lite.1\n", "Read 1383573 spots for ./data/SRR12544433.lite.1\n", "Written 1383573 spots for ./data/SRR12544433.lite.1\n", "Read 1383573 spots for ./data/SRR12544433.lite.1\n", "Written 1383573 spots for ./data/SRR12544433.lite.1\n", "Read 1383573 spots for ./data/SRR12544433.lite.1\n", "Written 1383573 spots for ./data/SRR12544433.lite.1\n", "Read 1383573 spots for ./data/SRR12544433.lite.1\n", "Written 1383573 spots for ./data/SRR12544433.lite.1\n", "\u001b[92mโœ“ parallel-fastq-dump completed successfully!\u001b[0m\n", "\u001b[1m\u001b[95m๐Ÿš€ Starting parallel-fastq-dump for ./data/SRR12544435.lite.1\u001b[0m\n", "\u001b[96m Threads: 12\u001b[0m\n", "\u001b[96m Output directory: ./data/SRR12544435\u001b[0m\n", "\u001b[94m Added to PATH: /home/groups/xiaojie/steorra/env/omicverse/bin\u001b[0m\n", "\u001b[96m>> /home/groups/xiaojie/steorra/env/omicverse/bin/parallel-fastq-dump --sra-id ./data/SRR12544435.lite.1 --threads 12 --outdir ./data/SRR12544435 --tmpdir ./tmp --minSpotId 1 --split-files --gzip\u001b[0m\n", "2026-01-29 23:59:23,325 - SRR ids: ['./data/SRR12544435.lite.1']\n", "2026-01-29 23:59:23,325 - extra args: ['--split-files', '--gzip']\n", "2026-01-29 23:59:23,326 - tempdir: ./tmp/pfd_t7s3okn4\n", "2026-01-29 23:59:23,326 - CMD: sra-stat --meta --quick ./data/SRR12544435.lite.1\n", "2026-01-29 23:59:23,433 - ./data/SRR12544435.lite.1 spots: 16486139\n", "2026-01-29 23:59:23,433 - blocks: [[1, 1373844], [1373845, 2747688], [2747689, 4121532], [4121533, 5495376], [5495377, 6869220], [6869221, 8243064], [8243065, 9616908], [9616909, 10990752], [10990753, 12364596], [12364597, 13738440], [13738441, 15112284], [15112285, 16486139]]\n", "2026-01-29 23:59:23,433 - CMD: fastq-dump -N 1 -X 1373844 -O ./tmp/pfd_t7s3okn4/0 --split-files --gzip ./data/SRR12544435.lite.1\n", "2026-01-29 23:59:23,435 - CMD: fastq-dump -N 1373845 -X 2747688 -O ./tmp/pfd_t7s3okn4/1 --split-files --gzip ./data/SRR12544435.lite.1\n", "2026-01-29 23:59:23,436 - CMD: fastq-dump -N 2747689 -X 4121532 -O ./tmp/pfd_t7s3okn4/2 --split-files --gzip ./data/SRR12544435.lite.1\n", "2026-01-29 23:59:23,438 - CMD: fastq-dump -N 4121533 -X 5495376 -O ./tmp/pfd_t7s3okn4/3 --split-files --gzip ./data/SRR12544435.lite.1\n", "2026-01-29 23:59:23,439 - CMD: fastq-dump -N 5495377 -X 6869220 -O ./tmp/pfd_t7s3okn4/4 --split-files --gzip ./data/SRR12544435.lite.1\n", "2026-01-29 23:59:23,441 - CMD: fastq-dump -N 6869221 -X 8243064 -O ./tmp/pfd_t7s3okn4/5 --split-files --gzip ./data/SRR12544435.lite.1\n", "2026-01-29 23:59:23,443 - CMD: fastq-dump -N 8243065 -X 9616908 -O ./tmp/pfd_t7s3okn4/6 --split-files --gzip ./data/SRR12544435.lite.1\n", "2026-01-29 23:59:23,445 - CMD: fastq-dump -N 9616909 -X 10990752 -O ./tmp/pfd_t7s3okn4/7 --split-files --gzip ./data/SRR12544435.lite.1\n", "2026-01-29 23:59:23,451 - CMD: fastq-dump -N 10990753 -X 12364596 -O ./tmp/pfd_t7s3okn4/8 --split-files --gzip ./data/SRR12544435.lite.1\n", "2026-01-29 23:59:23,453 - CMD: fastq-dump -N 12364597 -X 13738440 -O ./tmp/pfd_t7s3okn4/9 --split-files --gzip ./data/SRR12544435.lite.1\n", "2026-01-29 23:59:23,455 - CMD: fastq-dump -N 13738441 -X 15112284 -O ./tmp/pfd_t7s3okn4/10 --split-files --gzip ./data/SRR12544435.lite.1\n", "2026-01-29 23:59:23,456 - CMD: fastq-dump -N 15112285 -X 16486139 -O ./tmp/pfd_t7s3okn4/11 --split-files --gzip ./data/SRR12544435.lite.1\n", "Read 1373844 spots for ./data/SRR12544435.lite.1\n", "Written 1373844 spots for ./data/SRR12544435.lite.1\n", "Read 1373844 spots for ./data/SRR12544435.lite.1\n", "Written 1373844 spots for ./data/SRR12544435.lite.1\n", "Read 1373844 spots for ./data/SRR12544435.lite.1\n", "Written 1373844 spots for ./data/SRR12544435.lite.1\n", "Read 1373855 spots for ./data/SRR12544435.lite.1\n", "Written 1373855 spots for ./data/SRR12544435.lite.1\n", "Read 1373844 spots for ./data/SRR12544435.lite.1\n", "Written 1373844 spots for ./data/SRR12544435.lite.1\n", "Read 1373844 spots for ./data/SRR12544435.lite.1\n", "Written 1373844 spots for ./data/SRR12544435.lite.1\n", "Read 1373844 spots for ./data/SRR12544435.lite.1\n", "Written 1373844 spots for ./data/SRR12544435.lite.1\n", "Read 1373844 spots for ./data/SRR12544435.lite.1\n", "Written 1373844 spots for ./data/SRR12544435.lite.1\n", "Read 1373844 spots for ./data/SRR12544435.lite.1\n", "Written 1373844 spots for ./data/SRR12544435.lite.1\n", "Read 1373844 spots for ./data/SRR12544435.lite.1\n", "Written 1373844 spots for ./data/SRR12544435.lite.1\n", "Read 1373844 spots for ./data/SRR12544435.lite.1\n", "Written 1373844 spots for ./data/SRR12544435.lite.1\n", "Read 1373844 spots for ./data/SRR12544435.lite.1\n", "Written 1373844 spots for ./data/SRR12544435.lite.1\n", "\u001b[92mโœ“ parallel-fastq-dump completed successfully!\u001b[0m\n" ] } ], "source": [ "for sra in [\n", " 'SRR12544433','SRR12544435'\n", "]:\n", " ov.alignment.parallel_fastq_dump(\n", " sra_id=f'./data/{sra}.lite.1',\n", " threads=12,\n", " outdir=f'./data/{sra}',\n", " tmpdir='./tmp',\n", " split_files=True,\n", " gzip=True,\n", " )" ] }, { "cell_type": "markdown", "id": "c03cb8a6", "metadata": {}, "source": [ "## Step 3 โ€” Download reference genome + annotation\n", "\n", "We download **GRCh38** reference FASTA and **GTF** from Ensembl.\n", "\n", "โ–ฒ **CRITICAL**\n", "- Keep the FASTA and GTF from the **same Ensembl release** to avoid mismatches in transcript IDs.\n", "- Ensure enough disk space (human reference files are large).\n" ] }, { "cell_type": "code", "execution_count": 68, "id": "185d7454-8fbc-4feb-b60d-9f97c48710af", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[94m๐Ÿ” Downloading data to ./genomes/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[92mDownloading\u001b[0m: 100%|\u001b[32mโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‰\u001b[0m| 881M/881M [00:14<00:00, 60.9MB/s] " ] }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[92mโœ… Download completed\u001b[0m\n", "\u001b[94m๐Ÿ” Downloading data to ./genomes/Homo_sapiens.GRCh38.108.gtf.gz\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\u001b[92mDownloading\u001b[0m: 100%|\u001b[32mโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‰\u001b[0m| 54.1M/54.1M [00:03<00:00, 17.5MB/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[92mโœ… Download completed\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] }, { "data": { "text/plain": [ "'./genomes/Homo_sapiens.GRCh38.108.gtf.gz'" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ov.datasets.download_data('ftp://ftp.ensembl.org/pub/release-108/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz',\n", " dir='./genomes')\n", "ov.datasets.download_data('ftp://ftp.ensembl.org/pub/release-108/gtf/homo_sapiens/Homo_sapiens.GRCh38.108.gtf.gz',\n", " dir='./genomes')" ] }, { "cell_type": "markdown", "id": "f5bbdd89", "metadata": {}, "source": [ "## Step 4 โ€” Build kb-python reference (index + t2g + cDNA)\n", "\n", "`ov.alignment.single.ref(...)` prepares the kb-python reference assets:\n", "\n", "- `index.idx`: kallisto index\n", "- `t2g.txt`: transcript-to-gene mapping used to aggregate counts to genes\n", "- `cdna.fa`: transcriptome FASTA derived from the annotation\n", "\n", "โ–ฒ **CRITICAL**\n", "- The first build can be time-consuming; once built, reuse the same outputs for all samples.\n", "- Place the index on fast storage to speed up quantification.\n" ] }, { "cell_type": "code", "execution_count": 43, "id": "4824318a-8dc2-4a48-b95c-6ca4b9ca9b03", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1m\u001b[95m๐Ÿš€ Starting ref workflow: standard\u001b[0m\n", "\u001b[94m Using temporary directory: tmp-kb-e9513f2c23aa46d1961cde1d7afeba6b\u001b[0m\n", "\u001b[96m>> /home/groups/xiaojie/steorra/env/omicverse/bin/kb ref --tmp tmp-kb-e9513f2c23aa46d1961cde1d7afeba6b -i pbmc_1k_v3/index.idx -g pbmc_1k_v3/t2g.txt -t 8 --overwrite --d-list-overhang 1 -f1 pbmc_1k_v3/cdna.fa pbmc_1k_v3/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz pbmc_1k_v3/Homo_sapiens.GRCh38.108.gtf.gz\u001b[0m\n", "[2026-01-29 22:21:41,856] INFO [ref] Preparing pbmc_1k_v3/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz, pbmc_1k_v3/Homo_sapiens.GRCh38.108.gtf.gz\n", "[2026-01-29 22:22:33,317] INFO [ref] Splitting genome pbmc_1k_v3/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz into cDNA at /scratch/users/steorra/analysis/26_omic_protocol/tmp-kb-e9513f2c23aa46d1961cde1d7afeba6b/tmpoyd3o7ta\n", "[2026-01-29 22:23:30,907] INFO [ref] Concatenating 1 cDNAs to pbmc_1k_v3/cdna.fa\n", "[2026-01-29 22:23:31,551] INFO [ref] Creating transcript-to-gene mapping at pbmc_1k_v3/t2g.txt\n", "[2026-01-29 22:23:33,230] INFO [ref] Indexing pbmc_1k_v3/cdna.fa to pbmc_1k_v3/index.idx\n", "\u001b[92mโœ“ ref workflow completed!\u001b[0m\n", "dict_keys(['workflow', 'technology', 'parameters', 'index_path', 't2g_path', 'cdna_path'])\n" ] } ], "source": [ "result = ov.alignment.single.ref(\n", " fasta_paths='genomes/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz', #input\n", " gtf_paths='genomes/Homo_sapiens.GRCh38.108.gtf.gz', #input\n", " index_path='pbmc_1k_v3/index.idx', #output\n", " t2g_path='pbmc_1k_v3/t2g.txt', #output\n", " cdna_path='pbmc_1k_v3/cdna.fa', #output\n", " temp_dir='tmp',\n", " overwrite=True,\n", ")\n", "print(result.keys())" ] }, { "cell_type": "markdown", "id": "4d78998d", "metadata": {}, "source": [ "## Step 5 โ€” Quantify one sample with kb-python (technology = `BULK`)\n", "\n", "This is an example call for **one** sample.\n", "\n", "โ–ฒ **CRITICAL**\n", "- For bulk RNA-seq, each sample is treated as one โ€œlibraryโ€ (no barcode filtering).\n", "- `h5ad=True` writes an AnnData object for convenient downstream analysis in OmicVerse/Scanpy.\n", "- If your environment does not expose `count(...)` directly, the equivalent OmicVerse entry point is typically `ov.alignment.count(...)` (the rest of the arguments stay the same).\n" ] }, { "cell_type": "code", "execution_count": 50, "id": "b89024a0-4d53-4be0-a30f-9b318e1d75f8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1m\u001b[95m๐Ÿš€ Starting count workflow: standard\u001b[0m\n", "\u001b[96m Technology: BULK\u001b[0m\n", "\u001b[96m Output directory: .\u001b[0m\n", "\u001b[94m Using temporary directory: tmp-kb-6e8cfea103a042e79f4e83e5bd1facf2\u001b[0m\n", "\u001b[96m>> /home/groups/xiaojie/steorra/env/omicverse/bin/kb count --tmp tmp-kb-6e8cfea103a042e79f4e83e5bd1facf2 -i pbmc_1k_v3/index.idx -g pbmc_1k_v3/t2g.txt -x BULK -o . -t 12 -m 2G --h5ad --parity paired --strand unstranded ./data/SRR12544419/SRR12544419.lite.1_1.fastq.gz ./data/SRR12544419/SRR12544419.lite.1_2.fastq.gz\u001b[0m\n", "[2026-01-29 22:53:46,113] INFO [count] Using index pbmc_1k_v3/index.idx to generate BUS file to . from\n", "[2026-01-29 22:53:46,113] INFO [count] ./data/SRR12544419/SRR12544419.lite.1_1.fastq.gz\n", "[2026-01-29 22:53:46,113] INFO [count] ./data/SRR12544419/SRR12544419.lite.1_2.fastq.gz\n", "[2026-01-29 22:54:23,070] INFO [count] Sorting BUS file ./output.bus to tmp-kb-6e8cfea103a042e79f4e83e5bd1facf2/output.s.bus\n", "[2026-01-29 22:54:25,476] INFO [count] Inspecting BUS file tmp-kb-6e8cfea103a042e79f4e83e5bd1facf2/output.s.bus\n", "[2026-01-29 22:54:26,580] INFO [count] Generating count matrix ./counts_unfiltered/cells_x_genes from BUS file tmp-kb-6e8cfea103a042e79f4e83e5bd1facf2/output.s.bus\n", "[2026-01-29 22:54:28,602] INFO [count] Writing gene names to file ./counts_unfiltered/cells_x_genes.genes.names.txt\n", "[2026-01-29 22:54:28,835] WARNING [count] 22736 gene IDs do not have corresponding valid gene names. These genes will use their gene IDs instead.\n", "[2026-01-29 22:54:28,860] INFO [count] Reading matrix ./counts_unfiltered/cells_x_genes.mtx\n", "[2026-01-29 22:54:28,917] INFO [count] Writing matrix to h5ad ./counts_unfiltered/adata.h5ad\n", "\u001b[92mโœ“ count workflow completed!\u001b[0m\n", "dict_keys(['workflow', 'technology', 'output_path', 'parameters'])\n" ] } ], "source": [ "result = count(\n", " fastq_paths=[\n", " \"./data/SRR12544419/SRR12544419.lite.1_1.fastq.gz\", \n", " \"./data/SRR12544419/SRR12544419.lite.1_2.fastq.gz\",\n", " ],\n", " index_path=\"pbmc_1k_v3/index.idx\",\n", " t2g_path=\"pbmc_1k_v3/t2g.txt\",\n", " technology='BULK', # technology\n", " output_path=\"results/pbmc_test\",\n", " h5ad=True,\n", " filter_barcodes=False,\n", " threads=12,\n", " parity=\"paired\", # \n", " strand=\"unstranded\", # \n", ")\n", "print(result.keys())" ] }, { "cell_type": "markdown", "id": "07c4020a", "metadata": {}, "source": [ "## Step 5b โ€” Quantify all samples (loop)\n", "\n", "We run kb-python quantification for each sample and save results into per-sample output folders.\n", "\n", "Tip: In practice, you may want to set a clear naming convention for `output_path` (project/sample/date) to keep results reproducible.\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "d847019b-afc5-48eb-a0b9-99a8955aa3cf", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1m\u001b[95m๐Ÿš€ Starting count workflow: standard\u001b[0m\n", "\u001b[96m Technology: BULK\u001b[0m\n", "\u001b[96m Output directory: results/SRR12544419/\u001b[0m\n", "\u001b[94m Using temporary directory: tmp-kb-36a26e9c1a61444387dc9ef0c9f177dc\u001b[0m\n", "\u001b[96m>> /home/groups/xiaojie/steorra/env/omicverse/bin/kb count --tmp tmp-kb-36a26e9c1a61444387dc9ef0c9f177dc -i pbmc_1k_v3/index.idx -g pbmc_1k_v3/t2g.txt -x BULK -o results/SRR12544419/ -t 12 -m 2G --h5ad --parity paired --strand unstranded ./data/SRR12544419/SRR12544419.lite.1_1.fastq.gz ./data/SRR12544419/SRR12544419.lite.1_2.fastq.gz\u001b[0m\n", "[2026-01-30 00:03:00,630] INFO [count] Using index pbmc_1k_v3/index.idx to generate BUS file to results/SRR12544419/ from\n", "[2026-01-30 00:03:00,630] INFO [count] ./data/SRR12544419/SRR12544419.lite.1_1.fastq.gz\n", "[2026-01-30 00:03:00,630] INFO [count] ./data/SRR12544419/SRR12544419.lite.1_2.fastq.gz\n", "[2026-01-30 00:03:35,180] INFO [count] Sorting BUS file results/SRR12544419/output.bus to tmp-kb-36a26e9c1a61444387dc9ef0c9f177dc/output.s.bus\n", "[2026-01-30 00:03:37,594] INFO [count] Inspecting BUS file tmp-kb-36a26e9c1a61444387dc9ef0c9f177dc/output.s.bus\n", "[2026-01-30 00:03:38,702] INFO [count] Generating count matrix results/SRR12544419/counts_unfiltered/cells_x_genes from BUS file tmp-kb-36a26e9c1a61444387dc9ef0c9f177dc/output.s.bus\n", "[2026-01-30 00:03:41,325] INFO [count] Writing gene names to file results/SRR12544419/counts_unfiltered/cells_x_genes.genes.names.txt\n", "[2026-01-30 00:03:41,560] WARNING [count] 22736 gene IDs do not have corresponding valid gene names. These genes will use their gene IDs instead.\n", "[2026-01-30 00:03:41,586] INFO [count] Reading matrix results/SRR12544419/counts_unfiltered/cells_x_genes.mtx\n", "[2026-01-30 00:03:41,643] INFO [count] Writing matrix to h5ad results/SRR12544419/counts_unfiltered/adata.h5ad\n", "\u001b[92mโœ“ count workflow completed!\u001b[0m\n", "dict_keys(['workflow', 'technology', 'output_path', 'parameters'])\n", "\u001b[1m\u001b[95m๐Ÿš€ Starting count workflow: standard\u001b[0m\n", "\u001b[96m Technology: BULK\u001b[0m\n", "\u001b[96m Output directory: results/SRR12544421/\u001b[0m\n", "\u001b[94m Using temporary directory: tmp-kb-7dc3eb1f1a7f46369c65439c1df20d7e\u001b[0m\n", "\u001b[96m>> /home/groups/xiaojie/steorra/env/omicverse/bin/kb count --tmp tmp-kb-7dc3eb1f1a7f46369c65439c1df20d7e -i pbmc_1k_v3/index.idx -g pbmc_1k_v3/t2g.txt -x BULK -o results/SRR12544421/ -t 12 -m 2G --h5ad --parity paired --strand unstranded ./data/SRR12544421/SRR12544421.lite.1_1.fastq.gz ./data/SRR12544421/SRR12544421.lite.1_2.fastq.gz\u001b[0m\n", "[2026-01-30 00:03:53,957] INFO [count] Using index pbmc_1k_v3/index.idx to generate BUS file to results/SRR12544421/ from\n", "[2026-01-30 00:03:53,957] INFO [count] ./data/SRR12544421/SRR12544421.lite.1_1.fastq.gz\n", "[2026-01-30 00:03:53,957] INFO [count] ./data/SRR12544421/SRR12544421.lite.1_2.fastq.gz\n", "[2026-01-30 00:04:18,493] INFO [count] Sorting BUS file results/SRR12544421/output.bus to tmp-kb-7dc3eb1f1a7f46369c65439c1df20d7e/output.s.bus\n", "[2026-01-30 00:04:20,598] INFO [count] Inspecting BUS file tmp-kb-7dc3eb1f1a7f46369c65439c1df20d7e/output.s.bus\n", "[2026-01-30 00:04:21,702] INFO [count] Generating count matrix results/SRR12544421/counts_unfiltered/cells_x_genes from BUS file tmp-kb-7dc3eb1f1a7f46369c65439c1df20d7e/output.s.bus\n", "[2026-01-30 00:04:23,724] INFO [count] Writing gene names to file results/SRR12544421/counts_unfiltered/cells_x_genes.genes.names.txt\n", "[2026-01-30 00:04:23,956] WARNING [count] 22736 gene IDs do not have corresponding valid gene names. These genes will use their gene IDs instead.\n", "[2026-01-30 00:04:23,981] INFO [count] Reading matrix results/SRR12544421/counts_unfiltered/cells_x_genes.mtx\n", "[2026-01-30 00:04:24,037] INFO [count] Writing matrix to h5ad results/SRR12544421/counts_unfiltered/adata.h5ad\n", "\u001b[92mโœ“ count workflow completed!\u001b[0m\n", "dict_keys(['workflow', 'technology', 'output_path', 'parameters'])\n", "\u001b[1m\u001b[95m๐Ÿš€ Starting count workflow: standard\u001b[0m\n", "\u001b[96m Technology: BULK\u001b[0m\n", "\u001b[96m Output directory: results/SRR12544433/\u001b[0m\n", "\u001b[94m Using temporary directory: tmp-kb-f36592f2f361482c8829daecfd59d0a4\u001b[0m\n", "\u001b[96m>> /home/groups/xiaojie/steorra/env/omicverse/bin/kb count --tmp tmp-kb-f36592f2f361482c8829daecfd59d0a4 -i pbmc_1k_v3/index.idx -g pbmc_1k_v3/t2g.txt -x BULK -o results/SRR12544433/ -t 12 -m 2G --h5ad --parity paired --strand unstranded ./data/SRR12544433/SRR12544433.lite.1_1.fastq.gz ./data/SRR12544433/SRR12544433.lite.1_2.fastq.gz\u001b[0m\n", "[2026-01-30 00:04:33,656] INFO [count] Using index pbmc_1k_v3/index.idx to generate BUS file to results/SRR12544433/ from\n", "[2026-01-30 00:04:33,656] INFO [count] ./data/SRR12544433/SRR12544433.lite.1_1.fastq.gz\n", "[2026-01-30 00:04:33,656] INFO [count] ./data/SRR12544433/SRR12544433.lite.1_2.fastq.gz\n", "[2026-01-30 00:05:04,901] INFO [count] Sorting BUS file results/SRR12544433/output.bus to tmp-kb-f36592f2f361482c8829daecfd59d0a4/output.s.bus\n", "[2026-01-30 00:05:07,209] INFO [count] Inspecting BUS file tmp-kb-f36592f2f361482c8829daecfd59d0a4/output.s.bus\n", "[2026-01-30 00:05:08,313] INFO [count] Generating count matrix results/SRR12544433/counts_unfiltered/cells_x_genes from BUS file tmp-kb-f36592f2f361482c8829daecfd59d0a4/output.s.bus\n", "[2026-01-30 00:05:10,436] INFO [count] Writing gene names to file results/SRR12544433/counts_unfiltered/cells_x_genes.genes.names.txt\n", "[2026-01-30 00:05:10,667] WARNING [count] 22736 gene IDs do not have corresponding valid gene names. These genes will use their gene IDs instead.\n", "[2026-01-30 00:05:10,693] INFO [count] Reading matrix results/SRR12544433/counts_unfiltered/cells_x_genes.mtx\n", "[2026-01-30 00:05:10,749] INFO [count] Writing matrix to h5ad results/SRR12544433/counts_unfiltered/adata.h5ad\n", "\u001b[92mโœ“ count workflow completed!\u001b[0m\n", "dict_keys(['workflow', 'technology', 'output_path', 'parameters'])\n", "\u001b[1m\u001b[95m๐Ÿš€ Starting count workflow: standard\u001b[0m\n", "\u001b[96m Technology: BULK\u001b[0m\n", "\u001b[96m Output directory: results/SRR12544435/\u001b[0m\n", "\u001b[94m Using temporary directory: tmp-kb-7e11e84640b14489ad063057ba8b2738\u001b[0m\n", "\u001b[96m>> /home/groups/xiaojie/steorra/env/omicverse/bin/kb count --tmp tmp-kb-7e11e84640b14489ad063057ba8b2738 -i pbmc_1k_v3/index.idx -g pbmc_1k_v3/t2g.txt -x BULK -o results/SRR12544435/ -t 12 -m 2G --h5ad --parity paired --strand unstranded ./data/SRR12544435/SRR12544435.lite.1_1.fastq.gz ./data/SRR12544435/SRR12544435.lite.1_2.fastq.gz\u001b[0m\n", "[2026-01-30 00:05:21,328] INFO [count] Using index pbmc_1k_v3/index.idx to generate BUS file to results/SRR12544435/ from\n", "[2026-01-30 00:05:21,328] INFO [count] ./data/SRR12544435/SRR12544435.lite.1_1.fastq.gz\n", "[2026-01-30 00:05:21,328] INFO [count] ./data/SRR12544435/SRR12544435.lite.1_2.fastq.gz\n", "[2026-01-30 00:05:52,473] INFO [count] Sorting BUS file results/SRR12544435/output.bus to tmp-kb-7e11e84640b14489ad063057ba8b2738/output.s.bus\n", "[2026-01-30 00:05:54,882] INFO [count] Inspecting BUS file tmp-kb-7e11e84640b14489ad063057ba8b2738/output.s.bus\n", "[2026-01-30 00:05:55,986] INFO [count] Generating count matrix results/SRR12544435/counts_unfiltered/cells_x_genes from BUS file tmp-kb-7e11e84640b14489ad063057ba8b2738/output.s.bus\n", "[2026-01-30 00:05:58,108] INFO [count] Writing gene names to file results/SRR12544435/counts_unfiltered/cells_x_genes.genes.names.txt\n", "[2026-01-30 00:05:58,341] WARNING [count] 22736 gene IDs do not have corresponding valid gene names. These genes will use their gene IDs instead.\n", "[2026-01-30 00:05:58,366] INFO [count] Reading matrix results/SRR12544435/counts_unfiltered/cells_x_genes.mtx\n", "[2026-01-30 00:05:58,424] INFO [count] Writing matrix to h5ad results/SRR12544435/counts_unfiltered/adata.h5ad\n", "\u001b[92mโœ“ count workflow completed!\u001b[0m\n", "dict_keys(['workflow', 'technology', 'output_path', 'parameters'])\n" ] } ], "source": [ "for sra in [\n", " 'SRR12544419','SRR12544421','SRR12544433','SRR12544435'\n", "]:\n", " result = ov.alignment.count(\n", " fastq_paths=[\n", " f\"./data/{sra}/{sra}.lite.1_1.fastq.gz\", \n", " f\"./data/{sra}/{sra}.lite.1_2.fastq.gz\",\n", " ],\n", " index_path=\"pbmc_1k_v3/index.idx\",\n", " t2g_path=\"pbmc_1k_v3/t2g.txt\",\n", " technology='BULK', # technology\n", " output_path=f\"results/{sra}/\",\n", " h5ad=True,\n", " filter_barcodes=False,\n", " threads=12,\n", " parity=\"paired\", # โœ…ๅ…ณ้”ฎ\n", " strand=\"unstranded\", # โœ…ๅปบ่ฎฎๆ˜พๅผๅ†™\n", " )\n", " print(result.keys())" ] }, { "cell_type": "markdown", "id": "8cf450b1", "metadata": {}, "source": [ "## Step 6 โ€” Load per-sample results and harmonize gene identifiers\n", "\n", "Each kb-python run generates an `adata.h5ad` plus companion gene name files.\n", "We load per-sample AnnData objects and ensure `adata.var` contains both:\n", "\n", "- `gene_name`\n", "- `gene_id`\n", "\n", "โ–ฒ **CRITICAL**\n", "Gene naming conventions can differ across pipelines; explicitly setting `adata.var['gene_name']` and using it as index makes downstream merging and visualization more robust.\n" ] }, { "cell_type": "code", "execution_count": 11, "id": "902e6d21-bc5d-4e07-8d7f-3e682dd8dec8", "metadata": {}, "outputs": [], "source": [ "ad_dict={}\n", "for sra in [\n", " 'SRR12544419','SRR12544421','SRR12544433','SRR12544435'\n", "]:\n", " ad=ov.read(f'./results/{sra}/counts_unfiltered/adata.h5ad')\n", " gene_name=ov.pd.read_csv(\n", " f'./results/{sra}/counts_unfiltered/cells_x_genes.genes.names.txt',\n", " header=None\n", " )\n", " ad.var['gene_name']=gene_name[0].tolist()\n", " ad.var['gene_id']=ad.var.index\n", " ad.var.index=ad.var['gene_name']\n", " ad.var_names_make_unique()\n", " ad.obs['sra']=sra\n", " ad_dict[sra]=ad" ] }, { "cell_type": "markdown", "id": "95334457", "metadata": {}, "source": [ "## Step 7 โ€” Merge samples and define phenotype labels\n", "\n", "We concatenate all samples into one `AnnData` and create a `Group` column (e.g., disease vs healthy) for downstream DE.\n", "\n", "โ–ฒ **CRITICAL**\n", "For bulk RNA-seq, you typically want one observation per **sample**. In this demo workflow, each sampleโ€™s output is concatenated and then labeled via `adata.obs['Group']`.\n" ] }, { "cell_type": "code", "execution_count": 14, "id": "4860586e-edcc-4e6e-a824-f2c62ee4d094", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AnnData object with n_obs ร— n_vars = 4 ร— 62703\n", " obs: 'sra', 'Group'" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "adata=ov.concat(ad_dict)\n", "adata.obs_names_make_unique()\n", "adata.obs['Group']=['no','no','yes','yes']\n", "adata" ] }, { "cell_type": "markdown", "id": "54b9f23d", "metadata": {}, "source": [ "## Step 7b โ€” Quick sanity check (gene expression)\n", "\n", "A quick check on a marker gene can help confirm that the matrix was loaded correctly and contains non-zero counts where expected.\n" ] }, { "cell_type": "code", "execution_count": 15, "id": "8deb4304-2f43-4759-b7d4-1bdc63de42e6", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([[623.],\n", " [612.],\n", " [ 98.],\n", " [324.]])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "adata[:,'CD3D'].X.toarray()" ] }, { "cell_type": "markdown", "id": "ae844f41", "metadata": {}, "source": [ "## Step 8 โ€” Convert to a count matrix for DE\n", "\n", "`ov.bulk.pyDEG` expects a **gene ร— sample** count matrix (pandas DataFrame).\n", "Here we convert AnnData to a DataFrame and transpose to match that convention.\n", "\n", "โ–ฒ **CRITICAL**\n", "DESeq2-style methods require **raw integer counts**. Do not apply log-normalization before DESeq2.\n" ] }, { "cell_type": "code", "execution_count": 17, "id": "49290530-1353-4373-a828-09ffee57d2e4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
barcodeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-1AAAAAAAAAAAAAAAA-2AAAAAAAAAAAAAAAA-3
gene_name
ATAD3B90.070.030.0115.0
DDX11L174.00.00.00.0
ENSG00000228037.19.08.01.08.0
PRDM160.00.00.00.0
ENSG00000284616.10.00.00.00.0
\n", "
" ], "text/plain": [ "barcode AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA-1 AAAAAAAAAAAAAAAA-2 \\\n", "gene_name \n", "ATAD3B 90.0 70.0 30.0 \n", "DDX11L17 4.0 0.0 0.0 \n", "ENSG00000228037.1 9.0 8.0 1.0 \n", "PRDM16 0.0 0.0 0.0 \n", "ENSG00000284616.1 0.0 0.0 0.0 \n", "\n", "barcode AAAAAAAAAAAAAAAA-3 \n", "gene_name \n", "ATAD3B 115.0 \n", "DDX11L17 0.0 \n", "ENSG00000228037.1 8.0 \n", "PRDM16 0.0 \n", "ENSG00000284616.1 0.0 " ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data=adata.to_df().T\n", "data.head()" ] }, { "cell_type": "markdown", "id": "83cd8d44", "metadata": {}, "source": [ "## Step 9 โ€” Create a `pyDEG` object\n", "\n", "We wrap the count matrix into an OmicVerse `pyDEG` object for differential expression analysis.\n" ] }, { "cell_type": "code", "execution_count": 18, "id": "5e90f990-35d5-4a5e-b30b-22550632f767", "metadata": {}, "outputs": [], "source": [ "dds=ov.bulk.pyDEG(data)" ] }, { "cell_type": "markdown", "id": "4e3827ce", "metadata": {}, "source": [ "## Step 10 โ€” Differential expression (DESeq2)\n", "\n", "We run DE analysis using the **DESeq2** backend.\n", "\n", "โ–ฒ **CRITICAL**\n", "- DESeq2 expects raw integer counts and internally estimates size factors/dispersion.\n", "- The `treatment_groups` and `control_groups` here refer to the **column/sample identifiers** in the provided matrix. In your own data, replace them with the appropriate sample IDs (often the sample names).\n" ] }, { "cell_type": "code", "execution_count": 19, "id": "f9ceadee-7989-4af2-995f-e249080e7026", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "... drop_duplicates_index success\n", "โš™๏ธ You are using DEseq2 method for differential expression analysis.\n", "โฐ Start to create DeseqDataSet...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Fitting size factors...\n", "... done in 0.00 seconds.\n", "\n", "Fitting dispersions...\n", "... done in 1.55 seconds.\n", "\n", "Fitting dispersion trend curve...\n", "... done in 0.41 seconds.\n", "\n", "Fitting MAP dispersions...\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "logres_prior=1.2473932639674563, sigma_prior=0.25\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "... done in 1.99 seconds.\n", "\n", "Fitting LFCs...\n", "... done in 1.79 seconds.\n", "\n", "Calculating cook's distance...\n", "... done in 0.01 seconds.\n", "\n", "Replacing 0 outlier genes.\n", "\n", "Running Wald tests...\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Log2 fold change & Wald test p-value: condition Treatment vs Control\n", " baseMean log2FoldChange lfcSE stat \\\n", "gene_name \n", "B2M 178491.812733 0.065096 0.418607 0.155506 \n", "S100A9 170557.796728 0.378402 0.248436 1.523133 \n", "S100A8 154015.888583 0.914504 0.455013 2.009840 \n", "MT-RNR2 143254.671256 0.434606 0.553576 0.785089 \n", "HBB 127090.703257 2.661912 1.449787 1.836071 \n", "... ... ... ... ... \n", "ENSG00000273937.1 0.000000 NaN NaN NaN \n", "ENSG00000278633.1 0.000000 NaN NaN NaN \n", "ENSG00000278066.1 0.000000 NaN NaN NaN \n", "ENSG00000277374.1 0.000000 NaN NaN NaN \n", "ENSG00000275661.1 0.000000 NaN NaN NaN \n", "\n", " pvalue padj \n", "gene_name \n", "B2M 0.876422 0.996897 \n", "S100A9 0.127725 0.669610 \n", "S100A8 0.044448 0.402458 \n", "MT-RNR2 0.432402 0.948016 \n", "HBB 0.066347 0.493618 \n", "... ... ... \n", "ENSG00000273937.1 NaN NaN \n", "ENSG00000278633.1 NaN NaN \n", "ENSG00000278066.1 NaN NaN \n", "ENSG00000277374.1 NaN NaN \n", "ENSG00000275661.1 NaN NaN \n", "\n", "[62703 rows x 6 columns]\n", "โœ… Differential expression analysis completed.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "... done in 23.00 seconds.\n", "\n" ] } ], "source": [ "dds.drop_duplicates_index()\n", "print('... drop_duplicates_index success')\n", "treatment_groups=['AAAAAAAAAAAAAAAA-2','AAAAAAAAAAAAAAAA-3']\n", "control_groups=['AAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAA-1']\n", "result=dds.deg_analysis(treatment_groups,control_groups,method='DEseq2')\n" ] }, { "cell_type": "markdown", "id": "70ed77d2", "metadata": {}, "source": [ "## Step 11 โ€” Filter low-expression genes\n", "\n", "Filtering removes genes with insufficient signal and can improve interpretability and multiple-testing behavior.\n", "\n", "Here we apply a `BaseMean` threshold after DE is computed.\n" ] }, { "cell_type": "code", "execution_count": 21, "id": "fa9c352f-f117-439f-a4d1-77f13a332bb9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(21002, 14)\n", "(21002, 14)\n" ] } ], "source": [ "print(result.shape)\n", "result=result.loc[result['log2(BaseMean)']>1]\n", "print(result.shape)" ] }, { "cell_type": "markdown", "id": "b3261835", "metadata": {}, "source": [ "## Step 12 โ€” Set DEG thresholds\n", "\n", "We set thresholds for significance and fold-change, which control DEG calling and downstream visualization.\n" ] }, { "cell_type": "code", "execution_count": 22, "id": "2b355769-81a9-477a-9ef6-506dded57d8d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "... Fold change threshold: 2.9757964388302165\n" ] } ], "source": [ "# -1 means automatically calculates\n", "dds.foldchange_set(fc_threshold=-1,\n", " pval_threshold=0.05,\n", " logp_max=10)" ] }, { "cell_type": "markdown", "id": "7438bba0", "metadata": {}, "source": [ "## Step 13 โ€” Visualize DEGs (volcano plot)\n", "\n", "A volcano plot summarizes effect size (log2FC) vs significance.\n", "\n", "Tip: After identifying DEGs, typical next steps include:\n", "- Gene set enrichment (GO/KEGG/Reactome)\n", "- Pathway visualization\n", "- PPI network analysis\n", "\n", "(Those downstream steps can be added as additional sections depending on your tutorial scope.)\n" ] }, { "cell_type": "code", "execution_count": 23, "id": "bd50f6a1-5638-4895-902e-5b42251524ce", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[95m\u001b[1m๐ŸŒ‹ Volcano Plot Analysis:\u001b[0m\n", " \u001b[96mTotal genes: \u001b[1m62703\u001b[0m\n", " \u001b[92mโ†—๏ธ Upregulated genes: \u001b[1m56\u001b[0m\n", " \u001b[94mโ†˜๏ธ Downregulated genes: \u001b[1m39\u001b[0m\n", " \u001b[96mโžก๏ธ Non-significant genes: \u001b[1m62608\u001b[0m\n", " \u001b[93m๐ŸŽฏ Total significant genes: \u001b[1m95\u001b[0m\n", " \u001b[94mlog2FC range: \u001b[1m-10.26 to 10.10\u001b[0m\n", " \u001b[94mqvalue range: \u001b[1m5.94e-14 to 1.00e+00\u001b[0m\n", "\n", "\u001b[95m\u001b[1mโš™๏ธ Current Function Parameters:\u001b[0m\n", " \u001b[94mData columns: pval_name='qvalue', fc_name='log2FC'\u001b[0m\n", " \u001b[94mThresholds: pval_threshold=\u001b[1m0.05\u001b[0m\u001b[94m, fc_max=\u001b[1m2.9757964388302165\u001b[0m\u001b[94m, fc_min=\u001b[1m-2.9757964388302165\u001b[0m\n", " \u001b[94mPlot size: figsize=\u001b[1m(4, 4)\u001b[0m\n", " \u001b[94mGene labels: plot_genes_num=\u001b[1m8\u001b[0m\u001b[94m, plot_genes_fontsize=\u001b[1m12\u001b[0m\n", " \u001b[94mCustom genes: \u001b[1mNone\u001b[0m\u001b[94m (auto-select top genes)\u001b[0m\n", "\n", "\u001b[95m\u001b[1m๐Ÿ’ก Parameter Optimization Suggestions:\u001b[0m\n", " \u001b[92mโœ… Current parameters are optimal for your data!\u001b[0m\n", "\u001b[96mโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\u001b[0m\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAooAAAKzCAYAAACZASzpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAABibAAAYmwFJdYOUAAEAAElEQVR4nOzdd3hUZfbA8e+90zPJpIcAofdeFQHBXsBeF9uuu5bVVVfX3dVtv9Vd27rVsuqKvWPvWFARUAREQEA6SSCBBNInmUy/9/fHZC6ZZJJMQkIo5/M8eQx37r3zThjJmfO+7zmKrus6QgghhBBCNKF29wCEEEIIIcTBSQJFIYQQQggRlwSKQgghhBAiLgkUhRBCCCFEXBIoCiGEEEKIuCRQFEIIIYQQcUmgKIQQQggh4pJAUQghhBBCxCWBohBCCCGEiEsCRSGEEEIIEZcEikIIIYQQIi4JFIUQQgghRFwSKAohhBBCiLgkUBRCCCGEEHFJoCiEEEIIIeKSQFEI0S2uvPJKFEVp8ctkMpGUlEReXh4zZ87k7rvvpqCgoM37FhYWtnrfRL4Soes6n376KTfddBPHHHMM2dnZWK1WXC4XgwYN4rTTTuOf//xnQmPuiN/85jfGeJOTk6mtre2S5+lKd955p/Ea3nnnne4ejuHLL780xnXLLbd093CE6FYSKAohDkqapuH1etm1axdLlizh//7v/xgyZAi33347fr+/W8f23nvvMXz4cE477TT++9//snz5csrLywkGg9TW1pKfn8+nn37Kb3/7W4YOHcrPf/5zampqOu35w+EwL730kvFnj8cT82chhOgs5u4egBBC3HTTTZx44okxx8LhMB6Ph127drF06VLmz59POBzm73//Oxs3buTtt9/GZDK1et/s7Gzmzp3baePUNI2bb76Z//73v8axrKwsZs+ezaRJk8jOziYYDFJUVMSnn37KV199RSgUYu7cuaxYsYJPPvmEnJyc/R7HJ598QmlpKQA9evRgz549PPHEE1x33XX7fW8hhIihCyFEN/jJT36iAzqgP/PMM22ev2rVKr1fv37GNb/85S/jnldQUGCc069fv04d8y233GLc22636//4xz90n8/X4vmrV6/WJ02aZFxz1llndco4LrroIh3Qe/bsqf/+97837r9y5cpOuf+Bcscddxhjf/vtt7t7OEKIOGTqWQhxSJgwYQILFizA5XIB8PDDD7N+/foD9vzz58/ngQceAMDpdPL555/zm9/8BpvN1uI148ePZ+HChYwZMwaA999/n48//ni/xlFVVcV7770HwIwZM7jggguMx5544on9urcQQjQlgaIQ4pAxZMgQ7r77biCymeQvf/nLAXleTdP49a9/bfz5kUceYdq0aQldm5KSEjNV/dRTT+3XWF599VVjjeZZZ53FpEmTGDRoEAAvv/wyHo9nv+4vhBCNSaAohDikXH311aSnpwPw7rvvHpDA6OOPP2bTpk0ATJo0iZ/85Cftun7mzJmMGzeOadOmcdRRR+3XWJ599lkALBYLZ555JgCXXnopALW1tcybN6/V6xvvCv/f//4HwIIFC7jgggvIy8vDZrPRq1cvLrzwQj777LM2x1NVVcW//vUvZs2aRZ8+fUhKSsLhcNC7d29mzZrFY4891u7NR+PHjzfG2Nau8e3btxvnXn311TGPud1u/v73vzNjxgwyMjKwWq3k5OQwdepU7rzzTmOdZ1OJ7HpesmQJP/7xjxk0aBAOh4Pk5GQGDhzIZZddZmR8hTgsdPfctxDiyNTeNYqNXXzxxca1H330UcxjXbFG8fLLLzfu+dBDD3XoHqFQaL/HsWnTprjrHTdv3mwcP/roo1u9R+Ofz2OPPabfdNNNxp/jff3qV79q8V6vvPKK7nK5Wr0e0IcPH64XFRU1u76lNYr//ve/jeN33313q6/nzjvvNM5dtGiRcXzdunV67969Wx1XUlKS/vrrrze758KFC41zbr755maP33zzzW2+5hNPPFGvra1tdexCHAokoyiEOORMnDjR+P7rr7/u8udrnFk744wzOnSPtnZoJ+K5554zvr/iiiuM74cOHcqUKVMAWLFiBWvXrk3ofg8++CAPP/wwqamp3Hrrrbz88ss88cQTnHbaacY5//nPf5g/f36zaz///HMuvfRS3G43NpuNq666iieffJI33niDp556iquuugqHwwHApk2buPHGGxN+nZdddhlmc6QoR1tlf6KPDxgwgBkzZgDg9/s599xz2bVrF6qqcskll/DEE0/w+uuv8/DDDxuvr76+nksvvZTt27cnPLannnqKBx98EICBAwfy17/+lVdeeYUXXniB3//+92RlZQHwxRdf8Mtf/jLh+wpx0OruSFUIcWTan4zivHnzjGuvvvrqmMc6O6O4d+9e434ZGRn7fb+OCofDel5eng7oqamputfrjXn8kUceMcZ5ww03tHifxj8fQB82bJheXFzc7LzGmcZzzz232ePR3dwmk0lfvHhx3Of69ttvdbPZrAO62WzWq6urYx5vbdfz2WefbTy2atWquPf/5ptvjHP+/Oc/G8fffvtt4/h9990X99rGz/3rX/865rHWMorjxo3TAb1Xr156eXl5s/vu2rVL79Wrl/GzafqahTjUSEZRCHHIie58BqioqGjxvB07drS7K0thYWHMPYqLi43ve/To0emvJVGff/65MZYLL7wQu90e8/icOXOwWq1AJMvm9XoTuu9jjz1G7969mx2Pdk0BWL58ecxjBQUFfPfddwBcfPHFRiavqcmTJ3PKKacAEAqF2pW5u/LKK43vW8oqvvjii8b3P/7xj43vN2/ebHwfXcfZ1O23386AAQOYOnVqzPupLdF7T506lczMzGaP9+rVi5tuuskoyF5SUpLwvYU4GEmgKIQ45FgsFuP7rm5d13izTEZGRqvnlpeXJxSMdqRdXUvTzo3HNnv2bACqq6t57bXX2rxnZmYmJ5xwQtzHMjIyjACyaTDev39/iouLWbRoEXfddVerzzFgwADj+/r6+jbHFHXmmWca07ivvPIKmqbFPB4MBnn11VcBmD59urHzGzCuA/j3v/9NIBBodn+Hw0F+fj5Lly7lz3/+c8Ljit57wYIFRrDc1O9+9zs2btzIhx9+yPDhwxO+txAHI+nMIoQ45LjdbuP7lJSUFs/rSGeWpp1TGmfu4gUcB0JtbS1vv/02AH379mXmzJlxz/vxj39sBKFz585tc3f2iBEjWn08NTWV4uJigsFgzHFFUejdu3fcTCRAXV0d69at45tvvolZ3xkOh1t9vsYsFguXXnopDz30ELt37+bLL7+M6d7z8ccfU15eDtDsdZ599tnY7XZ8Ph/PPPMMn3zyCeeeey6nn346J5xwAsnJyQmPo6kf/ehH/Otf/8LtdnP00Udz4okncsYZZ3DqqacycuTIDt9XiIOVBIpCiENO40AxLS2txfOSkpI499xz9+u5Gk83tzWN6HK5jICuqXnz5hkZsPZ67bXXjGxcTk4O999/f9zzAoEAiqKg6zpLly5lw4YNrQYvqamprT5vdEOJrustnrNjxw7ef/99vv/+e7Zu3cr27dvZtWtX3Gtau088V155JQ899BAQmX5uHCi+8MILQCSQv/jii2Ouy87O5plnnuHHP/4xwWCQ3bt38+ijj/Loo49isViYPn06Z511FhdffDF5eXntGtNf/vIXvv76a5YtW4amaXz22WdGMJyXl8fs2bM5//zzOfnkkztlA5MQ3U0CRSHEISda0xBg2LBhXfpcffr0weVy4Xa72bVrF1VVVUYdx6asVmuLgemaNWs6PIbG084rV65k5cqVCV03d+5co5tMPNFAsCPq6+v55S9/yTPPPNNsWhgiU7szZ87E7XbzzTffdOg5JkyYwNixY1m7di1vvvkmjz76KDabjZqaGt5//30AzjnnnLgB75w5cxg1ahT33Xcf7777rhFoB4NBvvzyS7788kt++9vf8rOf/YwHHngAp9OZ0JicTidLlizhkUce4YknnuCHH34wHisuLmbu3LnMnTuXgQMH8r///c9YoynEoUrWKAohDjmNA6X9LWCdiOg6Pl3XEypC3Zny8/P56quvOnTtCy+8gM/n6+QRRTrVnHnmmTz11FNomobdbuf000/nD3/4Ay+99BJr1qzB7Xbz8ccfM2nSpP16ruimlpqaGj788EMA3nrrLeN1Nd7E0tSYMWN4+eWXKS8v54MPPuDmm29m1KhRMa/jySefZM6cOe0ak9ls5uabb2b9+vVs2bKFBx98kLPOOitmU0x+fj5nnnlmh4NkIQ4WEigKIQ4p5eXlRuDkcrmYOnVqlz9n40Ai2s3kQHnuueeMKdu7774bXdfb/IpmWSsrK3nzzTc7fUzz5s1j4cKFABx99NEUFhby0Ucfcc8993DppZcybtw4I1tZXV29X8/VuKZidP3lu+++C0Bubm5MzceWOBwOzjjjDB544AHWr1/Pjh07uOOOO4yp4Q8++CDhLG1TQ4YM4Ze//CXvvfce5eXlfPTRR0ZwHAgEuOeeezp0XyEOFhIoCiEOKU888YTREu6iiy4yijp3pQsuuID+/fsDkULKb731Vpc/J0QymM8//7zx50suuSSh6xpv7mjvZp5EfPDBB8b3f//731stG9R4yr29axQhsiYzupv7ww8/pK6ujgULFgCR1oXx1gG+99573HvvvfzpT3+Ke8++ffty5513xrTn+/7779scS2FhIXPnzuXWW29l2bJlzR63WCycfvrpLFiwwNiZn8h9hTiYSaAohDhkbN68mbvvvhuI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VjM2qwlnUvNpvs4eS2lJMe++8WzMuedceCW5PfO6bCyie5jNZlRVRVVVwuFwi2sUd+7cyRNPPAHQ8MFC4/rrryc7Ozvu+SaXC9VuR3U40NzuhNYoam43qsOBarfLrmdxyJNAcT88//zz3HDDDdTV1cUcLygooKCggOeff557772X2267rZtGKETXMZtUeuY4qarxUV3rx5UcW4qkduholrz0OZrVii83D03XcdcFSEux0TPH2akZxZbGUlmxl7dfeyrm3BknzCYnt3eXjUV0D0VRsNvtBINBQqGQUTuxqT179vD444/HHJszZ06LGUXFbMbSty+h8nLClZWoaWmg6+h+f6Skkqqi2GyR7CGREjnhqipMGRlY+vaVjSzikHdA3sGPPfYYTz75JBs3bkTTNHr16sWIESOYOHGiUQ4n7xBbQP7CCy9w5ZVXous6ZrOZSy+9lOOOOw6LxcJnn33GSy+9RDgc5vbbb6dnz55cccUV3T1kIdrtnseWU+VOrJPFpvwqAMwmhROOiSz6r+87ENhXu1BRFEJhnfVbKvj0qx1UVPvwB8LYrCZSkiz07+1i1JAsRg7OaPEX9ydfFbLg651tjsVsVlG0NI4/80a+XfQKntoKIJJFio4l2WmlT24KeyvqWfLdLrbtqKa64fWmptgY0j+N447KIyvdkdDPQHQvu92O1+slFAoRCASMOoqNW/jFY7W2XtPTOnAgge3bCZWV4d+wAUwmCIeNeypmM2pqKmpqKlplJagqptRUrAMHdsXLFOKA6vJA8ZprruHpp58G9q0HKSwsZMeOHXz88cfGednZ2cbmlmgdxd69e8e9Z3crKSnhxhtvRNd1kpOTef/99zn++OONx6+44gouuugizj77bHRd57e//S1z5syJu6NOiEOB2azisMVfmxUORzamhLXI/99mk2qsE2zcmSUQ1Kio9lFTuy/wVAC73UwwGGZvZYi9lV5WrNtDz2wnl509nNys1jeYpDhj/5+KjiUU1gmFNMDMpGMvYvTk2bz1zG3s3rGeskovqdkaPbOdDB+YweaCKt74eAuhcGT8NquJUFijvMpLeZWXlev2cMmZwxg7LP7UpDh4mM1mkpOT0XUdn88XU14t2pnF6/XGva41JpcLU0YGeiBAqKICPRiMZBKj15lMKFVVkY4tqanYhg/HPnasTDuLw0KXBoqffvopTz31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SExMxEsvvQRvb2/4+/ujTp06+PrrrwEA77zzDmbOnGmyr16vx/r16+Hn54cTJ04gNDQUlSpVgre3N1599VWkpqaiV69eWL9+fZG/HypfGCgSUZnStWtXnDhxAlFRUQgODkZubi6CgoIwevRonD59Wp6KxpKtW7fis88+Q6NGjeRVPYYMGYKjR4/ijTfecPh8goKC8Ntvv2Hx4sVyDVVaWhpq1KiBl19+GQcPHrS6ssoHH3yA33//HUOGDEFISAgyMzNRrVo19O/fH/v27ZObn8u7WrVq4ciRI5g9ezZCQ0Ph5uYGvV6Pfv364ciRIxbnv+zVqxcSEhIwadIktGjRAkD+iOjmzZtj0qRJOHPmDKKioizmK5qfAduBoqVpcYpT06ZNcerUKcyaNQtt27aFp6cn0tPTUatWLQwdOhSHDx/GF198odpv8qmnnsKpU6cwduxY1K5dG0ajEQaDAV26dMGqVauwfft2ecJtIks0EqdjJyIn5Tx4gNtvv+30/tXnzoVWZUWNorZq1SqMGDECQP4oWP44WvcoxYj/Lfk/p/efPu4fqOyrt52QiFweaxSJiIiISBUDRSIiIiJSxUCRiIiIiFSV3/kWiKjYufv5ofrcuYXan1xPJR8dpo+zby5JS/sTUfnAwSxEREREpIpNz0RERESkioEiEREREalioEhEREREqhgoEhEREZEqBopEREREpIqBIhERERGpYqBIRERERKoYKBIRERGRKgaKRERERKSKgSIRERERqWKgSERERESqGCgSERERkSoGikRERESkioEiEREREalioEhEREREqv4fDi1DTtEhFiAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 345, "width": 325 } }, "output_type": "display_data" } ], "source": [ "dds.plot_volcano(title='DEG Analysis',figsize=(4,4),\n", " plot_genes_num=8,plot_genes_fontsize=12,)" ] }, { "cell_type": "code", "execution_count": null, "id": "f9bb91a0-e23e-479a-bfde-5a99c8b00d96", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "2970fdd2", "metadata": {}, "source": [ "---\n", "\n", "## Notes on scaling and reproducibility\n", "\n", "- **CPU & memory:** kb-python is usually lighter than full-genome alignment, but index building and quantification still benefit from multiple threads and fast disk.\n", "- **Reference consistency:** Always keep FASTA/GTF release versions consistent (and document the release in your tutorial).\n", "- **Project structure:** Consider organizing outputs as `results///...` and saving a `metadata.csv` describing groups/replicates.\n", "\n", "If you want, I can extend this notebook by **adding new Markdown + new code cells** for enrichment and PPI analysis (without touching existing cells), following the same OmicVerse tutorial style.\n" ] } ], "metadata": { "kernelspec": { "display_name": "omicverse", "language": "python", "name": "omicverse" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.17" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }