omics.co.in logo omics.co.in

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 logs

Downloading 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 chr1 or 1; divergent naming causes silent alignment drops.
Was this guide helpful to your research?
Help us maintain 100% accurate, peer-reviewed bioinformatics standards.
📝 Propose Edit on GitHub ↗