Breaking Down the RENEE Command Line
renee run \
--input /data/classes/BTEP/hcc1395_renee_b4b/reads/*.R?.fastq.gz \
--output /data/$USER/hcc1395_renee_b4b \
--genome hg38_36 \
--mode slurm \
--star-2-pass-basic \
--sif-cache /data/CCBR_Pipeliner/SIFs \
--partition student \
--time 8:00:00
This command runs RENEE (RNA sEquencing aNalysis pipElinE), an RNA-seq analysis pipeline. Even if you never touch this specific tool, the structure of this command is something you'll see over and over in Unix: program subcommand --flag value --flag value ...
1. The program and subcommand
renee run
renee— the name of the program being executed. It's just a word that the shell looks up on your PATH to find the actual executable file.run— a subcommand. Many complex command-line tools (git,docker, conda, and hererenee`) bundle multiple related actions into one program, and you pick which action with a subcommand. renee run starts a pipeline run, as opposed to other subcommands like renee build or renee unlock.
Everything after this is a series of flags (also called options or switches), each starting with -- and usually followed by a value.
2. --input
/data/classes/BTEP/hcc1395_renee_b4b/reads/*.R?.fastq.gz
This tells RENEE which raw data files to process.
/data/...— an absolute path, meaning it starts from the root directory (/) and describes the exact location of a file or folder, regardless of your current directory.*— the wildcard (or "glob") character meaning "match anything (zero or more characters)." The shell expands this before RENEE ever sees it — so if the folder containssample1.R1.fastq.gz,sample1.R2.fastq.gz,sample2.R1.fastq.gz, etc., the shell turns*.R?.fastq.gzinto a full list of all those filenames.?— a wildcard that matches exactly one character. SoR?matchesR1orR2(common notation for "read 1" and "read 2" in paired-end sequencing), but wouldn't matchR10..fastq.gz— the file extension, indicating these are FASTQ sequence files (the standard format for raw sequencing reads) that have been compressed with gzip.
Take Away
Wildcards let you specify many files with one short pattern instead of typing every filename.
3. --output /data/$USER/hcc1395_renee_b4b
Where RENEE should write its results.
$USER— an environment variable. The$tells the shell "substitute the value of this variable here."$USERis set automatically by the system to your username. So if your username isjsmith, this path becomes/data/jsmith/hcc1395_renee_b4b.
Using $USER instead of hardcoding a username makes commands portable — the same command works for any user without editing it.
4. --genome hg38_36
Specifies which reference genome to align the sequencing reads against. hg38 refers to a specific version (build) of the human reference genome; _36 indicates a particular annotation release bundled with it. This isn't a general Unix concept — it's an option specific to RENEE.
5. --mode slurm
Tells RENEE how to execute its jobs. slurm refers to Slurm, a job scheduler used on many high-performance computing (HPC) clusters to allocate compute resources and queue jobs. In slurm mode, RENEE submits its work as jobs to the cluster's scheduler rather than running everything directly on the machine you're typing on (which would be --mode local).
6. --star-2-pass-basic
A boolean flag (also called a "switch"). Notice it has no value after it — its mere presence turns a feature on. This one enables "2-pass" mode in STAR (the read-aligner RENEE uses internally), which improves detection of splice junctions by aligning reads twice: once to find junctions, and again using that extra information.
This is a good general lesson: not every flag takes an argument. Some just mean "yes, do this."
7. --sif-cache /data/CCBR_Pipeliner/SIFs
Points to a folder of pre-downloaded Singularity Image Files (.sif) — these are containers, self-contained bundles of software and dependencies, similar in spirit to Docker images but used on HPC systems. Pointing to a shared cache means RENEE reuses containers that already exist there instead of re-downloading them, saving time and storage.
8. --partition student
Another Slurm-related option: a partition is a named subset of a cluster's compute nodes (e.g., grouped by hardware type or by who's allowed to use them). student here refers to a partition reserved for training use.
9. --time 8:00:00
Sets the walltime limit for the Slurm job — the maximum time it's allowed to run, in HH:MM:SS format. Here, 8 hours. If the pipeline isn't finished by then, Slurm will terminate it. This is a standard part of requesting resources on shared HPC systems, since the scheduler needs to know how long to reserve resources for.
Key Unix takeaways for students
| Concept | Example from this command | What it means |
|---|---|---|
| Subcommand | run` | Selects which action a multi-purpose tool performs |
| Absolute path | /data/classes/... |
Full location starting from root / |
Wildcard * |
*.R?.fastq.gz |
Matches any number of characters |
Wildcard ? |
R? |
Matches exactly one character |
| Environment variable | $USER |
Shell substitutes in a stored value |
| Flag with a value | --genome hg38_36 |
--flag value pairs configure behavior |
| Boolean flag | --star-2-pass-basic |
Presence alone toggles a feature on |
| Line continuation | \ at end of line |
Lets one long command be split across lines for readability |