You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+17-2Lines changed: 17 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@ Designed around the [Himes et al. (2014)](https://doi.org/10.1371/journal.pone.0
14
14
- Full synthetic smoke test in GitHub Actions, including containerised FastQC, fastp, HISAT2, samtools, featureCounts, DESeq2 and MultiQC.
15
15
- Docker, Singularity and AWS Batch profiles in `nextflow.config`.
16
16
- Containerised FastAPI report portal under `cloud/report-portal/` for S3-hosted reports and Postgres run metadata.
17
+
- Render Blueprint at `render.yaml` for a deployable FastAPI plus Postgres report portal.
17
18
-`nextflow_schema.json` for parameter discovery in Seqera Platform and other launch tooling.
18
19
- Nextflow execution report, timeline, trace and DAG written to `results/pipeline_info/` on every run.
19
20
-`scripts/validate_outputs.py` checks count matrices, DESeq2 output, plots, MultiQC and run metadata in CI.
@@ -125,14 +126,27 @@ nextflow run Ekin-Kahraman/rnaseq-nextflow-pipeline \
125
126
126
127
### Report portal
127
128
128
-
The optional [cloud report portal](cloud/report-portal/) registers cloud runs and returns signed S3 URLs for Nextflow reports, timelines, traces, DAGs and MultiQC output. It is a small FastAPI service backed by Postgres in production and SQLite for local testing.
129
+
The optional [cloud report portal](cloud/report-portal/) registers cloud runs and returns signed S3 URLs for Nextflow reports, timelines, traces, DAGs and MultiQC output. It is a small FastAPI service backed by Postgres in production and SQLite for local testing. The root route renders a browser dashboard and `/docs` exposes the API.
-**Docker and Singularity** - `-profile docker` for local, `-profile singularity` for HPC where Docker is typically unavailable.
170
184
-**AWS Batch profile** - `-profile awsbatch` runs the same containerised workflow on managed cloud compute with S3 work and output paths.
171
185
-**Report portal separated from compute** - Nextflow stays responsible for execution; the FastAPI portal only stores run metadata and signs S3 artefact links, which keeps the cloud proof small and auditable.
186
+
-**Render Blueprint** - `render.yaml` defines the web service, managed Postgres database, demo seed run and AWS secret placeholders as reviewable infrastructure-as-code.
172
187
-**Run metadata by default** - Nextflow report, timeline, trace and DAG are emitted on every run so failures and performance can be audited after the fact.
173
188
-**Reverse-stranded default** - `--strandedness 2` because the airway dataset (and most modern Illumina dUTP protocols) produces reverse-stranded libraries. Users with older unstranded preps should set `--strandedness 0`.
174
189
-**Configurable contrast** - `--ref_condition` sets the DESeq2 reference level. Defaults to "untreated" for the airway dataset.
@@ -178,7 +193,7 @@ results/
178
193
179
194
-**2 samples per condition in the demo** - underpowered for reliable DE. The DESeq2 step runs and produces output, but with n=2 the results are illustrative, not statistically robust. Proper analysis requires ≥3 replicates per condition.
180
195
-**CI uses synthetic data** - the public CI proves the full software path, not the biological conclusion. Real Himes/GSE52778 runs require external FASTQs, GRCh38 HISAT2 index and Gencode annotation files.
181
-
-**AWS Batch proof status** - the profile and report portal are implemented, but no public real AWS Batch run artefact is committed yet.
196
+
-**AWS Batch proof status** - the profile and report portal are implemented, but no public real AWS Batch run artefact is committed yet. The report portal is the current cloud proof path until a real Batch run is published.
182
197
-**No STAR option** - only HISAT2 is implemented. Adding STAR as an alternative aligner would allow benchmarking on the same data.
Copy file name to clipboardExpand all lines: cloud/report-portal/README.md
+29Lines changed: 29 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,8 @@ Small FastAPI service for registering cloud RNA-seq runs and serving signed link
4
4
5
5
This is intentionally separate from the Nextflow pipeline. The pipeline remains responsible for compute and published artefacts; the portal gives reviewers and collaborators a minimal cloud-facing surface for run status and report access.
6
6
7
+
The root route renders a small dashboard for browser review. The API remains available through `/docs`, `/runs` and `/runs/{id}/artifacts`.
8
+
7
9
## Architecture
8
10
9
11
```text
@@ -25,6 +27,8 @@ Nextflow AWS Batch run
25
27
|`DATABASE_URL`|`postgresql+psycopg://rnaseq:change_me@db:5432/rnaseq`| Metadata database. Defaults to local SQLite for development. |
26
28
|`AWS_REGION`|`eu-west-2`| Region used by the AWS SDK. |
27
29
| AWS credentials | IAM role, env vars, or workload identity | Required only for signed S3 URLs. |
30
+
|`DEMO_RUN_ID`|`synthetic-ci-001`| Optional seed run for live demos. |
31
+
|`DEMO_S3_PREFIX`|`s3://bucket/results/synthetic-ci-001`| Optional S3 prefix for the seeded demo run. |
28
32
29
33
## Local Smoke Run
30
34
@@ -35,6 +39,8 @@ pip install -r requirements.txt
35
39
uvicorn app.main:app --reload --port 8000
36
40
```
37
41
42
+
Open <http://localhost:8000> for the dashboard or <http://localhost:8000/docs> for the OpenAPI UI.
43
+
38
44
Register a completed run:
39
45
40
46
```bash
@@ -63,6 +69,29 @@ docker run --rm -p 8000:8000 \
63
69
rnaseq-report-portal
64
70
```
65
71
72
+
Run the full local stack with Postgres:
73
+
74
+
```bash
75
+
docker compose up --build
76
+
```
77
+
78
+
The compose stack seeds a synthetic run so the dashboard has a visible record immediately.
79
+
80
+
## Render Blueprint
81
+
82
+
The repository root contains `render.yaml` for a reproducible Render deployment:
83
+
84
+
- Docker web service built from `cloud/report-portal/Dockerfile`.
85
+
- Managed Postgres database connected through `DATABASE_URL`.
86
+
- Optional demo run seeded through `DEMO_RUN_ID` and `DEMO_S3_PREFIX`.
87
+
- AWS credentials stored as Dashboard secrets for S3 presigned URLs.
0 commit comments