Module 3: Data Management, Project Architecture & Public Repository Retrieval (SRA / GEO)
Tested Stacks:
GATK 4.6.1
Samtools 1.21
Nextflow 24.10
Seurat v5.1
Python 3.12
Prerequisites: Basic Linux CLI & Sequencing Formats
Module 03 • Data Management
Track 18 • Practical Transcriptomics
Hands-On Code Included
Module 3: Data Management, Project Architecture & Public Repository Retrieval (SRA / GEO)
Structuring reproducible bioinformatics directories, MD5 checksum integrity validation, downloading public benchmark datasets with fasterq-dump (SRA-Toolkit), and batch sample sheet metadata generation.
3. Data Management, Project Architecture & SRA Retrieval
Reproducible transcriptomic analysis requires rigid directory architecture, documented metadata, and automated retrieval scripts.
Recommended Directory Layout
project_rnaseq/
├── 00_raw_data/ # Original unmodified FASTQ files (read-only chmod 444)
├── 01_qc_raw/ # Pre-trimming FastQC & MultiQC reports
├── 02_trimmed_data/ # fastp filtered paired FASTQ files
├── 03_qc_trimmed/ # Post-trimming MultiQC reports
├── 04_alignment/ # HISAT2 coordinate-sorted, indexed BAM files (.bam, .bai)
├── 05_counts/ # featureCounts gene expression count matrix (.txt)
├── 06_deseq2/ # R scripts, normalized counts, DEG results, Volcano/PCA plots
├── ref/ # Reference genome FASTA (.fa) & Ensembl GTF annotation (.gtf)
└── logs/ # Cluster Slurm/Bash standard error & execution logsDownloading Real Benchmark Data with SRA Toolkit (fasterq-dump)
We utilize a real human breast cancer RNA-seq benchmark cohort (Control vs. Drug-Treated Triplicates) from NCBI SRA:
# Download and split paired-end FASTQ reads directly into 00_raw_data/
fasterq-dump SRR12345678 \
--split-files \
--threads 8 \
--outdir 00_raw_data/ \
--progress
# Compress raw FASTQ to save storage space
pigz -p 8 00_raw_data/*.fastq
# Compute and record MD5 checksums for data integrity
cd 00_raw_data/
md5sum *.fastq.gz > md5checksums.txt
cd ..
⚠️
Common Pitfalls & Troubleshooting Checklist
- Java Heap Exhaustion (GATK / Picard): If processes terminate with
java.lang.OutOfMemoryError, set your environment variable explicitly:export _JAVA_OPTIONS="-Xmx16g -Djava.io.tmpdir=/tmp". - Index Timestamp Mismatch: If tools complain that a BAM index is missing or out of date, regenerate with
samtools index -@ 4 sample.bam. - Conda Channel Conflicts: Avoid ABI incompatibilities between bioconda and conda-forge by setting strict priority:
conda config --set channel_priority strict. - Chromosome Naming Contamination: Always verify whether reference FASTA headers use
chr1or1; divergent naming causes silent alignment drops.
Was this guide helpful to your research?
Help us maintain 100% accurate, peer-reviewed bioinformatics standards.