diff --git a/code/SoS/data_preprocessing/phenotype/gene_annotation.ipynb b/code/SoS/data_preprocessing/phenotype/gene_annotation.ipynb index cf184ec0b..a32e73ec8 100644 --- a/code/SoS/data_preprocessing/phenotype/gene_annotation.ipynb +++ b/code/SoS/data_preprocessing/phenotype/gene_annotation.ipynb @@ -24,7 +24,7 @@ "\n", "Coordinates come from a collapsed gene-model GTF, following the [GTEx pipeline](https://github.com/broadinstitute/gtex-pipeline/blob/master/qtl/src/eqtl_prepare_expression.py) convention, so the annotation used here matches the one used to build the GTF in the first place. Feature IDs that the GTF does not contain are dropped rather than guessed at, which is why the row count of the output can be lower than that of the input.\n", "\n", - "Which route applies depends on how the features are named. Gene-level expression matrices match the GTF directly. Protein matrices carry `gene_id|UniProt` composite IDs and need an auxiliary mapping to reach a gene. Leafcutter intron clusters are not genes at all: they are genomic intervals that must first be mapped onto the genes they overlap, which also produces the phenotype-group file that grouped multiple-testing correction later consumes. Psichomics PSI output is already grouped by gene symbol, so it only needs that symbol translated to an ENSEMBL ID.\n", + "Which route applies depends on how the features are named. Gene-level expression matrices match the GTF directly. Protein matrices carry `gene_id|UniProt` composite IDs and need an auxiliary mapping to reach a gene. Leafcutter intron clusters are not genes at all: they are genomic intervals that must first be mapped onto the genes they overlap, which also produces the phenotype-group file that grouped multiple-testing correction later consumes.\n", "\n", "An older `biomaRt` route is retained for reference. It places a single-base TSS interval rather than the full gene body and is obsolete; new analyses should use the GTF-based route.\n", "\n", @@ -79,7 +79,7 @@ "- `.region_list.txt` -- one row per retained feature giving its coordinates, ID and the path of the `bed.gz` it came from; QTL modules read this to enumerate cis regions.\n", "- `.gene_list.tsv` -- the feature IDs that were successfully matched to the GTF.\n", "- `*.leafcutter.clusters_to_genes.txt` and `*.exon_list` -- from `map_leafcutter_cluster_to_gene`: the cluster-to-gene assignment and the exon table it was derived from.\n", - "- `*.phenotype_group.txt` -- from the leafcutter and psichomics isoform workflows: the isoform-to-gene grouping used by grouped multiple-testing correction.\n", + "- `*.phenotype_group.txt` -- from the leafcutter isoform workflow: the isoform-to-gene grouping used by grouped multiple-testing correction.\n", "\n", "`tests/fixtures/gene_annotation/expected/protocol_example.rnaseq.bed.bed.gz`:\n", "\n", @@ -313,47 +313,6 @@ " --map-stra site\n" ] }, - { - "cell_type": "markdown", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "### Psichomics isoforms" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "For psichomics splicing quantifications, each event ID ends in `_`; the gene ID is matched against the GTF to obtain coordinates. The output is a coordinate-annotated phenotype BED plus a phenotype-group file." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "**Timing**: ~2 min (on toy dataset)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "kernel": "Bash" - }, - "outputs": [], - "source": [ - "sos run pipeline/gene_annotation.ipynb annotate_psichomics_isoforms \\\n", - " --cwd output/gene_annotation \\\n", - " --phenoFile tests/fixtures/gene_annotation/protocol_example.psichomics.phenotype.tsv \\\n", - " --coordinate-annotation \n" - ] - }, { "cell_type": "markdown", "metadata": { @@ -476,7 +435,6 @@ " annotate_coord_biomart\n", " map_leafcutter_cluster_to_gene\n", " annotate_leafcutter_isoforms\n", - " annotate_psichomics_isoforms\n", "\n", "Global Workflow Options:\n", " --modular-script-dir code/script (as path)\n", @@ -523,9 +481,7 @@ " map_leafcutter_cluster_to_gene:\n", " Workflow Options:\n", " --intron-count VAL (as path, required)\n", - " Extract the code in case psichromatic needs to be\n", - " processed the same way PheoFile in this step is the\n", - " intron_count file\n", + " PhenoFile in this step is the intron_count file\n", " --coordinate-annotation VAL (as path, required)\n", " gtf annotation with exons (the full gene model), used to\n", " map intron splice sites to genes\n", @@ -545,11 +501,6 @@ " --sample-participant-lookup . (as path)\n", " --coordinate-annotation VAL (as path, required)\n", " gtf annotation with exons (the full gene model)\n", - " annotate_psichomics_isoforms:\n", - " Workflow Options:\n", - " --sample-participant-lookup . (as path)\n", - " --coordinate-annotation VAL (as path, required)\n", - " gtf annotation with exons (the full gene model)\n", "```" ] }, @@ -704,8 +655,7 @@ "outputs": [], "source": [ "[map_leafcutter_cluster_to_gene]\n", - "## Extract the code in case psichromatic needs to be processed the same way\n", - "## PheoFile in this step is the intron_count file\n", + "## PhenoFile in this step is the intron_count file\n", "parameter: intron_count = path\n", "# gtf annotation with exons (the full gene model), used to map intron splice sites to genes\n", "parameter: coordinate_annotation = path\n", @@ -754,41 +704,6 @@ " --output-bed \"${_output[0]}\" \\\n", " --output-phenotype-group \"${_output[1]}\"" ] - }, - { - "cell_type": "markdown", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "### Processing of psichomics output\n", - "It occurs that the psichomatic by default grouped the isoforms by gene name, so only thing needs to be done is to extract this information and potentially renamed the gene symbol into ENSG ID" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "[annotate_psichomics_isoforms]\n", - "parameter: sample_participant_lookup = path()\n", - "# gtf annotation with exons (the full gene model)\n", - "parameter: coordinate_annotation = path\n", - "input: phenoFile, coordinate_annotation\n", - "output: f'{cwd:a}/{_input[0]:bn}.formated.bed.gz', f'{cwd:a}/{_input[0]:bn}.phenotype_group.txt'\n", - "task: trunk_workers = 1, trunk_size = job_size, walltime = walltime, mem = mem, tags = f'{step_name}_{_output[0]:bn}' \n", - "bash: expand= \"${ }\", stderr = f'{_output[0]:n}.stderr', stdout = f'{_output[0]:n}.stdout', container = container, entrypoint = entrypoint\n", - " Rscript ${modular_script_dir}/data_preprocessing/phenotype/gene_annotation.R \\\n", - " --step annotate_psichomics_isoforms \\\n", - " --phenoFile \"${_input[0]}\" \\\n", - " --annotation-gtf \"${_input[1]}\" \\\n", - " --sample-participant-lookup \"${sample_participant_lookup}\" \\\n", - " --output-bed \"${_output[0]}\" \\\n", - " --output-phenotype-group \"${_output[1]}\"" - ] } ], "metadata": { @@ -827,4 +742,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/code/SoS/data_preprocessing/phenotype_preprocessing.ipynb b/code/SoS/data_preprocessing/phenotype_preprocessing.ipynb index 0618013d1..d17bbf09d 100644 --- a/code/SoS/data_preprocessing/phenotype_preprocessing.ipynb +++ b/code/SoS/data_preprocessing/phenotype_preprocessing.ipynb @@ -36,7 +36,7 @@ "\n", "This mini-protocol walks through how molecular-phenotype matrices are prepared for downstream xQTL analysis. Each step calls a workflow from [`phenotype_imputation.ipynb`](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_imputation.html), [`gene_annotation.ipynb`](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/gene_annotation.html), or [`phenotype_formatting.ipynb`](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html).\n", "\n", - "The commands are selectable routes rather than one mandatory chain. Impute only matrices containing missing values. Choose the annotation workflow matching gene, protein, LeafCutter, or psichomics identifiers, then choose the formatting workflow required by the downstream analysis unit. GCT sample extraction and BAM subsetting are independent utilities.\n" + "The commands are selectable routes rather than one mandatory chain. Impute only matrices containing missing values. Choose the annotation workflow matching gene, protein, or LeafCutter identifiers, then choose the formatting workflow required by the downstream analysis unit. GCT sample extraction and BAM subsetting are independent utilities.\n" ], "id": "416d15c6" }, @@ -48,21 +48,20 @@ "source": [ "## Steps\n", "\n", - "Choose a route before running commands; the 12 commands are not one mandatory chain.\n", + "Choose a route before running commands; the 11 commands are not one mandatory chain.\n", "\n", "| **Analysis goal** | **Commands to run, in order** | **Inputs** |\n", "| --- | --- | --- |\n", - "| Gene-expression or protein phenotype by chromosome | 2 → 7 | `tests/fixtures/gene_annotation/protocol_example.rnaseq.bed.gz`; `input/reference_data/Homo_sapiens.GRCh38.103.chr.reformatted.collapse_only.gene.ERCC.gtf` |\n", - "| Phenotype with missing values by chromosome | 1 → 2 → 7 | `tests/fixtures/phenotype_imputation/protocol_example.protein.missing.bed.gz`; gene-coordinate GTF above |\n", + "| Gene-expression or protein phenotype by chromosome | 2 → 6 | `tests/fixtures/gene_annotation/protocol_example.rnaseq.bed.gz`; `input/reference_data/Homo_sapiens.GRCh38.103.chr.reformatted.collapse_only.gene.ERCC.gtf` |\n", + "| Phenotype with missing values by chromosome | 1 → 2 → 6 | `tests/fixtures/phenotype_imputation/protocol_example.protein.missing.bed.gz`; gene-coordinate GTF above |\n", "| Retrieve gene coordinates from Ensembl BioMart | 3 | `tests/fixtures/gene_annotation/protocol_example.rnaseq.gene_ID.tsv`; internet access |\n", "| LeafCutter clusters mapped to genes | 4 | `tests/fixtures/gene_annotation/protocol_example.leafcutter.phenotype.bed.gz`; `tests/fixtures/gene_annotation/protocol_example.leafcutter.intron_count.tsv`; `input/reference_data/Homo_sapiens.GRCh38.103.chr.gtf` |\n", "| LeafCutter isoforms annotated for QTL analysis | 5 | `tests/fixtures/gene_annotation/protocol_example.leafcutter.phenotype.bed.gz`; `tests/fixtures/gene_annotation/protocol_example.leafcutter.intron_count.tsv`; `input/reference_data/Homo_sapiens.GRCh38.103.chr.gtf` |\n", - "| psichomics isoforms annotated for QTL analysis | 6 | `tests/fixtures/gene_annotation/protocol_example.psichomics.phenotype.tsv`; `input/reference_data/Homo_sapiens.GRCh38.103.chr.gtf` |\n", - "| Partition a GCT matrix by chromosome | 8 | `input/rnaseq/protocol_example.rnaseq.gene_tpm.gct.gz` |\n", - "| Partition a BED phenotype by predefined regions | 2 → 9 | `tests/fixtures/gene_annotation/protocol_example.rnaseq.bed.gz`; gene-coordinate GTF above; `input/reference_data/TAD/protocol_example_protein.enhanced_cis_chr22.bed` |\n", - "| Define TAD-based phenotype regions | 2 → 10 | `tests/fixtures/gene_annotation/protocol_example.rnaseq.bed.gz`; gene-coordinate GTF above; `tests/fixtures/generalized_TADB/expected/TADB_enhanced_cis.bed` |\n", - "| Extract selected samples from a GCT matrix | 11 | `input/rnaseq/protocol_example.rnaseq.gene_tpm.gct.gz`; `tests/fixtures/phenotype_formatting/keep_samples.txt` |\n", - "| Subset BAM files to selected genomic regions | 12 | `input/rnaseq/bam_file_list.txt`; referenced BAM files; no example BAM is currently bundled |\n", + "| Partition a GCT matrix by chromosome | 7 | `input/rnaseq/protocol_example.rnaseq.gene_tpm.gct.gz` |\n", + "| Partition a BED phenotype by predefined regions | 2 → 8 | `tests/fixtures/gene_annotation/protocol_example.rnaseq.bed.gz`; gene-coordinate GTF above; `input/reference_data/TAD/protocol_example_protein.enhanced_cis_chr22.bed` |\n", + "| Define TAD-based phenotype regions | 2 → 9 | `tests/fixtures/gene_annotation/protocol_example.rnaseq.bed.gz`; gene-coordinate GTF above; `tests/fixtures/generalized_TADB/expected/TADB_enhanced_cis.bed` |\n", + "| Extract selected samples from a GCT matrix | 10 | `input/rnaseq/protocol_example.rnaseq.gene_tpm.gct.gz`; `tests/fixtures/phenotype_formatting/keep_samples.txt` |\n", + "| Subset BAM files to selected genomic regions | 11 | `input/rnaseq/bam_file_list.txt`; referenced BAM files; no example BAM is currently bundled |\n", "\n", "Run only the row matching the intended analysis goal, following its commands in numerical order. Other imputation methods are available through `phenotype_imputation.ipynb` and its Command Interface." ], @@ -214,34 +213,7 @@ "kernel": "SoS" }, "source": [ - "### 6. [Annotate psichomics isoforms](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/gene_annotation.html)\n", - "\n", - "**What it does:** Add genomic and gene annotations to psichomics-derived splicing phenotypes.\n" - ], - "id": "acfd2814" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "kernel": "Bash" - }, - "outputs": [], - "source": [ - "sos run pipeline/gene_annotation.ipynb annotate_psichomics_isoforms \\\n", - " --cwd output/gene_annotation \\\n", - " --phenoFile tests/fixtures/gene_annotation/protocol_example.psichomics.phenotype.tsv \\\n", - " --coordinate-annotation \n" - ], - "id": "e6d20f6d" - }, - { - "cell_type": "markdown", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "### 7. [Partition a BED phenotype by chromosome](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html)\n", + "### 6. [Partition a BED phenotype by chromosome](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html)\n", "\n", "**What it does:** Split a coordinate-annotated BED phenotype into chromosome-specific files.\n" ], @@ -269,7 +241,7 @@ "kernel": "SoS" }, "source": [ - "### 8. [Partition a GCT phenotype by chromosome](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html)\n", + "### 7. [Partition a GCT phenotype by chromosome](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html)\n", "\n", "**What it does:** Split a coordinate-aware GCT matrix into chromosome-specific GCT files.\n" ], @@ -296,7 +268,7 @@ "kernel": "SoS" }, "source": [ - "### 9. [Partition a phenotype by predefined regions](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html)\n", + "### 8. [Partition a phenotype by predefined regions](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html)\n", "\n", "**What it does:** Extract phenotype features falling within each region in a supplied region list.\n" ], @@ -323,7 +295,7 @@ "kernel": "SoS" }, "source": [ - "### 10. [Define TAD-based phenotype regions](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html)\n", + "### 9. [Define TAD-based phenotype regions](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html)\n", "\n", "**What it does:** Assign phenotype features to TAD windows and generate a region list for downstream analysis.\n" ], @@ -351,7 +323,7 @@ "kernel": "SoS" }, "source": [ - "### 11. [Extract selected samples from a GCT matrix](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html)\n", + "### 10. [Extract selected samples from a GCT matrix](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html)\n", "\n", "**What it does:** Retain only samples listed in a supplied keep file.\n" ], @@ -378,7 +350,7 @@ "kernel": "SoS" }, "source": [ - "### 12. [Subset BAM files by genomic region](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html)\n", + "### 11. [Subset BAM files by genomic region](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/phenotype_formatting.html)\n", "\n", "**What it does:** Extract selected chromosomes or regions from every BAM listed in the input manifest.\n" ], @@ -414,13 +386,12 @@ "| Step 3 | `output/gene_annotation/protocol_example.rnaseq.gene_ID.bed.gz` |\n", "| Step 4 | `output/gene_annotation/protocol_example.leafcutter.phenotype.bed.gz.exon_list`; `output/gene_annotation/protocol_example.leafcutter.phenotype.bed.gz.leafcutter.clusters_to_genes.txt` |\n", "| Step 5 | `tests/fixtures/gene_annotation/expected/protocol_example.leafcutter.phenotype.bed.formated.bed.gz`; `output/gene_annotation/protocol_example.leafcutter.phenotype.phenotype_group.txt` |\n", - "| Step 6 | `tests/fixtures/gene_annotation/expected/protocol_example.psichomics.phenotype.formated.bed.gz`; `tests/fixtures/gene_annotation/expected/protocol_example.psichomics.phenotype.phenotype_group.txt` |\n", - "| Step 7 | `output/phenotype_uf/protocol_example.genotype.chr22.bed.gz`; `tests/fixtures/phenotype_formatting/expected/protocol_example.phenotype_by_chrom_files.txt`; its region list |\n", - "| Step 8 | `output/phenotype_gct/protocol_example.rnaseq.gene_tpm.chr21.gct`; `output/phenotype_gct/protocol_example.rnaseq.gene_tpm.chr22.gct` |\n", - "| Step 9 | `output/phenotype_by_region/protocol_example_protein.enhanced_cis_chr22_phenotype_by_region/*.bed.gz`; `output/phenotype_by_region/*.phenotype_by_region_files.txt` |\n", - "| Step 10 | `output/phenotype_by_region/*_pheno_per_region.region_list`; TAD-annotated region list under `output/phenotype_by_region/` |\n", - "| Step 11 | `output/phenotype_gct/protocol_example.rnaseq.gene_tpm.sample_matched.gct.gz` |\n", - "| Step 12 | `output/bam_subset/*.subsetted.bam` |" + "| Step 6 | `output/phenotype_uf/protocol_example.genotype.chr22.bed.gz`; `tests/fixtures/phenotype_formatting/expected/protocol_example.phenotype_by_chrom_files.txt`; its region list |\n", + "| Step 7 | `output/phenotype_gct/protocol_example.rnaseq.gene_tpm.chr21.gct`; `output/phenotype_gct/protocol_example.rnaseq.gene_tpm.chr22.gct` |\n", + "| Step 8 | `output/phenotype_by_region/protocol_example_protein.enhanced_cis_chr22_phenotype_by_region/*.bed.gz`; `output/phenotype_by_region/*.phenotype_by_region_files.txt` |\n", + "| Step 9 | `output/phenotype_by_region/*_pheno_per_region.region_list`; TAD-annotated region list under `output/phenotype_by_region/` |\n", + "| Step 10 | `output/phenotype_gct/protocol_example.rnaseq.gene_tpm.sample_matched.gct.gz` |\n", + "| Step 11 | `output/bam_subset/*.subsetted.bam` |" ], "id": "48f58267" }, @@ -501,4 +472,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/code/SoS/mnm_analysis/mnm_methods/mnm_regression.ipynb b/code/SoS/mnm_analysis/mnm_methods/mnm_regression.ipynb index 04ca267f1..543bd322f 100644 --- a/code/SoS/mnm_analysis/mnm_methods/mnm_regression.ipynb +++ b/code/SoS/mnm_analysis/mnm_methods/mnm_regression.ipynb @@ -36,8 +36,8 @@ "rather than two, with `skip_twas_weights` defaulting to `False`. In practice the pipeline\n", "runs per region: `susie_twas` performs univariate fine-mapping and trains weights with\n", "several methods, writing one `*.univariate_twas_weights.rds` per region; run it with\n", - "`--save-data` so the combined fine-mapping object is kept. `mnm` then consumes that output\n", - "through a `--fine-mapping-meta` table and produces the multi-context ensemble weights, one\n", + "`--save-data` so the combined fine-mapping object is kept. `mnm` reads the QtlDataset that\n", + "`qtl_dataset_construct` writes and produces the multi-context ensemble weights, one\n", "`*.multicontext_bvsr.rds` per gene.\n", "\n", "Two input modes take identical commands: a bulk RNA-seq matrix keyed by Ensembl gene ID\n", @@ -143,9 +143,7 @@ "- `--transpose-covariates` (set when the covariate file has samples in columns rather than rows)\n", "- `--keep-samples` (a file of sample IDs to retain before fine-mapping)\n", "- `--max-cv-variants 5000` (cap on the variants carried into cross-validated TWAS weights; `-1` for no cap)\n", - "- `--pheno-id-map-file` (maps phenotype IDs to the IDs used in the region list, when the two differ)\n", - "- `--fine-mapping-meta` **`output/mnm/fine_mapping_meta_mnm.tsv`**\n", - "(the manifest of per-region fine-mapping results, consumed by the multi-gene and fSuSiE workflows)" + "- `--pheno-id-map-file` (maps phenotype IDs to the IDs used in the region list, when the two differ)\n" ] }, { @@ -325,13 +323,12 @@ }, "outputs": [], "source": [ - "sos run pipeline/mnm_regression.ipynb mnm \\\n", + "sos run pipeline/mnm_regression.ipynb qtl_dataset_construct+mnm \\\n", " --name protocol_example --cwd output_mnm \\\n", " --genoFile tests/fixtures/qtl_mini/protocol_example.genotype.chr22.bed \\\n", " --phenoFile tests/fixtures/qtl_mini/protocol_example.pheno_manifest_context.tsv \\\n", " --covFile tests/fixtures/qtl_mini/example_covariates.tsv \\\n", " --customized-association-windows tests/fixtures/qtl_mini/association_windows.bed \\\n", - " --fine-mapping-meta tests/fixtures/qtl_mini/fine_mapping_meta.tsv \\\n", " --transpose-covariates --save-data -j1" ] }, @@ -410,14 +407,13 @@ }, "outputs": [], "source": [ - "sos run pipeline/mnm_regression.ipynb mnm \\\n", + "sos run pipeline/mnm_regression.ipynb qtl_dataset_construct+mnm \\\n", " --name protocol_example \\\n", " --cwd output_10peaks \\\n", " --genoFile tests/fixtures/qtl_mini/protocol_example.genotype.chr22.bed \\\n", " --phenoFile tests/fixtures/qtl_mini/pheno_manifest.tsv \\\n", " --covFile tests/fixtures/covariate_hidden_factor/covariates.tsv \\\n", " --customized-association-windows tests/fixtures/qtl_mini/association_windows.bed \\\n", - " --fine-mapping-meta output_10peaks/fine_mapping_meta.tsv \\\n", " -j1" ] }, @@ -495,7 +491,6 @@ " --covFile tests/fixtures/qtl_mini/example_covariates.tsv \\\n", " --customized-association-windows tests/fixtures/qtl_mini/association_windows.bed \\\n", " --pheno_id_map_file tests/fixtures/qtl_mini/pheno_id_map.tsv \\\n", - " --fine_mapping_meta tests/fixtures/qtl_mini/fine_mapping_meta.tsv \\\n", " --keep-samples tests/fixtures/qtl_mini/keep_samples.txt \\\n", " --save-data -j1" ] @@ -1427,4 +1422,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/code/SoS/molecular_phenotypes/QC/splicing_normalization.ipynb b/code/SoS/molecular_phenotypes/QC/splicing_normalization.ipynb index 8c2d86a2b..da4fcb443 100644 --- a/code/SoS/molecular_phenotypes/QC/splicing_normalization.ipynb +++ b/code/SoS/molecular_phenotypes/QC/splicing_normalization.ipynb @@ -8,7 +8,7 @@ "source": [ "# Splicing QC and Normalization\n", "\n", - "Quality control and normalisation of alternative-splicing quantifications from `leafcutter` and `psichomics`." + "Quality control and normalisation of alternative-splicing quantifications from `leafcutter`." ] }, { @@ -19,7 +19,7 @@ "source": [ "## Overview\n", "\n", - "Quality control and normalization of alternative-splicing quantifications produced by the `leafcutter` and `psichomics` tools. Raw outputs are converted to BED format, features with high per-sample missingness (default 40%) are dropped, low-variance introns/events (default min variance 0.001) are removed, values are quantile-normalized, and remaining missing values are mean-imputed. The normalized tables are ready to use as molecular phenotypes for tensorQTL.\n", + "Quality control and normalization of alternative-splicing quantifications produced by the `leafcutter` tool. Raw outputs are converted to BED format, features with high per-sample missingness (default 40%) are dropped, low-variance introns (default min variance 0.001) are removed, values are quantile-normalized, and remaining missing values are mean-imputed. The normalized tables are ready to use as molecular phenotypes for tensorQTL.\n", "\n", "Intron excision ratios are not comparable across samples as they come out of the caller.\n", "They are compositional - each intron is a fraction of its cluster - and sparse, because an\n", @@ -28,9 +28,8 @@ "than genotype. The steps here filter clusters, impute the missing entries and quantile\n", "normalise, which is what makes the phenotype usable downstream.\n", "\n", - "Two quantification tools are supported and they need different handling, hence the separate\n", - "workflows: `leafcutter_norm` and `leafcutter_qqnorm` for LeafCutter output, `psichomics_norm`\n", - "for PSI values from psichomics.\n", + "`leafcutter_norm` runs the whole route; `leafcutter_qqnorm` is the normalisation half on its\n", + "own, for when QC and imputation happened elsewhere.\n", "\n", "**When to run it.** After splicing calling, before phenotype preprocessing and association\n", "testing." @@ -44,15 +43,7 @@ "source": [ "## Input\n", "\n", - "- `--ratios`: the splicing ratio matrix to normalise, and the main input to all three workflows. Which form it takes depends on the workflow: `leafcutter_norm` expects the leafcutter per-cluster intron usage counts, `leafcutter_qqnorm` an already-QCed numeric intron-ratio table, and `psichomics_norm` a psichomics PSI matrix keyed by splicing-event ID. Example `input/rnaseq/protocol_example.psichomics.psi_raw_data.tsv`:\n", - "\n", - " ```\n", - " ID SAMPLE_001 SAMPLE_002 SAMPLE_003\n", - " SE_22_+_42438332_42438832_42439332_42439832_ENSG... NA 0.3414 0.1858\n", - " SE_22_-_42440332_42440832_42441332_42441832_ENSG... 0.7942 0.1614 0.2509\n", - " ```\n", - "\n", - " The leafcutter equivalents are `protocol_example.leafcutter.intron_usage_perind.counts.gz` (counts, `count/total` per sample) and `..._raw_data.txt` (the QC-ready numeric table).\n", + "- `--ratios`: the splicing ratio matrix to normalise, and the main input to both workflows. Which form it takes depends on the workflow: `leafcutter_norm` expects the leafcutter per-cluster intron usage counts, `protocol_example.leafcutter.intron_usage_perind.counts.gz` (counts, `count/total` per sample), and `leafcutter_qqnorm` an already-QCed numeric intron-ratio table, `..._raw_data.txt`.\n", "\n", "- `--qced-data`: where step 3 looks for its input. A directory, the default `.`, is scanned for files ending `_raw_data.txt`. A single file is used directly, and that case also forces `--mean_impute` on to fill any remaining NAs.\n", "- `--no_norm`: stop `leafcutter_norm` before step 3, leaving the QCed table un-normalised. This is how the three-step route gets a QC-only result to hand to the imputer.\n", @@ -89,24 +80,6 @@ " chr22 16671178 16671518 chr22:16671178:1667151 -0.25101591868327155\n", " chr22 16671588 16673600 chr22:16671588:1667360 -1.261282157758418\n", " ```\n", - "- `{cwd}/psichomics_raw_data_bedded.txt` and `{input}.qqnorm.txt` - the psichomics PSI matrix parsed into BED format and then quantile-normalised.\n", - "\n", - " Example `output/splicing/psichomics_raw_data_bedded.txt`, 24 columns and 31 rows:\n", - "\n", - " ```\n", - " #Chr start end ID\n", - " chr22 42438332 42439832 SE_22_+_42438332_424\n", - " chr22 42440332 42441832 SE_22_-_42440332_424\n", - " ```\n", - "\n", - " and `output/splicing/psichomics_raw_data_bedded.qqnorm.txt`, 24 columns and 31 rows:\n", - "\n", - " ```\n", - " #Chr start end ID\n", - " chr22 42438332 42439832 SE_22_+_42438332_424\n", - " chr22 42440332 42441832 SE_22_-_42440332_424\n", - " ```\n", - "\n", "Example `output/splicing/leafcutter2/protocol_example_intron_usage_perind.junc` from `Junc_list`, 2 lines, one path per sample:\n", "\n", " ```\n", @@ -122,8 +95,7 @@ " SAMPLE_002\tSAMPLE_002\n", " ```\n", "\n", - "Each workflow ends in a quantile-normalised phenotype table in BED-like form, `#Chr start end ID` plus one column per sample, ready to use directly as a molecular phenotype input to TensorQTL.\n", - "" + "Each workflow ends in a quantile-normalised phenotype table in BED-like form, `#Chr start end ID` plus one column per sample, ready to use directly as a molecular phenotype input to TensorQTL.\n" ] }, { @@ -243,39 +215,6 @@ " --mean_impute \n" ] }, - { - "cell_type": "markdown", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "### Psichomics PSI values\n", - "\n", - "This workflow parses psichomics splicing-event IDs into BED coordinates, applies NA and variance filters, and then quantile-normalizes each event. See the [psichomics documentation](http://bioconductor.org/packages/release/bioc/html/psichomics.html). The only QC applied to PSI values here is NA removal and a minimal variance filter; the psichomics maintainers suggest some further QC, [discussed here](https://github.com/nuno-agostinho/psichomics/issues/450). For reference, the default minimal variance used in leafcutter QC is 0.001. Because the alternative-splicing event types in psichomics outputs differ, normalization is performed per event (rows) rather than per sample (columns).\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "**Timing**: TBD (on toy dataset)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "kernel": "Bash" - }, - "outputs": [], - "source": [ - "sos run pipeline/splicing_normalization.ipynb psichomics_norm \\\n", - " --cwd output/splicing \\\n", - " --ratios output/leafcutter/normalize/protocol_example.psichomics.psi_raw_data.tsv \n" - ] - }, { "cell_type": "markdown", "metadata": { @@ -473,7 +412,6 @@ " Jointcall_samples\n", " leafcutter_norm\n", " leafcutter_qqnorm\n", - " psichomics_norm\n", "\n", "Global Workflow Options:\n", " --modular-script-dir code/script (as path)\n", @@ -522,20 +460,9 @@ " kept (default 0.4, leafcutter default)\n", " --min-variance 0.001 (as float)\n", " minimal variance across samples for an event to be kept\n", - " (default 0.001, psichomics suggested)\n", + " (default 0.001)\n", " --qced-data . (as path)\n", " --[no-]bgzip (default to False)\n", - " psichomics_norm_1:\n", - " Workflow Options:\n", - " --ratios VAL (as path, required)\n", - " psichomics_norm_2:\n", - " Workflow Options:\n", - " --na-rate 0.4 (as float)\n", - " minimal NA rate within sample values for an event to be\n", - " kept (default 0.4, leafcutter default)\n", - " --min-variance 0.001 (as float)\n", - " minimal variance across samples for an event to be kept\n", - " (default 0.001, psichomics suggested)\n", "```" ] }, @@ -686,7 +613,7 @@ "parameter: mean_impute = False\n", "# minimal NA rate within sample values for an event to be kept (default 0.4, leafcutter default)\n", "parameter: na_rate = 0.4\n", - "# minimal variance across samples for an event to be kept (default 0.001, psichomics suggested)\n", + "# minimal variance across samples for an event to be kept (default 0.001)\n", "parameter: min_variance = 0.001\n", "parameter: qced_data = path(\".\")\n", "parameter: bgzip=False\n", @@ -715,50 +642,6 @@ " tabix -p bed \"${_output:n}.bed.gz\"\n", " fi" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "[psichomics_norm_1]\n", - "parameter: ratios = path\n", - "input: ratios, group_by = 'all'\n", - "output: f'{cwd}/psichomics_raw_data_bedded.txt' \n", - "task: trunk_workers = 1, trunk_size = job_size, walltime = walltime, mem = mem, cores = numThreads\n", - "bash: expand= \"${ }\", stderr = f'{_output:n}.stderr', stdout = f'{_output:n}.stdout', container=container\n", - " Rscript ${modular_script_dir}/molecular_phenotypes/QC/splicing_normalization.R \\\n", - " --step psichomics_bed \\\n", - " --input ${_input} \\\n", - " --output ${_output}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "[psichomics_norm_2]\n", - "# minimal NA rate within sample values for an event to be kept (default 0.4, leafcutter default)\n", - "parameter: na_rate = 0.4\n", - "# minimal variance across samples for an event to be kept (default 0.001, psichomics suggested)\n", - "parameter: min_variance = 0.001\n", - "output: f'{_input:n}.qqnorm.txt'\n", - "task: trunk_workers = 1, trunk_size = job_size, walltime = walltime, mem = mem, cores = numThreads\n", - "bash: expand= \"${ }\", stderr = f'{_output[0]:n}.stderr', stdout = f'{_output[0]:n}.stdout', container=container\n", - " Rscript ${modular_script_dir}/molecular_phenotypes/QC/splicing_normalization.R \\\n", - " --step qqnorm \\\n", - " --input ${_input} \\\n", - " --output ${_output} \\\n", - " --na-rate ${na_rate} \\\n", - " --min-variance ${min_variance}" - ] } ], "metadata": { @@ -807,4 +690,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/code/SoS/molecular_phenotypes/calling/splicing_calling.ipynb b/code/SoS/molecular_phenotypes/calling/splicing_calling.ipynb index d97d89bcb..94862fb4b 100644 --- a/code/SoS/molecular_phenotypes/calling/splicing_calling.ipynb +++ b/code/SoS/molecular_phenotypes/calling/splicing_calling.ipynb @@ -10,7 +10,7 @@ "source": [ "# Quantifying alternative splicing from RNA-seq data\n", "\n", - "Quantifies alternative splicing from aligned RNA-seq with LeafCutter and psichomics, producing the intron-usage and PSI tables that become splicing phenotypes." + "Quantifies alternative splicing from aligned RNA-seq with LeafCutter, producing the intron-usage tables that become splicing phenotypes." ] }, { @@ -24,15 +24,12 @@ "\n", "This module turns aligned RNA-seq into splicing phenotypes. It expects BAM files already mapped with STAR using the WASP option, following the [GTEx/TOPMed RNA-seq pipeline](https://github.com/broadinstitute/gtex-pipeline/blob/master/TOPMed_RNAseq_pipeline.md); the choice of modules is supported by internal, unpublished benchmarks from the GTEx group.\n", "\n", - "Two tools are provided because they measure different things, in the sense described by [Wang et al. (2008)](https://doi.org/10.1038/nature07509) and [Park et al. (2018)](https://doi.org/10.1016/j.ajhg.2017.11.002). They do not depend on each other and can run in parallel.\n", + "Splicing is quantified as alternatively excised intron usage, in the sense described by [Wang et al. (2008)](https://doi.org/10.1038/nature07509) and [Park et al. (2018)](https://doi.org/10.1016/j.ajhg.2017.11.002).\n", "\n", "- `leafcutter` quantifies the usage of alternatively excised introns. Junctions are extracted from each BAM with regtools, then clustered across samples: introns sharing a splice site are grouped, and each intron is reported as a fraction of the reads in its cluster. That single measure collectively captures skipped exons, alternative 5-prime and 3-prime splice site usage, and more complex events, without needing to name the event type [Li et al. (2018)](https://doi.org/10.1038/s41588-017-0004-9). The clustering defaults, `--min-clu-ratio 0.001 --max-intron-len 500000 --min-clu-reads 30`, are those of the [GTEx sQTL discovery pipeline](https://www.science.org/action/downloadSupplement?doi=10.1126%2Fscience.aaz1776&file=aaz1776_aguet_sm.pdf), section 3.4.3. This is the approach previously applied to ROSMAP data for Brain xQTL version 2.0.\n", - "- `psichomics` quantifies named event types instead, reporting percent-spliced-in (PSI) for skipped exons, mutually exclusive exons, alternative 5-prime and 3-prime splice sites, and alternative first and last exons [Agostinho et al. (2019)](https://doi.org/10.1093/nar/gky888). It reads the `SJ.out.tab` junction counts STAR emits rather than the BAMs, and needs a splicing annotation to say which junctions constitute which event.\n", - "- `leafcutter_preprocessing` is not a third method but the first half of `leafcutter`. The two share one section, declared as `[leafcutter_1, leafcutter_preprocessing_1]`, and this workflow stops once the list of per-sample `.junc` files is written, which is exactly the file `leafcutter` would go on to cluster. Run it only when the clustering is done elsewhere.\n", + "- `leafcutter_preprocessing` is not a separate method but the first half of `leafcutter`. The two share one section, declared as `[leafcutter_1, leafcutter_preprocessing_1]`, and this workflow stops once the list of per-sample `.junc` files is written, which is exactly the file `leafcutter` would go on to cluster. Run it only when the clustering is done elsewhere.\n", "\n", - "Two psichomics annotations are distributed with the example data. `hg38_suppa.rds` was built with SUPPA from the GTF used throughout this protocol; `modified_psichomics_hg38_splicing_annotation.rds` is the package default Human hg38 (2018-04-30) annotation, described in the [psichomics methods](https://academic.oup.com/nar/article/47/2/e7/5114259), with gene names replaced by Ensembl IDs so that identifiers are consistent across the protocol.\n", - "\n", - "**When to run it.** After STAR alignment, and before `splicing_normalization`, which turns the intron-usage and PSI tables produced here into the splicing phenotype matrices used for sQTL association." + "**When to run it.** After STAR alignment, and before `splicing_normalization`, which turns the intron-usage tables produced here into the splicing phenotype matrices used for sQTL association." ] }, { @@ -44,7 +41,7 @@ "source": [ "## Input\n", "\n", - "* `--samples` -- the sample manifest, white-space delimited with a header and four columns: sample ID, RNA strandness, the BAM path used by `leafcutter`, and the `SJ.out.tab` path used by `psichomics`. Strandness is `rf`, `fr`, or `strand_missing`:\n", + "* `--samples` -- the sample manifest, white-space delimited with a header and four columns: sample ID, RNA strandness, the BAM path used by `leafcutter`, and the `SJ.out.tab` path. Strandness is `rf`, `fr`, or `strand_missing`:\n", "\n", " ```\n", " sample_id strand bam_list SJ_list\n", @@ -54,9 +51,8 @@ " ```\n", "\n", "* `--data-dir` -- directory holding the files named in the manifest; defaults to the directory containing `--samples`. Every file listed must be found there. If `.bam.bai` indexes already sit beside the BAMs, LeafCutter reuses them rather than re-indexing.\n", - "* `--splicing-annotation` -- required by `psichomics`: the annotation R object naming which junction combinations form which event, e.g. `Homo_sapiens.GRCh38.103.chr.reformatted.ERCC.SUPPA_annotation.rds`.\n", "* `--cwd` -- output directory, default `output`.\n", - "* `--container` -- the tool images, `oras://ghcr.io/statfungen/leafcutter_apptainer:latest` and `oras://ghcr.io/statfungen/psichomics_apptainer:latest`. The two workflows need different containers, so they are run as separate commands.\n", + "* `--container` -- the tool image, `oras://ghcr.io/statfungen/leafcutter_apptainer:latest`.\n", "\n", "Junction extraction (`leafcutter`, `leafcutter_preprocessing`):\n", "\n", @@ -69,7 +65,7 @@ "* `--min-clu-reads` -- minimum reads in a cluster, default `30`.\n", "* `--min-clu-ratio` -- minimum fraction of cluster reads supporting a junction, default `0.001`.\n", "\n", - "Reference data and example input for this module are not in the repository. The reference data is built by [`reference_data_preparation`](https://github.com/statfungen/xqtl-protocol/blob/main/code/reference_data/reference_data_preparation.ipynb), and the example inputs, both psichomics annotations, a manifest and a LeafCutter blacklist-chromosome file, are on [Google Drive](https://drive.google.com/drive/folders/1lpcx3eKG2UpauntLUuJ6bMBjHyIhWW_R).\n", + "Reference data and example input for this module are not in the repository. The reference data is built by [`reference_data_preparation`](https://github.com/statfungen/xqtl-protocol/blob/main/code/reference_data/reference_data_preparation.ipynb), and the example inputs, a manifest and a LeafCutter blacklist-chromosome file, are on [Google Drive](https://drive.google.com/drive/folders/1lpcx3eKG2UpauntLUuJ6bMBjHyIhWW_R).\n", "\n", "Runtime:\n", "\n", @@ -92,12 +88,10 @@ "* `_intron_usage_perind_numers.counts.gz` -- the same rows as raw supporting-read counts rather than ratios.\n", "* `_pooled` and `_refined` -- intermediate cluster definitions written during clustering.\n", "* `_intron_usage_perind.junc` -- the list of per-sample `.junc` files. It is the final output of `leafcutter_preprocessing`, and `leafcutter` writes the same file on its way to clustering, although it declares only the counts file as its output, so SoS does not track this one.\n", - "* `psichomics_junctions.txt` -- the junction quantification table. When the manifest spans several input directories, one `psichomics_junctions_.txt` is written per directory and then merged into this file.\n", - "* `psi_raw_data.tsv` -- percent-spliced-in values per event and sample, the psichomics splicing phenotype. Mitochondrial, unplaced and random-contig junctions are dropped before quantification.\n", "\n", "Each step also writes `.stdout` and `.stderr` beside its output. There is no example output for this module in the repository, because its inputs are aligned BAM files that are not distributed here.\n", "\n", - "Both the intron-usage and the PSI table feed `splicing_normalization`, which builds the final splicing phenotype matrices." + "The intron-usage table feeds `splicing_normalization`, which builds the final splicing phenotype matrices." ] }, { @@ -187,45 +181,6 @@ " --container oras://ghcr.io/statfungen/leafcutter_apptainer:latest" ] }, - { - "cell_type": "markdown", - "id": "empty-tuition", - "metadata": { - "kernel": "Bash" - }, - "source": [ - "### psichomics PSI quantification\n", - "\n", - "Convert the STAR junction counts into a psichomics junction table and quantify percent-spliced-in against the splicing annotation. Around 30 minutes on a full sample set." - ] - }, - { - "cell_type": "markdown", - "id": "ca640132", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "**Timing**: TBD (on toy dataset)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bb778e2e-6479-429b-a4fb-c1e7812cbd07", - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "sos run pipeline/splicing_calling.ipynb psichomics \\\n", - " --cwd output/psichomics \\\n", - " --samples path/to/sample_list.txt \\\n", - " --data-dir path/to/star_output_wasp \\\n", - " --splicing-annotation path/to/Homo_sapiens.GRCh38.103.chr.reformatted.ERCC.SUPPA_annotation.rds \\\n", - " --container oras://ghcr.io/statfungen/psichomics_apptainer:latest" - ] - }, { "cell_type": "markdown", "id": "victorian-photography", @@ -266,7 +221,6 @@ "Workflows:\n", " leafcutter\n", " leafcutter_preprocessing\n", - " psichomics\n", "\n", "Global Workflow Options:\n", " --modular-script-dir code/script (as path)\n", @@ -308,12 +262,6 @@ " minimum fraction of reads in a cluster that support a\n", " junction (default 0.001)\n", " leafcutter_preprocessing_2:\n", - " psichomics_1:\n", - " psichomics_2:\n", - " Workflow Options:\n", - " --splicing-annotation VAL (as path, required)\n", - " splicing annotation for psichomics (raw psichomics\n", - " annotation, e.g. loadAnnotation output)\n", "```" ] }, @@ -368,7 +316,6 @@ "sample_id = [(_r.get('sample_id') or 'NA') for _r in _rows]\n", "strandness = [_sm.get((_r.get('strand') or 'NA'), (_r.get('strand') or 'NA')) for _r in _rows]\n", "bam_data = [f'{data_dir}/{_r.get(\"coord_bam_list\")}' for _r in _rows if (_r.get('coord_bam_list') or 'NA') != 'NA']\n", - "SJtab_data = [f'{data_dir}/{_r.get(\"SJ_list\")}' for _r in _rows if (_r.get('SJ_list') or 'NA') != 'NA']\n", "del _lines, _hdr, _rows, _sm" ] }, @@ -463,60 +410,6 @@ " for i in ${_input:r}; do\n", " echo $i >> ${_output:r} ; done" ] - }, - { - "cell_type": "markdown", - "id": "divided-cincinnati", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "### psichomics: junction quantification and PSI\n", - "\n", - "Documentation: [psichomics](http://bioconductor.org/packages/release/bioc/html/psichomics.html). `psichomics_1` turns the STAR junction counts into a psichomics junction table and `psichomics_2` quantifies PSI against the annotation. The underlying `quantifySplicing` call also accepts a restriction to particular event types, a `minReads` floor below which a value is returned as NA (default 10), and a gene subset; this module quantifies every event type across all genes." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "norman-finger", - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "[psichomics_1]\n", - "input: SJtab_data\n", - "output: f'{cwd}/psichomics_junctions.txt'\n", - "task: trunk_workers = 1, trunk_size = job_size, walltime = walltime, mem = mem, cores = numThreads\n", - "bash: expand= \"${ }\", stderr = f'{_output:n}.stderr', stdout = f'{_output:n}.stdout', container=container\n", - " Rscript ${modular_script_dir}/molecular_phenotypes/calling/splicing_calling.R \\\n", - " --step junction_quant \\\n", - " --inputs ${_input} \\\n", - " --output ${_output}" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "traditional-reserve", - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "[psichomics_2]\n", - "# splicing annotation for psichomics (raw psichomics annotation, e.g. loadAnnotation output)\n", - "parameter: splicing_annotation = path\n", - "output: f'{cwd}/psi_raw_data.tsv'\n", - "task: trunk_workers = 1, trunk_size = job_size, walltime = walltime, mem = mem, cores = numThreads\n", - "bash: expand= \"${ }\", stderr = f'{_output:n}.stderr', stdout = f'{_output:n}.stdout', container=container\n", - " Rscript ${modular_script_dir}/molecular_phenotypes/calling/splicing_calling.R \\\n", - " --step quantify_psi \\\n", - " --junctions ${cwd}/psichomics_junctions.txt \\\n", - " --splicing-annotation ${splicing_annotation:a} \\\n", - " --output ${_output}" - ] } ], "metadata": { diff --git a/code/SoS/molecular_phenotypes/splicing.ipynb b/code/SoS/molecular_phenotypes/splicing.ipynb index 4d6383276..2c59e83a5 100644 --- a/code/SoS/molecular_phenotypes/splicing.ipynb +++ b/code/SoS/molecular_phenotypes/splicing.ipynb @@ -9,7 +9,7 @@ "source": [ "# Alternative splicing from RNA-seq data\n", "\n", - "This mini-protocol produces normalized, gene-annotated splicing phenotypes for splicing-QTL analysis using either LeafCutter or psichomics." + "This mini-protocol produces normalized, gene-annotated splicing phenotypes for splicing-QTL analysis using LeafCutter." ] }, { @@ -33,9 +33,9 @@ "source": [ "## Overview\n", "\n", - "The [splicing-calling module](https://statfungen.github.io/xqtl-protocol/code/molecular_phenotypes/calling/splicing_calling.html) provides two alternative quantification routes. LeafCutter derives intron excision ratios from STAR splice-junction files without relying on a transcript annotation. psichomics calculates percent-spliced-in (PSI) values for annotated alternative-splicing events and therefore also requires the SUPPA annotation object.\n", + "The [splicing-calling module](https://statfungen.github.io/xqtl-protocol/code/molecular_phenotypes/calling/splicing_calling.html) quantifies splicing with LeafCutter, which derives intron excision ratios from STAR splice-junction files without relying on a transcript annotation.\n", "\n", - "The [normalization module](https://statfungen.github.io/xqtl-protocol/code/molecular_phenotypes/QC/splicing_normalization.html) performs missingness and variability filtering followed by quantile normalization. The [gene-annotation module](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/gene_annotation.html) then assigns coordinates and phenotype groups required by TensorQTL. LeafCutter and psichomics are alternative routes, not one combined chain." + "The [normalization module](https://statfungen.github.io/xqtl-protocol/code/molecular_phenotypes/QC/splicing_normalization.html) performs missingness and variability filtering followed by quantile normalization. The [gene-annotation module](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/gene_annotation.html) then assigns coordinates and phenotype groups required by TensorQTL." ] }, { @@ -51,10 +51,8 @@ "| --- | --- | --- |\n", "| LeafCutter from aligned RNA-seq data | 1 → 2 → 3 | `output/rnaseq/protocol_example.rnaseq.bam.list.txt`; STAR/WASP alignment directories |\n", "| LeafCutter from a precomputed ratio matrix | 2 → 3 | `input/rnaseq/protocol_example.leafcutter.intron_usage_perind.counts.gz`; `tests/fixtures/gene_annotation/protocol_example.leafcutter.intron_count.tsv` |\n", - "| psichomics from aligned RNA-seq data | 4 → 5 → 6 | BAM list and alignments above; `input/reference_data/Homo_sapiens.GRCh38.103.chr.reformatted.ERCC.SUPPA_annotation.rds` |\n", - "| psichomics from a precomputed PSI matrix | 5 → 6 | `input/rnaseq/protocol_example.psichomics.psi_raw_data.tsv` |\n", "\n", - "Within the selected route, run the commands in numerical order. The bundled example data support the two precomputed-matrix routes; the calling routes require aligned BAM files." + "Within the selected route, run the commands in numerical order. The bundled example data support the precomputed-matrix route; the calling route requires aligned BAM files." ] }, { @@ -129,78 +127,6 @@ "sos run pipeline/gene_annotation.ipynb annotate_leafcutter_isoforms --cwd output/splicing/leafcutter --phenoFile output/gene_annotation/protocol_example.leafcutter.intron_usage_perind.counts.gz_raw_data.qqnorm.txt --intron-count tests/fixtures/gene_annotation/protocol_example.leafcutter.intron_count.tsv --coordinate-annotation tests/fixtures/gene_annotation/Homo_sapiens.GRCh38.103.collapse_only.gene.chr22.gtf.gz --map-stra site" ] }, - { - "cell_type": "markdown", - "id": "52917182", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "### [4. Quantify annotated events with psichomics](https://statfungen.github.io/xqtl-protocol/code/molecular_phenotypes/calling/splicing_calling.html)\n", - "\n", - "**What it does:** `psichomics` uses aligned reads and a SUPPA event annotation to calculate PSI values for alternative-splicing events." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a1e38a71", - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "sos run pipeline/splicing_calling.ipynb psichomics --cwd output/splicing/psichomics --samples output/rnaseq/protocol_example.rnaseq.bam.list.txt --data-dir output/rnaseq/star_output_wasp --splicing-annotation " - ] - }, - { - "cell_type": "markdown", - "id": "c7d91821", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "### [5. Normalize psichomics PSI values](https://statfungen.github.io/xqtl-protocol/code/molecular_phenotypes/QC/splicing_normalization.html)\n", - "\n", - "**What it does:** `psichomics_norm` filters PSI events for missingness and variability and produces a quantile-normalized event matrix." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "97b10908", - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "sos run pipeline/splicing_normalization.ipynb psichomics_norm --cwd output/splicing/psichomics --ratios output/leafcutter/normalize/protocol_example.psichomics.psi_raw_data.tsv" - ] - }, - { - "cell_type": "markdown", - "id": "5cd28892", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "### [6. Annotate psichomics phenotypes](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/phenotype/gene_annotation.html)\n", - "\n", - "**What it does:** `annotate_psichomics_isoforms` assigns genomic coordinates and phenotype groups to normalized psichomics events for TensorQTL." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2bb3a4ca", - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "sos run pipeline/gene_annotation.ipynb annotate_psichomics_isoforms --cwd output/splicing/psichomics --phenoFile output/splicing/psichomics/psichomics_raw_data_bedded.qqnorm.txt --coordinate-annotation tests/fixtures/gene_annotation/Homo_sapiens.GRCh38.103.collapse_only.gene.chr22.gtf.gz" - ] - }, { "cell_type": "markdown", "id": "e39d7d6f", @@ -214,10 +140,7 @@ "| --- | --- | --- |\n", "| LeafCutter calling | `output/splicing/leafcutter/*_intron_usage_perind.counts.gz`; `*_intron_usage_perind_numers.counts.gz` | Intron excision ratios and supporting intron counts |\n", "| LeafCutter normalization | `input/rnaseq/protocol_example.leafcutter.intron_usage_perind.counts.gz_raw_data.txt`; `input/rnaseq/protocol_example.leafcutter.intron_usage_perind.counts.gz_raw_data.qqnorm.txt` | QC-filtered and quantile-normalized ratios |\n", - "| LeafCutter annotation | `output/splicing/leafcutter/protocol_example.leafcutter.intron_usage_perind.counts.gz_raw_data.qqnorm.formated.bed.gz`; `output/splicing/leafcutter/protocol_example.leafcutter.intron_usage_perind.counts.gz_raw_data.qqnorm.phenotype_group.txt` | TensorQTL phenotype and grouping files |\n", - "| psichomics calling | `output/splicing/psichomics/psi_raw_data.tsv` | Raw event-level PSI matrix |\n", - "| psichomics normalization | `output/splicing/psichomics/psichomics_raw_data_bedded.qqnorm.txt` | QC-filtered and normalized PSI matrix |\n", - "| psichomics annotation | `output/splicing/psichomics/psichomics_raw_data_bedded.qqnorm.formated.bed.gz`; `output/splicing/psichomics/psichomics_raw_data_bedded.qqnorm.phenotype_group.txt` | TensorQTL phenotype and grouping files |" + "| LeafCutter annotation | `output/splicing/leafcutter/protocol_example.leafcutter.intron_usage_perind.counts.gz_raw_data.qqnorm.formated.bed.gz`; `output/splicing/leafcutter/protocol_example.leafcutter.intron_usage_perind.counts.gz_raw_data.qqnorm.phenotype_group.txt` | TensorQTL phenotype and grouping files |" ] }, { @@ -229,7 +152,7 @@ "source": [ "## Anticipated Results\n", "\n", - "Each selected route ends with a coordinate-sorted, bgzip-compressed phenotype matrix and a matching phenotype-group file. Rows represent introns or annotated splicing events, columns represent samples, and the normalized values can be supplied directly to splicing-QTL association testing." + "Each route ends with a coordinate-sorted, bgzip-compressed phenotype matrix and a matching phenotype-group file. Rows represent introns, columns represent samples, and the normalized values can be supplied directly to splicing-QTL association testing." ] }, { @@ -315,4 +238,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/code/SoS/reference_data/reference_data.ipynb b/code/SoS/reference_data/reference_data.ipynb index 14aeb6407..b47a856cb 100644 --- a/code/SoS/reference_data/reference_data.ipynb +++ b/code/SoS/reference_data/reference_data.ipynb @@ -35,7 +35,7 @@ "\n", "This mini-protocol walks through how the reference data used throughout the xQTL Protocol are downloaded, formatted, and indexed. It is an introductory, top-to-bottom guide: each step calls a single workflow from [`reference_data_preparation.ipynb`](https://statfungen.github.io/xqtl-protocol/code/reference_data/reference_data_preparation.html), with additional workflows from [`VCF_QC.ipynb`](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/genotype/VCF_QC.html), [`generalized_TADB.ipynb`](https://statfungen.github.io/xqtl-protocol/code/reference_data/generalized_TADB.html), and [`rss_ld_sketch.ipynb`](https://statfungen.github.io/xqtl-protocol/code/reference_data/rss_ld_sketch.html).\n", "\n", - "The commands are organized as selectable routes rather than one mandatory 15-step chain. Steps 1–12 prepare the core genome and the RNA-seq, RSEM, Picard, SUPPA, or psichomics resources needed by the selected route. Steps 13–15 are independent optional workflows for dbSNP annotation, TAD-based association windows, and RSS LD sketches.\n" + "The commands are organized as selectable routes rather than one mandatory 13-step chain. Steps 1–10 prepare the core genome and the RNA-seq, RSEM, or Picard resources needed by the selected route. Steps 11–13 are independent optional workflows for dbSNP annotation, TAD-based association windows, and RSS LD sketches.\n" ] }, { @@ -46,7 +46,7 @@ "source": [ "## Steps\n", "\n", - "Choose a route before running commands; the 15 commands are not one mandatory chain.\n", + "Choose a route before running commands; the 13 commands are not one mandatory chain.\n", "\n", "| **Analysis goal** | **Commands to run, in order** | **Inputs** |\n", "| --- | --- | --- |\n", @@ -54,11 +54,9 @@ "| Bulk RNA-seq alignment with STAR | 1 → 2 → 3 → 5 → 6 → 7 → 8 | - |\n", "| Transcript quantification with RSEM | 1 → 2 → 3 → 5 → 6 → 7 → 8 → 9 | - |\n", "| Picard RNA-seq quality control | 1 → 2 → 3 → 5 → 6 → 7 → 8 → 10 | - |\n", - "| SUPPA splicing annotation | 1 → 2 → 3 → 5 → 6 → 7 → 11 | - |\n", - "| psichomics HG38 annotation | 1 → 2 → 3 → 5 → 6 → 7 → 12 | `input/reference_data/hgnc_complete_set.txt` |\n", - "| Add dbSNP rsIDs to a study VCF | 4 → 13 | Internet access and a study VCF |\n", - "| TAD-based association windows | 14 | Tissue-specific TAD calls and gene coordinates |\n", - "| RSS fine-mapping or TWAS | 15 | LD-block definitions and genotype VCFs |\n", + "| Add dbSNP rsIDs to a study VCF | 4 → 11 | Internet access and a study VCF |\n", + "| TAD-based association windows | 12 | Tissue-specific TAD calls and gene coordinates |\n", + "| RSS fine-mapping or TWAS | 13 | LD-block definitions and genotype VCFs |\n", "\n", "Run only the row matching the intended analysis goal, following its commands in numerical order.\n" ] @@ -289,54 +287,7 @@ "kernel": "SoS" }, "source": [ - "### 11. [Generate SUPPA event annotation](https://statfungen.github.io/xqtl-protocol/code/reference_data/reference_data_preparation.html)\n", - "\n", - "**What it does:** Generate SUPPA event files and the SUPPA annotation RDS used for event-level splicing analysis.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "sos run pipeline/reference_data_preparation.ipynb SUPPA_annotation --cwd output/reference_data --hg-gtf output/reference_data/Homo_sapiens.GRCh38.103.chr.reformatted.ERCC.gtf" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "### 12. [Generate the psichomics HG38 annotation](https://statfungen.github.io/xqtl-protocol/code/reference_data/reference_data_preparation.html)\n", - "\n", - "**What it does:** Reconcile the processed GTF with an HGNC database and create `psichomics_hg38_annotation.rds`. The regular example-input bundle does not currently include the required HGNC table.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "sos run pipeline/reference_data_preparation.ipynb psi_hg38_annotation \\\n", - " --hg-gtf output/reference_data/Homo_sapiens.GRCh38.103.chr.reformatted.ERCC.gtf \\\n", - " --hgrc-db output/reference_data/hgnc_complete_set.txt \\\n", - " --cwd output/reference_data\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "### 13. [Annotate a study VCF with dbSNP identifiers (optional)](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/genotype/VCF_QC.html)\n", + "### 11. [Annotate a study VCF with dbSNP identifiers (optional)](https://statfungen.github.io/xqtl-protocol/code/data_preprocessing/genotype/VCF_QC.html)\n", "\n", "**What it does:** Add rsIDs to a study VCF when downstream tools require named variants.\n" ] @@ -360,7 +311,7 @@ "kernel": "SoS" }, "source": [ - "### 14. [Construct generalized TAD boundaries (optional)](https://statfungen.github.io/xqtl-protocol/code/reference_data/generalized_TADB.html)\n", + "### 12. [Construct generalized TAD boundaries (optional)](https://statfungen.github.io/xqtl-protocol/code/reference_data/generalized_TADB.html)\n", "\n", "**What it does:** Combine tissue-specific TAD calls into customized cis-association windows.\n" ] @@ -385,7 +336,7 @@ "kernel": "SoS" }, "source": [ - "### 15. [Construct an LD sketch for RSS analysis (optional)](https://statfungen.github.io/xqtl-protocol/code/reference_data/rss_ld_sketch.html)\n", + "### 13. [Construct an LD sketch for RSS analysis (optional)](https://statfungen.github.io/xqtl-protocol/code/reference_data/rss_ld_sketch.html)\n", "\n", "**What it does:** Generate, process and merge LD-sketch products for summary-statistics regression.\n" ] @@ -421,8 +372,6 @@ "| STAR | `output/reference_data/STAR_Index/` |\n", "| RSEM | `output/reference_data/RSEM_Index/` |\n", "| Picard QC | `output/reference_data/Homo_sapiens.GRCh38.103.chr.reformatted.ERCC.ref.flat` |\n", - "| SUPPA | `output/reference_data/hg38.Homo_sapiens.GRCh38.103.chr.reformatted.ERCC_SE_strict.ioe` and the other SUPPA `.ioe` event files; `output/reference_data/Homo_sapiens.GRCh38.103.chr.reformatted.ERCC.SUPPA_annotation.rds` |\n", - "| psichomics | `output/reference_data/psichomics_hg38_annotation.rds` |\n", "| dbSNP study-VCF annotation | `output/reference_data/00-All.variants.gz` lookup plus the annotated VCF under `output/vcf_qc/` |\n", "| TAD windows | `tests/fixtures/generalized_TADB/expected/generalized_TAD.tsv`; `tests/fixtures/generalized_TADB/expected/generalized_TADB.tsv`; `tests/fixtures/generalized_TADB/expected/TADB_enhanced_cis.bed`; `tests/fixtures/generalized_TADB/expected/extended_TADB.bed` |\n", "| RSS LD sketch | `output/rss_ld_sketch/W_B50.rds`; block-level `output/rss_ld_sketch/protocol_example..dosage.gz`; chromosome-level `output/rss_ld_sketch/protocol_example.22.pgen` products |" @@ -436,9 +385,9 @@ "source": [ "## Anticipated Results\n", "\n", - "After the selected route among steps 1–12, the reference directory contains the formatted genome and the annotations required by that analysis. The basic route produces the processed genome and gene annotation; the RNA-seq routes additionally produce the combined ERCC annotation and, as selected, the STAR index, RSEM index, RefFlat annotation, SUPPA event annotation, or psichomics HG38 annotation.\n", + "After the selected route among steps 1–10, the reference directory contains the formatted genome and the annotations required by that analysis. The basic route produces the processed genome and gene annotation; the RNA-seq routes additionally produce the combined ERCC annotation and, as selected, the STAR index, RSEM index, or RefFlat annotation.\n", "\n", - "Optional step 13 produces a study VCF annotated with dbSNP rsIDs. Optional step 14 produces generalized TAD and TAD-boundary files such as `generalized_TAD.tsv`, `generalized_TADB.tsv`, `TADB_enhanced_cis.bed`, and `extended_TADB.bed`. Optional step 15 produces the random-projection matrix and the block- and chromosome-level LD-sketch products consumed by RSS workflows.\n", + "Optional step 11 produces a study VCF annotated with dbSNP rsIDs. Optional step 12 produces generalized TAD and TAD-boundary files such as `generalized_TAD.tsv`, `generalized_TADB.tsv`, `TADB_enhanced_cis.bed`, and `extended_TADB.bed`. Optional step 13 produces the random-projection matrix and the block- and chromosome-level LD-sketch products consumed by RSS workflows.\n", "\n", "Proceed to the molecular-phenotype or genotype-preprocessing mini-protocol required by the selected analysis route.\n" ] @@ -495,4 +444,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/code/SoS/reference_data/reference_data_preparation.ipynb b/code/SoS/reference_data/reference_data_preparation.ipynb index 461ee73b0..ead8e2d24 100644 --- a/code/SoS/reference_data/reference_data_preparation.ipynb +++ b/code/SoS/reference_data/reference_data_preparation.ipynb @@ -99,13 +99,11 @@ "\n", "- `--hg-reference` (required by `hg_reference_1`, `hg_gtf_1`, `gene_annotation`): the reference\n", " genome FASTA, e.g. `input/reference_data/GRCh38_full_analysis_set_plus_decoy_hla.noALT_noHLA_noDecoy.fasta`.\n", - "- `--hg-gtf` (required by `hg_gtf_1`, `gene_annotation`, `psi_hg38_annotation`): the gene model GTF.\n", + "- `--hg-gtf` (required by `hg_gtf_1`, `gene_annotation`): the gene model GTF.\n", "- `--gff3-file` (required by `gff3_to_gtf`): a GFF3 to convert to GTF.\n", "- `--ercc-reference` (required by `hg_reference_2`): the ERCC spike-in FASTA, merged into the genome.\n", "- `--ercc-gtf` (required by `ercc_gtf`): the ERCC annotation to patch and append.\n", "- `--stranded` / `--no-stranded` (required by `hg_gtf_2`): whether the library is stranded.\n", - "- `--hgrc-db` (required by `psi_hg38_annotation`): reference database for the psichomics\n", - " annotation. Undocumented: the code does not say what this file is or where to obtain it.\n", "- `--TAD-list`, `--region-list`, `--TAD-genotype` (all required by `Tad_annotateion`): the TAD\n", " definitions, the regions to annotate and the genotypes to annotate them against.\n", "- `--genoFile` (used by `download_dbsnp`): the dbSNP VCF to index, e.g.\n", @@ -142,12 +140,9 @@ "- `.ref.flat` -- from `RefFlat_generation`: the RefFlat annotation Picard uses for RNA metrics.\n", "- `00-All.vcf.gz` (+ `.tbi`) -- from `download_dbsnp`: the dbSNP VCF, bgzipped and tabix-indexed.\n", "- `RSEM_Index/rsem_reference.grp` and `rsem_reference.n2g.idx.fa` -- from `RSEM_index`.\n", - "- `_SE_strict.ioe` -- from `SUPPA_annotation_1`: the SUPPA event definitions.\n", - "- `.SUPPA_annotation.rds` and `psichomics_hg38_annotation.rds` -- from `SUPPA_annotation_2` and\n", - " `psi_hg38_annotation`.\n", "- `look_up_gene_id.txt` -- the gene-ID lookup table written alongside the gene annotation.\n", "- `STAR_Index/` and the RSEM index -- from `STAR_index` and `RSEM_index`.\n", - "- the SUPPA and TAD annotations -- from `SUPPA_annotation_1..2` and `psi_hg38_annotation`.\n", + "- the TAD annotations -- from `Tad_annotateion`.\n", "\n", "All paths are relative to `--cwd`.\n", "\n", @@ -167,7 +162,7 @@ "\n", "**Only the ERCC products have committed example output.** `output/reference_data/` holds\n", "`ERCC92.gtf`, `ERCC92.genes.patched.gtf` and `ERCC92.ref.flat`; the genome merge, collapsed gene\n", - "model, STAR and RSEM indices and the SUPPA/TAD annotations were not run here, so no dump is shown\n", + "model, STAR and RSEM indices and the TAD annotations were not run here, so no dump is shown\n", "for them." ] }, @@ -192,7 +187,7 @@ "steps. The four downloads are independent of each other and of everything else. Three do have to run\n", "in order -- format the reference genome, then process the transcript and gene model, then assemble\n", "the gene annotation -- because each reads what the one before it wrote. The remaining generators\n", - "(STAR, RSEM, RefFlat, SUPPA, rsID and TAD) each read the formatted references and are independent of\n", + "(STAR, RSEM, RefFlat, rsID and TAD) each read the formatted references and are independent of\n", "one another, so run only the ones the analysis needs." ] }, @@ -527,39 +522,6 @@ " --hg-gtf output/reference_data/Homo_sapiens.GRCh38.103.chr.reformatted.ERCC.gtf" ] }, - { - "cell_type": "markdown", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "#### Generate SUPPA annotation\n", - "\n", - "The custom alternative-splicing annotation is generated for psichomics, based on [this tutorial](https://rpubs.com/nuno-agostinho/preparing-AS-annotation); the procedure for generating the local alternative-splicing SUPPA output is documented on the [SUPPA GitHub page](https://github.com/comprna/SUPPA). Because the original annotation provided by the psichomics package uses gene symbols, it is modified here to use Ensembl IDs. The modified annotation is then used for [detecting RNA alternative splicing with psichomics](https://statfungen.github.io/xqtl-protocol/code/molecular_phenotypes/calling/splicing_calling.html)." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "kernel": "SoS" - }, - "source": [ - "**Timing**: TBD (on toy dataset)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "kernel": "Bash" - }, - "outputs": [], - "source": [ - "sos run pipeline/reference_data_preparation.ipynb SUPPA_annotation \\\n", - " --cwd output/reference_data \\\n", - " --hg_gtf output/reference_data/Homo_sapiens.GRCh38.103.chr.reformatted.ERCC.gtf " - ] - }, { "cell_type": "markdown", "metadata": { @@ -630,36 +592,6 @@ " --cwd output/reference_data" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Generate psichomics annotation\n", - "\n", - "`psi_hg38_annotation` builds the psichomics annotation. `--hgrc-db` is undocumented: the code does not say what this file is or where to obtain it." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Timing**: TBD (on toy dataset)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "kernel": "Bash" - }, - "outputs": [], - "source": [ - "sos run pipeline/reference_data_preparation.ipynb psi_hg38_annotation \\\n", - " --hg-gtf tests/fixtures/gene_annotation/Homo_sapiens.GRCh38.103.collapse_only.gene.chr22.gtf.gz \\\n", - " --hgrc-db /hgrc_db \\\n", - " --cwd output/reference_data" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -738,8 +670,6 @@ " STAR_index\n", " RSEM_index\n", " RefFlat_generation\n", - " SUPPA_annotation\n", - " psi_hg38_annotation\n", " Tad_annotateion\n", "\n", "Global Workflow Options:\n", @@ -794,18 +724,6 @@ " RefFlat_generation:\n", " Workflow Options:\n", " --hg-gtf VAL (as path, required)\n", - " SUPPA_annotation_1:\n", - " Workflow Options:\n", - " --hg-gtf VAL (as path, required)\n", - " SUPPA_annotation_2:\n", - " Workflow Options:\n", - " --hg-gtf VAL (as path, required)\n", - " psi_hg38_annotation:\n", - " Workflow Options:\n", - " --hg-gtf VAL (as path, required)\n", - " --hgrc-db VAL (as path, required)\n", - " FIXME: Please document what this file is and where do we\n", - " get it @xuanhe.\n", " Tad_annotateion:\n", " Workflow Options:\n", " --TAD-list VAL (as path, required)\n", @@ -1140,66 +1058,6 @@ " rm ${_output}.tmp" ] }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "[SUPPA_annotation_1]\n", - "parameter: hg_gtf = path\n", - "input: hg_gtf\n", - "output: f'{cwd}/hg38.{_input:bn}_SE_strict.ioe' # The stderr file must not shared the same start with the output file\n", - "task: trunk_workers = 1, trunk_size = job_size, walltime = walltime, mem = mem, tags = f'{step_name}_{_output:bn}'\n", - "bash: container=container, expand= \"${ }\", stderr = f'{cwd}/{_input:bn}.stderr', stdout = f'{cwd}/{_input:bn}.stdout'\n", - " suppa generateEvents -i ${_input} -o ${cwd}/hg38.${_input:bn} -f ioe -e SE SS MX RI FL" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": { - "kernel": "SoS" - }, - "outputs": [], - "source": [ - "[SUPPA_annotation_2]\n", - "parameter: hg_gtf = path\n", - "output: f'{cwd}/{hg_gtf:bn}.SUPPA_annotation.rds'\n", - "task: trunk_workers = 1, trunk_size = job_size, walltime = walltime, mem = mem, tags = f'{step_name}_{_output:bn}'\n", - "bash: container=container, expand= \"${ }\", stderr = f'{_output}.stderr', stdout = f'{_output}.stdout'\n", - " Rscript ${modular_script_dir}/reference_data/reference_data_preparation.R \\\n", - " --step suppa_annot \\\n", - " --ioe-dir ${_input:d} \\\n", - " --genome hg38 \\\n", - " --output ${_output}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "kernel": "SoS", - "tags": [] - }, - "outputs": [], - "source": [ - "[psi_hg38_annotation]\n", - "parameter: hg_gtf = path\n", - "# FIXME: Please document what this file is and where do we get it @xuanhe.\n", - "parameter: hgrc_db = path\n", - "input: hg_gtf, hgrc_db\n", - "output: f'{cwd}/psichomics_hg38_annotation.rds'\n", - "task: trunk_workers = 1, trunk_size = job_size, walltime = walltime, mem = mem, tags = f'{step_name}_{_output:bn}'\n", - "bash: container=container, expand= \"${ }\", stderr = f'{_output}.stderr', stdout = f'{_output}.stdout'\n", - " Rscript ${modular_script_dir}/reference_data/psichomics_hg38_annotation.R \\\n", - " --hg-gtf ${_input[0]} \\\n", - " --hgnc-db ${_input[1]} \\\n", - " --output ${_output}" - ] - }, { "cell_type": "code", "execution_count": null, @@ -1262,4 +1120,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/code/script/data_preprocessing/phenotype/gene_annotation.R b/code/script/data_preprocessing/phenotype/gene_annotation.R index 40b81e031..dc548105e 100644 --- a/code/script/data_preprocessing/phenotype/gene_annotation.R +++ b/code/script/data_preprocessing/phenotype/gene_annotation.R @@ -7,7 +7,6 @@ # annotate_coord — prepend gene/protein/atac coordinates to a matrix # map_leafcutter_cluster_to_gene — map leafcutter intron clusters to genes # annotate_leafcutter_isoforms — coordinate-annotate leafcutter introns per gene -# annotate_psichomics_isoforms — coordinate-annotate psichomics events per gene # annotate_coord_biomart — fetch coordinates from Ensembl biomaRt (network) # # Ports the Broad `qtl`/`pyqtl` logic to rtracklayer + GenomicRanges + Rsamtools. @@ -35,7 +34,7 @@ parser <- add_argument(parser, "--phenoFile", type = "character", default = "", parser <- add_argument(parser, "--coordinate-annotation", type = "character", default = "", help = "[annotate_coord] collapsed gene-model GTF (or ATAC index)") parser <- add_argument(parser, "--annotation-gtf", type = "character", default = "", - help = "[leafcutter/psichomics] full gene-model GTF with exons") + help = "[leafcutter] full gene-model GTF with exons") parser <- add_argument(parser, "--sample-participant-lookup", type = "character", default = "", help = "Optional sample_id -> participant_id map") parser <- add_argument(parser, "--molecular-trait-type", type = "character", default = "gene", @@ -66,7 +65,7 @@ parser <- add_argument(parser, "--output-cluster-map", type = "character", defau parser <- add_argument(parser, "--cluster-map", type = "character", default = "", help = "[annotate_leafcutter] input cluster-to-gene map") parser <- add_argument(parser, "--output-phenotype-group", type = "character", default = "", - help = "[leafcutter/psichomics] output phenotype-group file") + help = "[leafcutter] output phenotype-group file") parser <- add_argument(parser, "--ensembl-version", type = "numeric", default = NA, help = "[annotate_coord_biomart] Ensembl release version") argv <- parse_args(parser) @@ -379,33 +378,6 @@ annotate_leafcutter_isoforms <- function(argv) { message(sprintf("Written: %s, %s", argv$output_bed, argv$output_phenotype_group)) } -# --------------------------------------------------------------------------- -# Psichomics isoform annotation -# --------------------------------------------------------------------------- -annotate_psichomics_isoforms <- function(argv) { - gr <- rtracklayer::import(argv$annotation_gtf) - tss <- tss_bed(gr, "gene", "gene_id") - bed <- vroom::vroom(argv$phenoFile, delim = "\t", - col_types = cols(.default = "c"), show_col_types = FALSE) - last_field <- function(s, i_from_end) - vapply(strsplit(as.character(s), "_", fixed = TRUE), - function(x) x[length(x) - i_from_end], character(1)) - bed$gene_id <- last_field(bed$ID, 0) - bed <- bed %>% select(-any_of(c("#Chr", "#chr", "start", "end"))) - - out <- tss %>% right_join(bed, by = "gene_id") %>% arrange(chr, start) - out <- apply_participant_map(out, read_participant_map(argv$sample_participant_lookup)) - out <- out %>% - mutate(gene_type_id = vapply(strsplit(as.character(ID), "_", fixed = TRUE), - function(x) paste0(x[length(x)], "_", x[1]), character(1))) - phenotype_group <- out %>% select(ID, gene_type_id) - bed_out <- out %>% select(-gene_id, -gene_type_id) %>% - select(`#chr` = chr, start, end, ID, everything()) - write_bed_r(bed_out, argv$output_bed) - vroom::vroom_write(phenotype_group, argv$output_phenotype_group, delim = "\t", col_names = FALSE) - message(sprintf("Written: %s, %s", argv$output_bed, argv$output_phenotype_group)) -} - # --------------------------------------------------------------------------- # annotate_coord_biomart (Ensembl web service; needs network) # --------------------------------------------------------------------------- @@ -454,7 +426,6 @@ switch(argv$step, annotate_coord = annotate_coord(argv), map_leafcutter_cluster_to_gene = map_leafcutter_cluster_to_gene(argv), annotate_leafcutter_isoforms = annotate_leafcutter_isoforms(argv), - annotate_psichomics_isoforms = annotate_psichomics_isoforms(argv), annotate_coord_biomart = annotate_coord_biomart(argv), stop(sprintf("Unknown step: '%s'", argv$step)) ) diff --git a/code/script/reference_data/psichomics_hg38_annotation.R b/code/script/graveyard/psichomics_hg38_annotation.R similarity index 97% rename from code/script/reference_data/psichomics_hg38_annotation.R rename to code/script/graveyard/psichomics_hg38_annotation.R index 1c083be02..878690c1e 100644 --- a/code/script/reference_data/psichomics_hg38_annotation.R +++ b/code/script/graveyard/psichomics_hg38_annotation.R @@ -1,7 +1,9 @@ #!/usr/bin/env Rscript # ============================================================ -# psichomics_hg38_annotation.R +# psichomics_hg38_annotation.R (retired) # Standalone CLI worker for reference_data_preparation.ipynb [psi_hg38_annotation]. +# Retired with the rest of the psichomics/SUPPA track: SUPPA is unmaintained +# upstream, and the [psi_hg38_annotation] cell it served is gone. # # Reconcile the gene-symbol column of the psichomics hg38 splicing annotation # (loadAnnotation, AnnotationHub AH63657) to Ensembl gene IDs, drawing on four diff --git a/code/script/molecular_phenotypes/calling/splicing_calling.R b/code/script/graveyard/psichomics_splicing_calling.R similarity index 94% rename from code/script/molecular_phenotypes/calling/splicing_calling.R rename to code/script/graveyard/psichomics_splicing_calling.R index 5acc80c30..91950b641 100644 --- a/code/script/molecular_phenotypes/calling/splicing_calling.R +++ b/code/script/graveyard/psichomics_splicing_calling.R @@ -1,7 +1,9 @@ #!/usr/bin/env Rscript # ============================================================ -# splicing_calling.R -# Standalone CLI worker for splicing_calling.ipynb psichomics steps. +# psichomics_splicing_calling.R (retired; was splicing_calling.R) +# Standalone CLI worker for the psichomics steps of splicing_calling.ipynb. +# Retired with the rest of the psichomics/SUPPA track: SUPPA is unmaintained +# upstream, and the [psichomics_1] / [psichomics_2] cells it served are gone. # # Steps (selected via --step): # junction_quant — psichomics::prepareJunctionQuant over STAR SJ.out.tab files diff --git a/code/script/molecular_phenotypes/QC/splicing_normalization.R b/code/script/molecular_phenotypes/QC/splicing_normalization.R index 67071cec3..595b38b9f 100644 --- a/code/script/molecular_phenotypes/QC/splicing_normalization.R +++ b/code/script/molecular_phenotypes/QC/splicing_normalization.R @@ -6,13 +6,10 @@ # Steps (selected via --step): # prepare_phenotype — leafcutter ratios -> per-chrom .phen_ / .ave / # .qqnorm_ (sorted) + _phenotype_file_list.txt ([leafcutter_norm_1]) -# qqnorm — NA/variance filter, row-scale, per-column rank qqnorm ([leafcutter_norm_3], -# [psichomics_norm_2]) -# psichomics_bed — parseSplicingEvent -> BED-ordered PSI table ([psichomics_norm_1]) +# qqnorm — NA/variance filter, row-scale, per-column rank qqnorm ([leafcutter_norm_3]) # jointcall_samples — subset a sample lookup to samples present in a junc list ([Jointcall_samples]) # -# Faithful port of the leafcutter prepare_phenotype_table.py logic and the psichomics -# blocks. Numeric transforms reproduce scipy: preprocessing.scale = (x-mean)/pop_sd; +# Faithful port of the leafcutter prepare_phenotype_table.py logic. Numeric transforms reproduce scipy: preprocessing.scale = (x-mean)/pop_sd; # qqnorm(x) = qnorm((rank_avg(x) - a)/(n + 1 - 2a)), a = 0.5 (n>10) else 3/8. # (Float string formatting follows R, not Python's shortest-repr; values are identical.) # ============================================================ @@ -20,7 +17,7 @@ suppressPackageStartupMessages(library(argparser)) parser <- arg_parser("splicing_normalization worker (see --step)") -parser <- add_argument(parser, "--step", type = "character", help = "prepare_phenotype | qqnorm | psichomics_bed | jointcall_samples") +parser <- add_argument(parser, "--step", type = "character", help = "prepare_phenotype | qqnorm | jointcall_samples") parser <- add_argument(parser, "--input", type = "character", default = "", help = "input file") parser <- add_argument(parser, "--output", type = "character", default = "", help = "output file") parser <- add_argument(parser, "--chr-blacklist", type = "character", default = "", help = "[prepare_phenotype] chromosome blacklist file") @@ -115,19 +112,6 @@ qqnorm_step <- function(argv) { close(con) } -# --------------------------------------------------------------------------- -psichomics_bed <- function(argv) { - suppressPackageStartupMessages({ library(psichomics); library(vroom) }) - d <- as.data.frame(vroom::vroom(argv$input, delim = "\t", show_col_types = FALSE)) - rn <- d[[1]]; psi <- d[, -1, drop = FALSE]; rownames(psi) <- rn - ev <- parseSplicingEvent(rownames(psi)) - bed <- data.frame(`#Chr` = ev$chrom, start = ev$start, end = ev$end, ID = rownames(ev), - psi, check.names = FALSE) - bed[["#Chr"]] <- sub("^", "chr", bed[["#Chr"]]) - bed <- bed[order(bed[["#Chr"]], bed$start, bed$end), ] - vroom::vroom_write(bed, argv$output, delim = "\t", quote = "none", escape = "none") -} - # --------------------------------------------------------------------------- jointcall_samples <- function(argv) { suppressPackageStartupMessages({ library(vroom); library(stringr); library(dplyr) }) @@ -143,7 +127,6 @@ jointcall_samples <- function(argv) { switch(argv$step, prepare_phenotype = prepare_phenotype(argv), qqnorm = qqnorm_step(argv), - psichomics_bed = psichomics_bed(argv), jointcall_samples = jointcall_samples(argv), stop(sprintf("Unknown step: '%s'", argv$step)) ) diff --git a/code/script/reference_data/reference_data_preparation.R b/code/script/reference_data/reference_data_preparation.R index 55507d920..575d07148 100644 --- a/code/script/reference_data/reference_data_preparation.R +++ b/code/script/reference_data/reference_data_preparation.R @@ -8,7 +8,6 @@ # faidx — index a FASTA (Rsamtools; replaces `samtools faidx`) # hg_gtf_1 — match GTF chr naming to the FASTA + transcript_biotype->transcript_type # ercc_gtf — expand the ERCC exon GTF into gene/transcript/exon records -# suppa_annot — psichomics annotation RDS from a directory of SUPPA .ioe files # tad_annotate — annotate regions with the TAD they fall inside + genotype-file list # # Conventions: read with vroom, sequences via Biostrings, faidx via Rsamtools. @@ -27,10 +26,6 @@ parser <- add_argument(parser, "--output", type = "character", default = "", hel parser <- add_argument(parser, "--hg-reference", type = "character", default = "", help = "[hg_gtf_1] genome FASTA (to detect chr naming)") parser <- add_argument(parser, "--hg-gtf", type = "character", default = "", help = "[hg_gtf_1] GTF to reformat") -parser <- add_argument(parser, "--ioe-dir", type = "character", default = "", - help = "[suppa_annot] directory of SUPPA .ioe files") -parser <- add_argument(parser, "--genome", type = "character", default = "hg38", - help = "[suppa_annot] genome tag for parseSuppaAnnotation") parser <- add_argument(parser, "--tad-list", type = "character", default = "", help = "[tad_annotate] TAD table (#chr,start,end,tad_index)") parser <- add_argument(parser, "--region-list", type = "character", default = "", @@ -108,17 +103,6 @@ ercc_gtf <- function(argv) { message(sprintf("Written: %s (%d rows)", argv$output, nrow(out))) } -# --------------------------------------------------------------------------- -# suppa_annot: psichomics annotation object from SUPPA .ioe files ([SUPPA_annotation_2]) -# --------------------------------------------------------------------------- -suppa_annot <- function(argv) { - suppressPackageStartupMessages(library(psichomics)) - suppa <- parseSuppaAnnotation(argv$ioe_dir, genome = argv$genome) - annot <- prepareAnnotationFromEvents(suppa) - saveRDS(annot, argv$output) - message(sprintf("Written: %s", argv$output)) -} - # --------------------------------------------------------------------------- # tad_annotate: regions inside each TAD + genotype-file list ([Tad_annotateion]) # Faithful port of the pandas step: merge on '#chr' with pandas _x/_y suffixes @@ -152,7 +136,6 @@ switch(argv$step, faidx = faidx(argv), hg_gtf_1 = hg_gtf_1(argv), ercc_gtf = ercc_gtf(argv), - suppa_annot = suppa_annot(argv), tad_annotate = tad_annotate(argv), stop(sprintf("Unknown step: '%s'", argv$step)) ) diff --git a/tests/fixtures/gene_annotation/README.md b/tests/fixtures/gene_annotation/README.md index eb0acf074..537998829 100644 --- a/tests/fixtures/gene_annotation/README.md +++ b/tests/fixtures/gene_annotation/README.md @@ -7,12 +7,11 @@ from the protocol-example MWE. Do **not** remove without migrating | File | Purpose | Derivation | |---|---|---| | `Homo_sapiens.GRCh38.103.collapse_only.gene.chr22.gtf.gz` | `annotate_coord` (gene/protein) coordinate source | collapsed gene-model GTF subset to `chr22`, gzipped | -| `Homo_sapiens.GRCh38.103.chr22.exon.gtf.gz` | leafcutter/psichomics exon source | full chr22 GTF subset to the 109 genes the toy introns overlap ∪ psichomics genes | +| `Homo_sapiens.GRCh38.103.chr22.exon.gtf.gz` | leafcutter exon source | full chr22 GTF subset to the 109 genes the toy introns overlap | | `protocol_example.rnaseq.bed.gz` | `annotate_coord` gene matrix | copied as-is (chr22) | | `protocol_example.protein.no_coord.tsv` | `annotate_coord` protein matrix | protein `no_coord` subset to chr22 genes (19 rows) | | `protocol_example.leafcutter.intron_count.tsv` | `map_leafcutter_cluster_to_gene` | copied as-is | | `protocol_example.leafcutter.phenotype.bed.gz` | `annotate_leafcutter_isoforms` | copied as-is | -| `protocol_example.psichomics.phenotype.tsv` | `annotate_psichomics_isoforms` | copied as-is | | `protocol_example.rnaseq.gene_ID.tsv` | `annotate_coord_biomart` (e2e; needs network) | copied as-is | | `protocol_example.atac.tsv` | `annotate_coord` (atac) matrix | 10 chr22 peaks × 10 samples, from the MWE `proteomics/peaks_split` beds | | `protocol_example.atac.coordinate_index.tsv` | `annotate_coord` (atac) coordinate index | `ID/#chr/start/end` for those 10 peaks | diff --git a/tests/fixtures/gene_annotation/expected/protocol_example.psichomics.phenotype.formated.bed.gz b/tests/fixtures/gene_annotation/expected/protocol_example.psichomics.phenotype.formated.bed.gz deleted file mode 100644 index e1a820ed4..000000000 Binary files a/tests/fixtures/gene_annotation/expected/protocol_example.psichomics.phenotype.formated.bed.gz and /dev/null differ diff --git a/tests/fixtures/gene_annotation/expected/protocol_example.psichomics.phenotype.phenotype_group.txt b/tests/fixtures/gene_annotation/expected/protocol_example.psichomics.phenotype.phenotype_group.txt deleted file mode 100644 index b83700c2d..000000000 --- a/tests/fixtures/gene_annotation/expected/protocol_example.psichomics.phenotype.phenotype_group.txt +++ /dev/null @@ -1,60 +0,0 @@ -SE_51_ENSG00000235992 ENSG00000235992_SE -SE_29_ENSG00000215270 ENSG00000215270_SE -SE_8_ENSG00000249263 ENSG00000249263_SE -SE_26_ENSG00000259271 ENSG00000259271_SE -SE_38_ENSG00000285045 ENSG00000285045_SE -SE_46_ENSG00000183307 ENSG00000183307_SE -SE_19_ENSG00000276160 ENSG00000276160_SE -SE_15_ENSG00000063515 ENSG00000063515_SE -SE_10_ENSG00000184113 ENSG00000184113_SE -SE_44_ENSG00000235062 ENSG00000235062_SE -SE_6_ENSG00000197210 ENSG00000197210_SE -SE_28_ENSG00000133475 ENSG00000133475_SE -SE_24_ENSG00000169662 ENSG00000169662_SE -SE_18_ENSG00000206142 ENSG00000206142_SE -SE_34_ENSG00000276800 ENSG00000276800_SE -SE_5_ENSG00000253823 ENSG00000253823_SE -SE_43_ENSG00000211649 ENSG00000211649_SE -SE_48_ENSG00000211655 ENSG00000211655_SE -SE_59_ENSG00000253822 ENSG00000253822_SE -SE_22_ENSG00000211668 ENSG00000211668_SE -SE_58_ENSG00000211682 ENSG00000211682_SE -SE_37_ENSG00000232545 ENSG00000232545_SE -SE_39_ENSG00000100014 ENSG00000100014_SE -SE_9_ENSG00000284070 ENSG00000284070_SE -SE_25_ENSG00000285968 ENSG00000285968_SE -SE_27_ENSG00000223056 ENSG00000223056_SE -SE_36_ENSG00000244625 ENSG00000244625_SE -SE_17_ENSG00000183579 ENSG00000183579_SE -SE_2_ENSG00000225465 ENSG00000225465_SE -SE_41_ENSG00000099995 ENSG00000099995_SE -SE_11_ENSG00000100036 ENSG00000100036_SE -SE_45_ENSG00000184792 ENSG00000184792_SE -SE_30_ENSG00000240186 ENSG00000240186_SE -SE_4_ENSG00000273387 ENSG00000273387_SE -SE_32_ENSG00000198832 ENSG00000198832_SE -SE_13_ENSG00000199695 ENSG00000199695_SE -SE_54_ENSG00000243519 ENSG00000243519_SE -SE_57_ENSG00000133466 ENSG00000133466_SE -SE_3_ENSG00000226233 ENSG00000226233_SE -SE_20_ENSG00000272694 ENSG00000272694_SE -SE_12_ENSG00000100116 ENSG00000100116_SE -SE_23_ENSG00000284289 ENSG00000284289_SE -SE_47_ENSG00000284266 ENSG00000284266_SE -SE_55_ENSG00000222044 ENSG00000222044_SE -SE_56_ENSG00000235246 ENSG00000235246_SE -SE_40_ENSG00000241693 ENSG00000241693_SE -SE_0_ENSG00000286440 ENSG00000286440_SE -SE_31_ENSG00000287219 ENSG00000287219_SE -SE_14_ENSG00000284554 ENSG00000284554_SE -SE_50_ENSG00000128272 ENSG00000128272_SE -SE_52_ENSG00000230769 ENSG00000230769_SE -SE_53_ENSG00000199515 ENSG00000199515_SE -SE_21_ENSG00000285531 ENSG00000285531_SE -SE_33_ENSG00000207932 ENSG00000207932_SE -SE_35_ENSG00000182057 ENSG00000182057_SE -SE_7_ENSG00000231010 ENSG00000231010_SE -SE_16_ENSG00000075234 ENSG00000075234_SE -SE_1_ENSG00000285855 ENSG00000285855_SE -SE_42_ENSG00000273253 ENSG00000273253_SE -SE_49_ENSG00000100312 ENSG00000100312_SE diff --git a/tests/fixtures/gene_annotation/expected_manifest.tsv b/tests/fixtures/gene_annotation/expected_manifest.tsv index 4bf0c3d1c..8d2893e8f 100644 --- a/tests/fixtures/gene_annotation/expected_manifest.tsv +++ b/tests/fixtures/gene_annotation/expected_manifest.tsv @@ -13,5 +13,3 @@ protocol_example.atac.region_list.txt tolerant 1e-6 1e-8 annotate_coord atac: re protocol_example.leafcutter.intron_count.tsv.leafcutter.clusters_to_genes.txt tolerant 1e-6 1e-8 map_leafcutter_cluster_to_gene (site): cluster->gene map; deterministic, no embedded paths. protocol_example.leafcutter.phenotype.bed.formated.bed.gz tolerant 1e-6 1e-8 annotate_leafcutter_isoforms: TSS-annotated leafcutter isoform BED; deterministic. protocol_example.leafcutter.phenotype.bed.phenotype_group.txt tolerant 1e-6 1e-8 annotate_leafcutter_isoforms: isoform->gene phenotype-group; deterministic, no embedded paths. -protocol_example.psichomics.phenotype.formated.bed.gz tolerant 1e-6 1e-8 annotate_psichomics_isoforms: TSS-annotated psichomics event BED; deterministic. -protocol_example.psichomics.phenotype.phenotype_group.txt tolerant 1e-6 1e-8 annotate_psichomics_isoforms: event->type phenotype-group (col_names=FALSE); deterministic, no embedded paths. diff --git a/tests/fixtures/gene_annotation/protocol_example.psichomics.phenotype.tsv b/tests/fixtures/gene_annotation/protocol_example.psichomics.phenotype.tsv deleted file mode 100644 index da0bfb4ab..000000000 --- a/tests/fixtures/gene_annotation/protocol_example.psichomics.phenotype.tsv +++ /dev/null @@ -1,61 +0,0 @@ -ID SAMPLE_001 SAMPLE_002 SAMPLE_003 SAMPLE_004 SAMPLE_005 SAMPLE_006 SAMPLE_007 SAMPLE_008 SAMPLE_009 SAMPLE_010 SAMPLE_011 SAMPLE_012 SAMPLE_013 SAMPLE_014 SAMPLE_015 SAMPLE_016 SAMPLE_017 SAMPLE_018 SAMPLE_019 SAMPLE_020 SAMPLE_021 SAMPLE_022 SAMPLE_023 SAMPLE_024 SAMPLE_025 SAMPLE_026 SAMPLE_027 SAMPLE_028 SAMPLE_029 SAMPLE_030 SAMPLE_031 SAMPLE_032 SAMPLE_033 SAMPLE_034 SAMPLE_035 SAMPLE_036 SAMPLE_037 SAMPLE_038 SAMPLE_039 SAMPLE_040 SAMPLE_041 SAMPLE_042 SAMPLE_043 SAMPLE_044 SAMPLE_045 SAMPLE_046 SAMPLE_047 SAMPLE_048 SAMPLE_049 SAMPLE_050 SAMPLE_051 SAMPLE_052 SAMPLE_053 SAMPLE_054 SAMPLE_055 SAMPLE_056 SAMPLE_057 SAMPLE_058 SAMPLE_059 SAMPLE_060 -SE_0_ENSG00000286440 0.6436 0.6869 0.0322 0.6484 0.7726 0.6645 0.1393 0.3645 0.3874 0.8870 0.3220 0.0418 0.8575 0.6565 0.6508 0.6998 0.0157 0.4585 0.7238 0.4494 0.8501 0.2852 0.9755 0.8393 0.3044 0.3140 0.1994 0.0662 0.0250 0.1652 0.3599 0.4842 0.0658 0.3737 0.8533 0.7424 0.6726 0.2123 0.9060 0.1924 0.4704 0.3099 0.7843 0.2710 0.9749 0.7558 0.0318 0.1775 0.4131 0.7089 0.5686 0.7700 0.2384 0.8370 0.1548 0.8117 0.6066 0.4751 0.5479 0.3865 -SE_1_ENSG00000285855 0.2611 0.5621 0.2739 0.4160 0.9104 0.9985 0.1353 0.3212 0.7533 0.1677 0.4228 0.0802 0.8194 0.7900 0.2532 0.5702 0.2230 0.1508 0.7445 0.9678 0.7121 0.0948 0.4356 0.8196 0.9675 0.9040 0.0705 0.7535 0.1752 0.1384 0.0733 0.3768 0.3003 0.6631 0.7057 0.5831 0.4463 0.4996 0.5304 0.6798 0.3696 0.5219 0.5583 0.4360 0.5922 0.2533 0.3820 0.8594 0.9566 0.6435 0.4120 0.9563 0.2574 0.8221 0.7010 0.0571 0.6824 0.2123 0.3281 0.9201 -SE_2_ENSG00000225465 0.4449 0.3400 0.7608 0.9560 0.8898 0.4655 0.3243 0.9712 0.9782 0.0890 0.9710 0.5425 0.4010 0.1339 0.7473 0.3708 0.7082 0.3801 0.4943 0.3649 0.9977 0.6398 0.8789 0.1131 0.5099 0.8846 0.6160 0.6464 0.4696 0.4541 0.3320 0.5429 0.3451 0.7584 0.3145 0.8114 0.6931 0.6764 0.7810 0.3940 0.1171 0.6294 0.2922 0.5502 0.2040 0.2486 0.5922 0.7690 0.3692 0.8503 0.6487 0.1634 0.0647 0.4549 0.6659 0.7668 0.0456 0.8971 0.5955 0.4123 -SE_3_ENSG00000226233 0.5607 0.0291 0.7984 0.8371 0.0858 0.2489 0.1736 0.1745 0.9006 0.7853 0.2364 0.0239 0.0825 0.0885 0.1983 0.4699 0.0733 0.3489 0.2918 0.7475 0.8748 0.3330 0.9272 0.2640 0.2656 0.0634 0.0523 0.9736 0.1318 0.8681 0.3287 0.5018 0.1411 0.6052 0.9896 0.8052 0.7513 0.8389 0.4228 0.2951 0.0166 0.3114 0.0722 0.4725 0.0656 0.1522 0.7939 0.4522 0.4684 0.8146 0.6224 0.8249 0.4719 0.4355 0.0131 0.9336 0.2158 0.8399 0.4573 0.7508 -SE_4_ENSG00000273387 0.5013 0.5218 0.3318 0.0571 0.2288 0.0235 0.5128 0.2115 0.7179 0.4542 0.1923 0.1839 0.9862 0.9953 0.8986 0.1312 0.0620 0.4629 0.3389 0.7041 0.6812 0.7020 0.8051 0.3965 0.5229 0.3064 0.7746 0.3155 0.2935 0.3250 0.2363 0.1753 0.6294 0.2452 0.0302 0.3206 0.7850 0.7184 0.8699 0.6858 0.4765 0.3108 0.0749 0.6590 0.6237 0.4373 0.0667 0.8035 0.5136 0.4496 0.8523 0.9381 0.4184 0.7052 0.5350 0.7798 0.7247 0.3147 0.0511 0.7691 -SE_5_ENSG00000253823 0.0879 0.9225 0.1331 0.8582 0.9434 0.5575 0.0632 0.6841 0.0351 0.6576 0.8524 0.6605 0.3408 0.5198 0.1448 0.6974 0.7159 0.7360 0.0319 0.9098 0.6703 0.5300 0.7002 0.3160 0.8185 0.6037 0.4063 0.2397 0.3869 0.8069 0.7079 0.3624 0.8911 0.4581 0.5519 0.0917 0.9430 0.9398 0.7202 0.3867 0.2265 0.1850 0.8109 0.7588 0.3932 0.2019 0.7874 0.7490 0.9155 0.4910 0.8674 0.5130 0.8022 0.0277 0.5128 0.8141 0.6953 0.9762 0.6154 0.3134 -SE_6_ENSG00000197210 0.7294 0.8487 0.6826 0.6597 0.0564 0.0001 0.2317 0.3438 0.7875 0.2543 0.0394 0.0375 0.9976 0.2279 0.3178 0.8812 0.9496 0.3016 0.6178 0.3944 0.2840 0.9428 0.0126 0.6758 0.7563 0.7697 0.5670 0.9118 0.8170 0.6442 0.0522 0.8895 0.1714 0.1505 0.3068 0.5045 0.3259 0.4370 0.3071 0.2398 0.7133 0.6709 0.0549 0.8959 0.1727 0.3197 0.7744 0.8572 0.9547 0.8731 0.5426 0.9111 0.7936 0.8426 0.9792 0.9462 0.4702 0.4618 0.7489 0.8374 -SE_7_ENSG00000231010 0.7294 0.3609 0.0640 0.1183 0.8866 0.9030 0.0256 0.3700 0.6151 0.4979 0.0525 0.8599 0.6401 0.3111 0.4766 0.3781 0.6386 0.8870 0.5767 0.3185 0.3450 0.8389 0.7391 0.3523 0.9145 0.5999 0.9978 0.8960 0.0684 0.4461 0.0118 0.9558 0.2271 0.2084 0.5428 0.9276 0.6588 0.8632 0.6548 0.5684 0.4615 0.5692 0.0236 0.1310 0.9987 0.1838 0.2910 0.5152 0.7450 0.1016 0.7939 0.6038 0.0578 0.3667 0.9421 0.7376 0.1577 0.6369 0.0770 0.4168 -SE_8_ENSG00000249263 0.3273 0.9916 0.5155 0.9725 0.4913 0.7522 0.0108 0.8713 0.6049 0.3780 0.8317 0.9000 0.1641 0.0175 0.6493 0.8790 0.1128 0.5691 0.0534 0.0554 0.5049 0.9014 0.8512 0.7144 0.7125 0.2151 0.4624 0.1544 0.2134 0.1532 0.4383 0.0304 0.1363 0.6876 0.6042 0.2338 0.2164 0.6285 0.0542 0.7738 0.8027 0.9032 0.1654 0.7828 0.5386 0.2321 0.8219 0.2322 0.1749 0.8724 0.9760 0.7215 0.1098 0.4624 0.5942 0.2158 0.8360 0.4244 0.5109 0.4884 -SE_9_ENSG00000284070 0.0017 0.8693 0.8686 0.8977 0.5593 0.4150 0.3199 0.1716 0.2164 0.5430 0.4083 0.7217 0.9965 0.2277 0.8693 0.3565 0.4360 0.3100 0.6350 0.4455 0.1425 0.5897 0.1245 0.2961 0.4176 0.8399 0.7687 0.5921 0.4731 0.2771 0.5185 0.4718 0.5090 0.5002 0.2329 0.3518 0.3834 0.0696 0.1004 0.7341 0.3356 0.7050 0.8403 0.6455 0.4653 0.8346 0.5479 0.0416 0.7844 0.4768 0.5089 0.7123 0.6784 0.9521 0.6198 0.1565 0.6524 0.7466 0.0039 0.6865 -SE_10_ENSG00000184113 0.6265 0.6779 0.3988 0.3266 0.5714 0.2197 0.8011 0.1564 0.5519 0.6509 0.2857 0.1360 0.9044 0.9755 0.6164 0.8066 0.4408 0.2747 0.5215 0.0198 0.5490 0.7917 0.3251 0.9380 0.1163 0.2545 0.6097 0.5653 0.8571 0.0168 0.8000 0.0672 0.8104 0.6283 0.0120 0.8913 0.2879 0.4950 0.9393 0.3773 0.0757 0.2097 0.7367 0.1406 0.3111 0.2193 0.4366 0.1220 0.9712 0.9070 0.1071 0.1439 0.5508 0.9735 0.7729 0.1486 0.8375 0.0399 0.4969 0.7304 -SE_11_ENSG00000100036 0.4222 0.6296 0.7089 0.1795 0.1263 0.3017 0.0841 0.1604 0.0390 0.3278 0.6944 0.1685 0.4634 0.1071 0.1975 0.3579 0.9412 0.1980 0.1209 0.8570 0.3253 0.4090 0.4462 0.4831 0.0245 0.6733 0.9002 0.1656 0.8928 0.7937 0.6260 0.6552 0.4455 0.6222 0.9055 0.7832 0.5473 0.8844 0.0138 0.4390 0.0230 0.6333 0.6602 0.5114 0.1475 0.0481 0.7865 0.5165 0.4968 0.6884 0.1566 0.6461 0.5003 0.9228 0.7017 0.9387 0.8445 0.3620 0.7056 0.1891 -SE_12_ENSG00000100116 0.3805 0.6627 0.3338 0.4796 0.5801 0.9792 0.1613 0.8950 0.1909 0.9935 0.2110 0.6642 0.6146 0.0043 0.5799 0.3263 0.6425 0.5599 0.8011 0.3368 0.5736 0.5460 0.9521 0.8585 0.9888 0.4920 0.8286 0.0464 0.4281 0.0826 0.4143 0.2941 0.5076 0.7050 0.0044 0.5890 0.1336 0.3764 0.8765 0.6061 0.4354 0.8826 0.8095 0.0814 0.4489 0.3684 0.0357 0.8343 0.2993 0.0650 0.2581 0.7821 0.2057 0.5079 0.5008 0.5270 0.7689 0.6927 0.6475 0.2776 -SE_13_ENSG00000199695 0.6431 0.3177 0.6834 0.6974 0.9583 0.0463 0.8362 0.8113 0.2952 0.6019 0.8650 0.7369 0.9376 0.3516 0.8513 0.8579 0.2597 0.5064 0.4448 0.0256 0.0818 0.7911 0.8835 0.2154 0.6007 0.8761 0.0805 0.2910 0.8399 0.6088 0.9568 0.6452 0.7578 0.6451 0.8383 0.2603 0.1642 0.9064 0.2231 0.8576 0.2238 0.2596 0.0609 0.1611 0.9967 0.3019 0.9935 0.0631 0.3831 0.6246 0.9678 0.2122 0.4163 0.4697 0.3128 0.0604 0.3835 0.6526 0.4809 0.5300 -SE_14_ENSG00000284554 0.1959 0.2588 0.5207 0.1197 0.3183 0.8894 0.9149 0.8989 0.4696 0.9332 0.5632 0.0989 0.4975 0.9741 0.3285 0.3428 0.0953 0.3797 0.1122 0.9698 0.4987 0.2826 0.3303 0.5778 0.1782 0.7705 0.3178 0.4583 0.9568 0.4552 0.3695 0.7780 0.9382 0.6955 0.4807 0.9296 0.1978 0.9581 0.6649 0.1749 0.1883 0.1904 0.2931 0.7098 0.7093 0.5866 0.4205 0.2096 0.0709 0.5149 0.6626 0.7532 0.2373 0.1104 0.2867 0.1007 0.1932 0.5806 0.6676 0.2666 -SE_15_ENSG00000063515 0.9749 0.0876 0.2805 0.8952 0.6931 0.5152 0.3500 0.7101 0.5328 0.1807 0.5731 0.9882 0.9062 0.2242 0.2106 0.1216 0.5855 0.7397 0.9564 0.6748 0.3842 0.9927 0.0269 0.5966 0.6977 0.4245 0.8296 0.8924 0.5144 0.4278 0.8708 0.0221 0.0273 0.0544 0.4275 0.5313 0.3852 0.3718 0.3655 0.1334 0.9191 0.3701 0.5435 0.1626 0.1517 0.1104 0.7969 0.1248 0.3093 0.5671 0.0961 0.4966 0.4633 0.7500 0.7275 0.2362 0.1405 0.9257 0.0057 0.8954 -SE_16_ENSG00000075234 0.3574 0.7736 0.8348 0.5890 0.4294 0.4764 0.0416 0.9755 0.9926 0.0490 0.9878 0.2388 0.0376 0.9251 0.1982 0.2598 0.7740 0.7545 0.3388 0.0788 0.7545 0.0742 0.7790 0.4469 0.6861 0.1721 0.4320 0.9315 0.1062 0.5135 0.9284 0.5871 0.4978 0.9898 0.7349 0.7422 0.8187 0.7902 0.2849 0.0396 0.0478 0.5209 0.7481 0.1913 0.4044 0.2289 0.2095 0.2590 0.4539 0.2402 0.4671 0.7016 0.6619 0.1010 0.4080 0.5362 0.2877 0.3643 0.2482 0.6614 -SE_17_ENSG00000183579 0.3302 0.0379 0.4166 0.8446 0.0691 0.0848 0.0569 0.1919 0.2631 0.6284 0.3824 0.6804 0.2530 0.0992 0.9249 0.5627 0.4479 0.0635 0.5893 0.8919 0.1269 0.0671 0.4373 0.6600 0.0251 0.1848 0.9850 0.7195 0.7894 0.7904 0.0749 0.8018 0.2400 0.2210 0.9484 0.2683 0.1705 0.8299 0.4066 0.8275 0.1618 0.4378 0.1797 0.1320 0.5439 0.4307 0.2352 0.9073 0.6590 0.2607 0.1170 0.8078 0.0920 0.2210 0.1530 0.8741 0.0842 0.3060 0.5902 0.8467 -SE_18_ENSG00000206142 0.7489 0.5590 0.9344 0.4420 0.9541 0.7850 0.8394 0.5332 0.3112 0.2042 0.7274 0.1264 0.3547 0.5591 0.9898 0.6195 0.6595 0.1287 0.0224 0.4297 0.5978 0.0436 0.2932 0.1189 0.6284 0.4459 0.3750 0.4764 0.7044 0.8717 0.5425 0.5440 0.2931 0.8300 0.0318 0.2568 0.3207 0.6817 0.7293 0.8621 0.7093 0.4550 0.0862 0.3604 0.6542 0.8260 0.9833 0.4322 0.7351 0.2558 0.3664 0.0168 0.5484 0.3418 0.4096 0.4375 0.6083 0.8900 0.8683 0.3055 -SE_19_ENSG00000276160 0.7952 0.3404 0.4722 0.7196 0.7370 0.1860 0.1021 0.1970 0.8963 0.0432 0.1311 0.3389 0.4201 0.9578 0.2886 0.1554 0.1539 0.6414 0.7128 0.3522 0.0607 0.6747 0.2454 0.0367 0.1731 0.0539 0.4240 0.1523 0.7842 0.5092 0.1114 0.2716 0.5105 0.9952 0.9884 0.9868 0.3920 0.1858 0.7821 0.7357 0.1141 0.3211 0.1267 0.0351 0.7165 0.2069 0.5794 0.5727 0.2317 0.0983 0.7081 0.8489 0.2407 0.4713 0.7723 0.8821 0.1213 0.5716 0.5160 0.8504 -SE_20_ENSG00000272694 0.0900 0.4602 0.2374 0.4405 0.9932 0.9151 0.0154 0.2282 0.3319 0.3994 0.6539 0.4224 0.3335 0.2406 0.6337 0.5197 0.5501 0.3038 0.4694 0.7140 0.4678 0.0136 0.6634 0.4619 0.5990 0.1752 0.5992 0.4695 0.9562 0.1598 0.9562 0.9789 0.7588 0.7479 0.9388 0.8780 0.3107 0.8712 0.6932 0.0675 0.9050 0.1838 0.0048 0.4103 0.4556 0.9191 0.3478 0.3684 0.7131 0.1002 0.5279 0.1140 0.2902 0.5411 0.2205 0.3875 0.8479 0.6020 0.5593 0.2740 -SE_21_ENSG00000285531 0.7615 0.6181 0.7166 0.8434 0.3660 0.9842 0.6417 0.1376 0.6740 0.1139 0.1614 0.0227 0.8982 0.2223 0.0037 0.9985 0.1977 0.5315 0.3607 0.2584 0.1723 0.7045 0.1646 0.9169 0.8151 0.0582 0.3766 0.8874 0.3207 0.4015 0.0422 0.5458 0.8009 0.5416 0.0675 0.1745 0.1862 0.8113 0.5018 0.7021 0.7704 0.6587 0.8697 0.2904 0.5342 0.7165 0.7327 0.1113 0.2737 0.3010 0.2011 0.9735 0.7875 0.9403 0.8335 0.6719 0.7430 0.3198 0.1263 0.8527 -SE_22_ENSG00000211668 0.4936 0.5498 0.1641 0.0594 0.9355 0.0808 0.6247 0.5919 0.6889 0.5122 0.1476 0.8064 0.0702 0.9057 0.9495 0.0234 0.6186 0.2298 0.0869 0.8261 0.4539 0.2387 0.1825 0.3140 0.6343 0.6033 0.1317 0.3727 0.9096 0.0225 0.7195 0.0506 0.7012 0.6716 0.3007 0.7345 0.0874 0.2049 0.9616 0.6029 0.9707 0.5531 0.0055 0.0589 0.2863 0.3079 0.9490 0.6613 0.4840 0.6007 0.8834 0.3819 0.5428 0.3767 0.8064 0.8295 0.9394 0.2205 0.2708 0.9536 -SE_23_ENSG00000284289 0.5105 0.1332 0.3056 0.0456 0.0950 0.4398 0.7907 0.4615 0.3479 0.4847 0.6242 0.7660 0.7969 0.7079 0.4012 0.1599 0.4962 0.9123 0.9334 0.1563 0.7644 0.4251 0.1846 0.9706 0.2096 0.9472 0.6537 0.2487 0.5711 0.9008 0.2637 0.3486 0.1212 0.2819 0.5933 0.8417 0.3157 0.8075 0.8723 0.3027 0.7931 0.1378 0.5525 0.5633 0.8973 0.7007 0.1699 0.6722 0.0956 0.9708 0.4354 0.4671 0.8344 0.7134 0.4368 0.8477 0.1561 0.1723 0.8969 0.3178 -SE_24_ENSG00000169662 0.6444 0.4340 0.2776 0.0998 0.7219 0.8408 0.1613 0.5864 0.1931 0.6458 0.4861 0.0991 0.9803 0.8714 0.4443 0.8895 0.6460 0.1019 0.4353 0.8500 0.9859 0.6304 0.5945 0.9395 0.1720 0.3468 0.1043 0.8069 0.9809 0.1576 0.3070 0.2525 0.8125 0.8013 0.0599 0.5725 0.8976 0.1974 0.2058 0.2557 0.8335 0.2629 0.1824 0.0002 0.9179 0.2232 0.2426 0.8783 0.4136 0.7544 0.8634 0.1144 0.7497 0.4522 0.4903 0.0231 0.2255 0.3507 0.3134 0.3882 -SE_25_ENSG00000285968 0.6514 0.5335 0.2238 0.4179 0.6187 0.8080 0.7481 0.6768 0.5849 0.5309 0.7576 0.2745 0.8280 0.9057 0.8208 0.2111 0.0491 0.2157 0.9528 0.9024 0.9953 0.5086 0.1184 0.6850 0.8992 0.4309 0.0089 0.2589 0.4882 0.1578 0.1926 0.8178 0.8747 0.4340 0.6355 0.9335 0.1427 0.3931 0.0026 0.2963 0.3819 0.7202 0.5199 0.2315 0.0679 0.0485 0.0790 0.0431 0.2953 0.7955 0.6884 0.1624 0.0917 0.6424 0.9956 0.2990 0.7793 0.9166 0.7048 0.6162 -SE_26_ENSG00000259271 0.6367 0.7400 0.8951 0.1178 0.4640 0.4871 0.4439 0.1067 0.9255 0.3801 0.1999 0.4802 0.7120 0.3787 0.5191 0.5562 0.8341 0.5863 0.6517 0.2625 0.9243 0.1534 0.3898 0.6096 0.3614 0.6033 0.1713 0.1487 0.2728 0.8380 0.1228 0.0167 0.0817 0.6139 0.6635 0.7898 0.9109 0.4398 0.7628 0.1023 0.8002 0.4051 0.5061 0.8178 0.8106 0.3641 0.7985 0.0887 0.0271 0.5038 0.6383 0.8151 0.5528 0.6044 0.0705 0.2896 0.9689 0.4411 0.5860 0.3128 -SE_27_ENSG00000223056 0.9643 0.5633 0.9765 0.5431 0.6563 0.3053 0.0584 0.1119 0.4279 0.5721 0.2149 0.8383 0.8626 0.6776 0.2894 0.5744 0.0214 0.4564 0.3253 0.5504 0.6385 0.5091 0.0941 0.5164 0.3404 0.3687 0.3166 0.8325 0.2913 0.3081 0.2474 0.9138 0.5131 0.5951 0.5983 0.2410 0.4342 0.4651 0.9461 0.8564 0.8016 0.1349 0.5476 0.1280 0.8099 0.0152 0.2573 0.7035 0.3604 0.6898 0.9296 0.3992 0.1740 0.6507 0.3004 0.8011 0.1844 0.6420 0.5287 0.4196 -SE_28_ENSG00000133475 0.8960 0.9581 0.3921 0.6852 0.1957 0.6666 0.5618 0.9762 0.2858 0.6584 0.3998 0.3957 0.3905 0.1409 0.5123 0.3376 0.5562 0.0366 0.0816 0.6830 0.0761 0.5585 0.1725 0.3594 0.7815 0.8921 0.4592 0.3324 0.6014 0.9839 0.8903 0.1839 0.5459 0.1768 0.0886 0.8921 0.5301 0.4784 0.8648 0.5246 0.1435 0.5509 0.9792 0.8123 0.9703 0.2886 0.0821 0.2060 0.9190 0.9492 0.2199 0.4663 0.4406 0.6313 0.7864 0.0939 0.9454 0.4032 0.2405 0.5936 -SE_29_ENSG00000215270 0.4620 0.4195 0.6668 0.0903 0.4484 0.2129 0.0585 0.5739 0.0319 0.8429 0.7646 0.5909 0.6287 0.5866 0.8844 0.4852 0.1465 0.3986 0.8951 0.4628 0.3457 0.1607 0.0900 0.9838 0.7860 0.6636 0.3359 0.4337 0.1938 0.2897 0.6829 0.0474 0.5009 0.5068 0.0381 0.2542 0.7436 0.9431 0.2602 0.2741 0.4301 0.5238 0.4495 0.4671 0.5666 0.9200 0.6887 0.1753 0.1134 0.7429 0.6775 0.7063 0.2095 0.2091 0.6675 0.1881 0.3333 0.7276 0.4820 0.0465 -SE_30_ENSG00000240186 0.8375 0.8136 0.0579 0.4460 0.0673 0.0309 0.8837 0.7433 0.5042 0.0862 0.2320 0.1383 0.0501 0.4109 0.3394 0.6304 0.4157 0.0573 0.8822 0.0093 0.0373 0.7879 0.4312 0.2215 0.9867 0.0268 0.8423 0.8532 0.8587 0.4899 0.4930 0.3736 0.0987 0.3785 0.3156 0.9587 0.6281 0.4094 0.9587 0.4997 0.5270 0.1037 0.0980 0.6586 0.4980 0.4322 0.5046 0.0249 0.7317 0.4696 0.7668 0.8475 0.3042 0.6056 0.4213 0.5962 0.6684 0.0028 0.4746 0.8975 -SE_31_ENSG00000287219 0.3514 0.4685 0.1035 0.6286 0.6033 0.0525 0.3069 0.2349 0.8258 0.3995 0.8871 0.7990 0.6599 0.4305 0.8828 0.6345 0.5803 0.1463 0.7337 0.3040 0.9025 0.0451 0.2895 0.6662 0.1478 0.7097 0.7012 0.7652 0.2443 0.9104 0.1647 0.2625 0.7327 0.8372 0.7456 0.7180 0.9795 0.7697 0.6145 0.1418 0.8054 0.8193 0.1010 0.4393 0.8863 0.9517 0.1535 0.4483 0.8442 0.9621 0.2889 0.3707 0.5279 0.7961 0.0524 0.1222 0.8383 0.0009 0.8354 0.6816 -SE_32_ENSG00000198832 0.7471 0.3264 0.0711 0.3797 0.9306 0.5418 0.0404 0.8782 0.8532 0.4596 0.7509 0.4872 0.8371 0.1207 0.8873 0.1538 0.3072 0.9024 0.0542 0.9127 0.2583 0.8983 0.1819 0.4380 0.5217 0.8070 0.9794 0.9779 0.1294 0.1851 0.7062 0.3926 0.1453 0.6765 0.4480 0.8058 0.6048 0.1835 0.6147 0.3720 0.1520 0.6947 0.0203 0.8731 0.2017 0.3063 0.0063 0.3230 0.7407 0.9200 0.6783 0.8064 0.5404 0.4427 0.0929 0.4020 0.1799 0.2074 0.9327 0.0067 -SE_33_ENSG00000207932 0.9089 0.4012 0.1257 0.4537 0.0527 0.9434 0.6259 0.1167 0.3969 0.2011 0.5877 0.4356 0.3468 0.4538 0.3621 0.8506 0.8767 0.0670 0.4186 0.2920 0.1173 0.4367 0.4443 0.1876 0.8756 0.7954 0.3037 0.6225 0.0896 0.1187 0.0627 0.4440 0.4276 0.4945 0.3951 0.2317 0.7009 0.6410 0.5112 0.1908 0.0061 0.8802 0.8358 0.9643 0.3430 0.6413 0.5571 0.7234 0.0843 0.3924 0.1560 0.4102 0.1283 0.3245 0.8305 0.2877 0.8711 0.7748 0.5895 0.6121 -SE_34_ENSG00000276800 0.6212 0.1733 0.2540 0.5003 0.0159 0.7093 0.7982 0.2746 0.5362 0.4970 0.8763 0.8740 0.4271 0.0202 0.9956 0.7284 0.6979 0.6824 0.0927 0.6369 0.9923 0.3102 0.2028 0.3716 0.6620 0.6860 0.4544 0.4333 0.3891 0.2258 0.3085 0.1149 0.7493 0.7601 0.9361 0.6612 0.5704 0.6327 0.2399 0.6268 0.5072 0.9905 0.3295 0.3855 0.9995 0.7313 0.0372 0.4996 0.5111 0.6616 0.8132 0.0563 0.2980 0.0787 0.2155 0.4984 0.2987 0.9002 0.4093 0.0768 -SE_35_ENSG00000182057 0.7320 0.1728 0.2071 0.0924 0.1528 0.5276 0.7473 0.3615 0.1416 0.3247 0.4280 0.1243 0.0788 0.3249 0.8612 0.4030 0.7269 0.3713 0.9846 0.2670 0.4677 0.1593 0.7626 0.9458 0.9009 0.7591 0.1342 0.7148 0.8117 0.7625 0.0651 0.3037 0.3626 0.2735 0.2362 0.8091 0.5549 0.3839 0.6195 0.3189 0.0095 0.6906 0.4310 0.6324 0.3718 0.4991 0.5727 0.2204 0.2084 0.6336 0.5611 0.4777 0.3561 0.6967 0.9205 0.0830 0.8654 0.5753 0.7523 0.5892 -SE_36_ENSG00000244625 0.6925 0.6304 0.6475 0.4979 0.4353 0.6487 0.5981 0.2094 0.9826 0.4696 0.8888 0.3262 0.7775 0.6952 0.2921 0.6883 0.1369 0.7581 0.8017 0.6241 0.8461 0.2851 0.4917 0.1838 0.9078 0.9879 0.3982 0.0224 0.2968 0.9154 0.1931 0.1468 0.4139 0.2854 0.3735 0.5889 0.9634 0.3034 0.7601 0.4135 0.6424 0.4550 0.8922 0.7649 0.6786 0.9207 0.3436 0.6583 0.9712 0.7287 0.2223 0.2294 0.7795 0.7975 0.2630 0.3422 0.7295 0.6471 0.2819 0.5129 -SE_37_ENSG00000232545 0.9539 0.1373 0.3653 0.6379 0.3423 0.5082 0.4272 0.0867 0.9245 0.4988 0.3661 0.5173 0.8211 0.0425 0.4207 0.6230 0.2622 0.1816 0.4988 0.9122 0.2442 0.2580 0.6897 0.2355 0.2477 0.2469 0.1970 0.5234 0.1307 0.6807 0.4942 0.8609 0.3735 0.0578 0.6651 0.2306 0.5177 0.4762 0.0451 0.3437 0.0855 0.3493 0.4854 0.5131 0.8879 0.9537 0.6314 0.5169 0.1486 0.3760 0.3034 0.5827 0.3344 0.0790 0.4786 0.7853 0.2072 0.7733 0.0200 0.4914 -SE_38_ENSG00000285045 0.4883 0.1990 0.5026 0.9712 0.6892 0.4604 0.9662 0.2242 0.7646 0.3370 0.1496 0.1904 0.5587 0.6423 0.3617 0.0782 0.1043 0.5408 0.2971 0.6254 0.8056 0.4629 0.2702 0.3427 0.8150 0.8308 0.1876 0.1776 0.2042 0.3443 0.5816 0.1882 0.7272 0.0635 0.6693 0.5285 0.8459 0.0438 0.1264 0.5267 0.4882 0.9412 0.6607 0.2531 0.9161 0.4105 0.5656 0.5282 0.2709 0.4613 0.2072 0.8624 0.2431 0.0279 0.6359 0.6747 0.2696 0.4867 0.3619 0.8980 -SE_39_ENSG00000100014 0.4347 0.6974 0.5060 0.9864 0.4984 0.5845 0.8482 0.8729 0.4052 0.1360 0.7711 0.1749 0.7775 0.4040 0.8762 0.5036 0.9312 0.2780 0.0850 0.1153 0.9274 0.3640 0.0980 0.8509 0.5349 0.1831 0.5178 0.1375 0.0923 0.2313 0.2285 0.0471 0.1813 0.0926 0.4776 0.8695 0.6563 0.8757 0.2109 0.4080 0.7506 0.6330 0.1432 0.6813 0.4638 0.4702 0.0424 0.5556 0.2090 0.3341 0.9047 0.7318 0.4409 0.1173 0.7477 0.3343 0.5201 0.9439 0.5787 0.1483 -SE_40_ENSG00000241693 0.6840 0.0476 0.2689 0.0072 0.5775 0.4211 0.0536 0.3297 0.6283 0.0669 0.2402 0.5193 0.5173 0.1474 0.2612 0.2975 0.6091 0.4406 0.3234 0.1141 0.4957 0.1750 0.1199 0.0369 0.5652 0.1513 0.0514 0.7098 0.8702 0.6736 0.9098 0.9086 0.2352 0.6692 0.4483 0.8255 0.8749 0.9032 0.4443 0.1167 0.1862 0.8079 0.7896 0.3654 0.3495 0.8174 0.7053 0.7855 0.9149 0.9681 0.4246 0.2157 0.7246 0.4451 0.5800 0.7882 0.9366 0.7648 0.1304 0.6959 -SE_41_ENSG00000099995 0.0079 0.4089 0.5034 0.7181 0.9995 0.5875 0.4395 0.2174 0.8934 0.0903 0.6119 0.8451 0.7280 0.5179 0.9668 0.7267 0.0653 0.8721 0.0189 0.2504 0.9362 0.1752 0.5002 0.8430 0.4479 0.3220 0.2053 0.8637 0.5358 0.1488 0.9803 0.2675 0.9122 0.6838 0.4467 0.7258 0.2932 0.7012 0.2127 0.6082 0.5874 0.4441 0.8764 0.7252 0.1734 0.8186 0.3050 0.8529 0.9808 0.1548 0.3651 0.0484 0.8263 0.6446 0.1763 0.9163 0.3335 0.2069 0.9810 0.8259 -SE_42_ENSG00000273253 0.1285 0.9135 0.9985 0.8189 0.5128 0.5973 0.1374 0.6440 0.9848 0.7699 0.2652 0.6737 0.7476 0.1865 0.9620 0.0914 0.1091 0.2968 0.4994 0.5982 0.9857 0.8248 0.7873 0.6772 0.6969 0.0544 0.7451 0.5658 0.6582 0.5727 0.0228 0.5663 0.8657 0.0781 0.6291 0.8654 0.1927 0.4888 0.5443 0.8066 0.4544 0.8486 0.3053 0.9911 0.7670 0.3976 0.7798 0.7824 0.5530 0.7092 0.7464 0.9520 0.8522 0.6054 0.7107 0.3240 0.2741 0.6101 0.2341 0.7788 -SE_43_ENSG00000211649 0.0849 0.3819 0.5744 0.6543 0.3397 0.2691 0.6254 0.8656 0.9607 0.5162 0.2952 0.5773 0.8956 0.5528 0.0307 0.3678 0.5141 0.1358 0.9509 0.4194 0.5802 0.1654 0.3724 0.0861 0.6502 0.8367 0.0257 0.0600 0.1836 0.3044 0.8196 0.8671 0.9655 0.5065 0.1579 0.8920 0.6488 0.5425 0.2952 0.1757 0.4491 0.4453 0.1804 0.3030 0.1355 0.3241 0.2401 0.3698 0.7886 0.5293 0.6061 0.4569 0.7468 0.0947 0.7513 0.5541 0.6277 0.8677 0.5674 0.6095 -SE_44_ENSG00000235062 0.1520 0.3283 0.8640 0.0189 0.0979 0.1801 0.9371 0.4215 0.9474 0.2600 0.0554 0.7483 0.2734 0.1250 0.3474 0.6514 0.9240 0.4568 0.6526 0.0437 0.3041 0.7090 0.1013 0.3146 0.0556 0.7112 0.5306 0.6837 0.3561 0.5539 0.5907 0.4494 0.1380 0.0703 0.8681 0.6284 0.6938 0.6569 0.4306 0.0402 0.9271 0.2829 0.9170 0.1806 0.9135 0.5385 0.1333 0.2492 0.6800 0.9537 0.4421 0.6232 0.8296 0.0012 0.2382 0.2254 0.7233 0.7541 0.9284 0.3774 -SE_45_ENSG00000184792 0.8801 0.1492 0.8519 0.8580 0.7591 0.5762 0.9684 0.8089 0.0047 0.8366 0.2321 0.3160 0.5590 0.7836 0.9242 0.0348 0.4362 0.1263 0.6235 0.1292 0.5995 0.6611 0.3313 0.6511 0.7118 0.9702 0.7054 0.5519 0.5503 0.0090 0.4781 0.8282 0.3978 0.5669 0.0275 0.4934 0.9157 0.4690 0.0885 0.4002 0.2327 0.6549 0.6476 0.4447 0.5390 0.8449 0.9318 0.5801 0.5303 0.5394 0.4864 0.8484 0.9859 0.2173 0.4309 0.4134 0.5097 0.7123 0.5423 0.9195 -SE_46_ENSG00000183307 0.6662 0.2086 0.2386 0.2403 0.3413 0.4013 0.2864 0.0152 0.4185 0.9195 0.7878 0.3896 0.7275 0.7604 0.5739 0.6311 0.1699 0.4543 0.8569 0.4012 0.0975 0.9473 0.3227 0.6363 0.5069 0.0276 0.7224 0.9330 0.8678 0.2310 0.3692 0.6112 0.6023 0.3287 0.5820 0.9150 0.3874 0.7516 0.9458 0.8840 0.3303 0.7176 0.8160 0.1422 0.7907 0.0231 0.8477 0.8597 0.4617 0.9830 0.3138 0.2197 0.5019 0.0022 0.2157 0.4091 0.2580 0.3313 0.5349 0.0750 -SE_47_ENSG00000284266 0.5333 0.6962 0.6409 0.0729 0.5558 0.7099 0.3825 0.5757 0.9104 0.7574 0.3463 0.0245 0.2953 0.0163 0.0493 0.0587 0.5518 0.5291 0.4586 0.5943 0.3383 0.5324 0.2548 0.0981 0.9581 0.7421 0.7838 0.8482 0.4494 0.2361 0.1786 0.7154 0.8090 0.9355 0.3401 0.8197 0.4743 0.7803 0.2509 0.6193 0.5740 0.8191 0.0849 0.9794 0.5426 0.8571 0.0574 0.7980 0.8269 0.3436 0.4083 0.8467 0.2959 0.1925 0.6822 0.8242 0.5448 0.1280 0.4429 0.5924 -SE_48_ENSG00000211655 0.6794 0.7159 0.7146 0.9845 0.0273 0.8462 0.3200 0.0603 0.2635 0.2416 0.1059 0.4512 0.9320 0.6394 0.2295 0.2302 0.0988 0.5847 0.1131 0.4349 0.9949 0.9345 0.7952 0.4710 0.1575 0.3804 0.4480 0.5353 0.6795 0.0967 0.5611 0.4940 0.0733 0.2404 0.7959 0.8529 0.0840 0.6761 0.4123 0.9767 0.3774 0.1368 0.8649 0.4961 0.9297 0.2878 0.0952 0.6000 0.8974 0.1598 0.3725 0.5961 0.8148 0.2368 0.4457 0.8174 0.8584 0.5036 0.4946 0.5389 -SE_49_ENSG00000100312 0.7880 0.1431 0.2278 0.8342 0.3311 0.0711 0.1178 0.1802 0.4623 0.9676 0.8795 0.4686 0.4032 0.5796 0.5213 0.1879 0.9842 0.9396 0.1264 0.7557 0.3441 0.3253 0.2095 0.6494 0.1927 0.9320 0.2019 0.9026 0.9415 0.9558 0.7442 0.8454 0.0579 0.6660 0.0137 0.7073 0.9510 0.0245 0.9615 0.9740 0.8356 0.7461 0.3562 0.8385 0.0165 0.6348 0.6226 0.4515 0.5879 0.1577 0.8337 0.7142 0.4644 0.5711 0.7662 0.8642 0.4683 0.2874 0.8914 0.0180 -SE_50_ENSG00000128272 0.7709 0.0726 0.4418 0.7856 0.5243 0.8568 0.7890 0.4796 0.8373 0.0913 0.8838 0.2689 0.3895 0.8776 0.5314 0.6289 0.9560 0.3957 0.2216 0.6863 0.6076 0.6884 0.5190 0.6941 0.9669 0.5679 0.1654 0.5295 0.6340 0.6343 0.0080 0.1762 0.2328 0.1742 0.9978 0.3914 0.8602 0.3458 0.6653 0.5004 0.8252 0.1992 0.3040 0.0071 0.2025 0.9808 0.2060 0.4504 0.9363 0.2323 0.0411 0.3388 0.3878 0.2296 0.9321 0.3849 0.0913 0.1057 0.5414 0.4863 -SE_51_ENSG00000235992 0.8639 0.0875 0.6938 0.0321 0.0367 0.1252 0.8856 0.5293 0.6208 0.4208 0.2391 0.3454 0.6420 0.3395 0.4573 0.9987 0.4486 0.9624 0.4664 0.8561 0.2179 0.2274 0.3016 0.9047 0.6646 0.5799 0.7904 0.5526 0.6496 0.7338 0.5422 0.7303 0.0735 0.9926 0.7345 0.6402 0.8453 0.1610 0.1603 0.5422 0.3656 0.8192 0.4837 0.8144 0.6856 0.8563 0.1348 0.2632 0.3268 0.1469 0.5052 0.3086 0.5946 0.6626 0.6504 0.0802 0.4718 0.6569 0.8326 0.4842 -SE_52_ENSG00000230769 0.1358 0.9430 0.4535 0.9884 0.0052 0.1842 0.5412 0.1897 0.6023 0.8089 0.5305 0.6579 0.1957 0.5739 0.8454 0.2974 0.8864 0.1155 0.4443 0.1161 0.5636 0.9695 0.9330 0.9778 0.2783 0.1973 0.4051 0.1160 0.4164 0.2531 0.4109 0.4247 0.5302 0.1628 0.8639 0.1501 0.6619 0.1421 0.7800 0.6957 0.9921 0.4936 0.9528 0.2068 0.1849 0.3907 0.4690 0.6943 0.3193 0.6615 0.9775 0.0638 0.9292 0.0178 0.6740 0.5746 0.9587 0.7549 0.1050 0.3699 -SE_53_ENSG00000199515 0.9352 0.4211 0.9636 0.3742 0.7304 0.5652 0.5604 0.9975 0.6931 0.1623 0.6816 0.9098 0.8010 0.9263 0.0448 0.2991 0.2047 0.1645 0.3983 0.9085 0.4307 0.4694 0.7357 0.0721 0.7862 0.4130 0.2683 0.3016 0.9689 0.4371 0.7381 0.7102 0.8637 0.6961 0.0431 0.4975 0.5005 0.6535 0.1638 0.8341 0.2987 0.4894 0.0750 0.8818 0.4393 0.9703 0.4780 0.2771 0.3383 0.6188 0.4586 0.6260 0.0860 0.3667 0.1503 0.7790 0.3207 0.4121 0.6049 0.8205 -SE_54_ENSG00000243519 0.1491 0.9661 0.9055 0.2249 0.3308 0.1307 0.5642 0.5840 0.5194 0.0409 0.5927 0.8361 0.2358 0.6901 0.7204 0.1429 0.9998 0.5646 0.9001 0.3083 0.4165 0.4900 0.3759 0.5048 0.2019 0.5165 0.2325 0.4845 0.1782 0.7427 0.5476 0.9473 0.4691 0.8658 0.9906 0.5055 0.6900 0.2557 0.0708 0.7661 0.1005 0.4922 0.2244 0.0785 0.8767 0.3685 0.8519 0.9122 0.1264 0.8303 0.6982 0.2014 0.4973 0.6022 0.2245 0.2661 0.0061 0.3976 0.7226 0.7266 -SE_55_ENSG00000222044 0.2345 0.8483 0.2843 0.1063 0.2914 0.8527 0.2502 0.6366 0.9121 0.6445 0.6162 0.9145 0.9537 0.1337 0.0095 0.2095 0.7871 0.3447 0.2853 0.9306 0.0516 0.3174 0.4638 0.2304 0.2544 0.1561 0.7795 0.8735 0.1134 0.2467 0.9737 0.2166 0.8700 0.1670 0.3140 0.3238 0.3788 0.1815 0.1532 0.9545 0.4031 0.7724 0.4831 0.0652 0.0831 0.9954 0.1603 0.7404 0.1045 0.2353 0.3235 0.6526 0.7724 0.9649 0.5209 0.0979 0.6974 0.8199 0.1250 0.5085 -SE_56_ENSG00000235246 0.4738 0.7463 0.8363 0.0937 0.3276 0.0860 0.4004 0.3374 0.2354 0.5949 0.5561 0.0469 0.3326 0.3533 0.6262 0.8028 0.8235 0.9564 0.2433 0.4890 0.2144 0.6923 0.0047 0.1341 0.7683 0.6903 0.9581 0.0773 0.1755 0.5738 0.2094 0.9170 0.0938 0.3363 0.2390 0.9814 0.8287 0.1814 0.1955 0.4213 0.5071 0.0368 0.1009 0.1785 0.0496 0.7405 0.2887 0.7322 0.3787 0.3989 0.4764 0.0325 0.9104 0.0699 0.4513 0.0579 0.6783 0.4636 0.3809 0.6025 -SE_57_ENSG00000133466 0.4229 0.0524 0.8407 0.5827 0.0125 0.1504 0.8692 0.2611 0.5337 0.4984 0.8654 0.9120 0.0927 0.1144 0.1308 0.0291 0.8669 0.3851 0.8133 0.2397 0.3295 0.1365 0.3010 0.6795 0.3713 0.3094 0.5866 0.6224 0.0261 0.8835 0.2999 0.6170 0.2632 0.2981 0.3780 0.2296 0.0892 0.4601 0.7860 0.1170 0.5161 0.8583 0.3026 0.6464 0.4890 0.4848 0.7014 0.4210 0.0178 0.3518 0.0317 0.0535 0.9465 0.3931 0.3217 0.9603 0.0864 0.0195 0.5473 0.3576 -SE_58_ENSG00000211682 0.2498 0.1603 0.3914 0.3735 0.3810 0.1019 0.6205 0.0433 0.3830 0.5205 0.0180 0.1468 0.3448 0.6786 0.0891 0.7756 0.1925 0.8398 0.9994 0.9130 0.9625 0.9738 0.2687 0.9604 0.4121 0.6744 0.1824 0.5803 0.3591 0.1186 0.9358 0.8462 0.7762 0.4404 0.9405 0.6083 0.3278 0.7531 0.9136 0.8991 0.7108 0.8962 0.8498 0.2161 0.1424 0.1054 0.7862 0.5818 0.3786 0.3601 0.9883 0.3212 0.9063 0.7879 0.8340 0.7304 0.1431 0.5405 0.2556 0.2992 -SE_59_ENSG00000253822 0.2220 0.5638 0.9187 0.3071 0.5392 0.1603 0.2964 0.3634 0.3789 0.7626 0.4785 0.0594 0.8751 0.6366 0.1062 0.0950 0.1490 0.9979 0.3207 0.9994 0.9502 0.4284 0.8010 0.2080 0.5839 0.0734 0.4709 0.6630 0.2927 0.1148 0.8180 0.8350 0.4652 0.1285 0.9479 0.6560 0.6757 0.3827 0.2566 0.5088 0.0721 0.3696 0.4890 0.2422 0.4387 0.1138 0.1583 0.9842 0.6539 0.2949 0.8125 0.8341 0.8453 0.2230 0.0115 0.3694 0.5550 0.7637 0.5715 0.2665 diff --git a/tests/fixtures/mnm_regression/expected/README.md b/tests/fixtures/mnm_regression/expected/README.md index f0bd01a13..d22adcfbe 100644 --- a/tests/fixtures/mnm_regression/expected/README.md +++ b/tests/fixtures/mnm_regression/expected/README.md @@ -4,35 +4,38 @@ |---|---| | `univariate_bvsr.rds` | `susie_twas` — per-context SuSiE fine-mapping (`method = "susie"`) | | `univariate_twas_weights.rds` | `susie_twas` — TWAS weights from the same run | -| `protocol_example.ENSG00000283047.multicontext_bvsr.rds` | `mnm` — joint multi-context fit (`method = "mvsusie"`, carries a `jointContexts` column) | +| `multicontext_bvsr.rds` | `mnm` — joint multi-context fit (`method = "mvsusie"`, carries a `jointContexts` column) | -## Regenerating the multicontext result +All three are keyed to study `test_study`, gene `ENSG00000283047`, contexts +`context1`/`context2`, and are generated with `--seed 1`. -`mnm` needs the dataset built first, so run both steps together. Note two things the -module documentation currently gets wrong: the parameter is `--prior`, not -`--mixture-prior`, and `--transpose-covariates True` is required — without it the run -fails with "No shared samples between phenotype and covariate file", which looks like -a data problem but is an orientation one. +## Regenerating + +`mnm` reads the QtlDataset that `qtl_dataset_construct` writes, so run both steps +together — `mnm` cannot run alone. `--transpose-covariates True` is required for the +QTLtools-format toy covariates; without it the run fails with "No shared samples between +phenotype and covariate file", which reads like a data problem but is an orientation one. ```bash sos run pipeline/mnm_regression.ipynb qtl_dataset_construct+mnm \ - --name protocol_example --cwd \ + --name test_study --cwd \ --genoFile tests/fixtures/qtl_mini/protocol_example.genotype.chr22.bed \ --phenoFile tests/fixtures/qtl_mini/protocol_example.pheno_manifest_context.tsv \ --covFile tests/fixtures/qtl_mini/example_covariates.tsv \ --transpose-covariates True \ --customized-association-windows tests/fixtures/qtl_mini/association_windows.bed \ - --region-name ENSG00000283047 --save-data --no-skip-twas-weights \ - --phenotype-names mv_pheno \ - --prior tests/fixtures/mash/expected/mixture_prior.EE.prior.rds \ - --ld-reference-meta-file tests/fixtures/ld_reference/ld_meta_file.tsv \ + --region-name ENSG00000283047 --seed 1 \ --modular_script_dir code/script -j1 ``` -The mixture prior is a choice: `tests/fixtures/mash/expected/` also holds -`prior.cov_ed.EE.rds`. This fixture was generated with `mixture_prior.EE.prior.rds`. -If that is not the intended prior for the toy data, regenerate and replace. +Then copy `/multivariate_fine_mapping/test_study.ENSG00000283047.multicontext_bvsr.rds` +over `multicontext_bvsr.rds`. + +The `mnm` step takes no `--prior`: `fine_mapping.R` uses the canonical mixture prior unless +`--prior-twas-weights` supplies a TwasWeights RDS from a preceding `mrmash` run, from which +it builds the data-driven prior. `--prior` belongs to the `fsusie`/`mvfsusie` cells, and SoS +pools every cell's parameters, so passing it here is accepted and then silently ignored. -No test currently drives the `mnm` step — `test_mnm_regression` runs -`qtl_dataset_construct+susie_twas` only — so this file is documentation of the -expected shape rather than an asserted comparison. +Two seeded runs on one machine are byte-identical. Cross-platform behaviour is untested; +if the x86/ARM CI matrix disagrees, loosen the manifest tolerance rather than dropping the +comparison. diff --git a/tests/fixtures/mnm_regression/expected/expected_manifest.tsv b/tests/fixtures/mnm_regression/expected/expected_manifest.tsv index 5121cb1c9..5266bce73 100644 --- a/tests/fixtures/mnm_regression/expected/expected_manifest.tsv +++ b/tests/fixtures/mnm_regression/expected/expected_manifest.tsv @@ -2,3 +2,4 @@ # columns: output mode rtol atol notes univariate_bvsr.rds tolerant 1e-6 1e-8 susie_twas cell -> fine_mapping.R (QtlFineMappingResult for test_study ENSG00000283047 over qtl_mini) run with --seed 1 (the notebook `seed` parameter is forwarded to fine_mapping.R). Bit-identical across two seeded reruns; no embedded absolute paths. The x86/ARM CI matrix may need a looser rtol (calibrate from the first CI run). univariate_twas_weights.rds tolerant 1e-6 1e-8 susie_twas cell -> twas_weights.R (TwasWeights, same seed=1) for the same gene. Bit-identical across two seeded reruns; no embedded absolute paths. +multicontext_bvsr.rds tolerant 1e-6 1e-8 mnm cell -> fine_mapping.R --methods mvsusie --joint-specification context (QtlFineMappingResult for test_study ENSG00000283047 over qtl_mini, contexts context1;context2) run with --seed 1. Byte-identical across two seeded reruns; no embedded absolute paths. diff --git a/tests/fixtures/mnm_regression/expected/multicontext_bvsr.rds b/tests/fixtures/mnm_regression/expected/multicontext_bvsr.rds new file mode 100644 index 000000000..561bfa7f6 Binary files /dev/null and b/tests/fixtures/mnm_regression/expected/multicontext_bvsr.rds differ diff --git a/tests/fixtures/mnm_regression/expected/protocol_example.ENSG00000283047.multicontext_bvsr.rds b/tests/fixtures/mnm_regression/expected/protocol_example.ENSG00000283047.multicontext_bvsr.rds deleted file mode 100644 index 65db97ce2..000000000 Binary files a/tests/fixtures/mnm_regression/expected/protocol_example.ENSG00000283047.multicontext_bvsr.rds and /dev/null differ diff --git a/tests/fixtures/qtl_dataset/expected/qtl_dataset.rds b/tests/fixtures/qtl_dataset/expected/qtl_dataset.rds index 817c7bcea..c90dfeaf4 100644 Binary files a/tests/fixtures/qtl_dataset/expected/qtl_dataset.rds and b/tests/fixtures/qtl_dataset/expected/qtl_dataset.rds differ diff --git a/tests/fixtures/qtl_mini/fine_mapping_meta.tsv b/tests/fixtures/qtl_mini/fine_mapping_meta.tsv index 10a29ce57..691b48c14 100644 --- a/tests/fixtures/qtl_mini/fine_mapping_meta.tsv +++ b/tests/fixtures/qtl_mini/fine_mapping_meta.tsv @@ -1,11 +1,2 @@ -#chr start end region_id TSS original_data combined_data combined_data_sumstats conditions conditions_top_loci -chr22 16397444 16916492 ENSG00000225480 16397444 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/twas_weights/test_uni.chr22_ENSG00000225480.univariate_twas_weights.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_mnm3/multivariate_fine_mapping/test_mnm.chr22_ENSG00000225480.multicontext_bvsr.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/data/test_uni.chr22_ENSG00000225480.univariate_data.rds pheno_manifest_multicontext pheno_manifest_multicontext -chr22 15115401 16115578 ENSG00000226474 15115401 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/twas_weights/test_uni.chr22_ENSG00000226474.univariate_twas_weights.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_mnm3/multivariate_fine_mapping/test_mnm.chr22_ENSG00000226474.multicontext_bvsr.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/data/test_uni.chr22_ENSG00000226474.univariate_data.rds pheno_manifest_multicontext pheno_manifest_multicontext -chr22 15923942 16916492 ENSG00000229658 15923942 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/twas_weights/test_uni.chr22_ENSG00000229658.univariate_twas_weights.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_mnm3/multivariate_fine_mapping/test_mnm.chr22_ENSG00000229658.multicontext_bvsr.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/data/test_uni.chr22_ENSG00000229658.univariate_data.rds pheno_manifest_multicontext pheno_manifest_multicontext -chr22 15111758 16113096 ENSG00000231565 15111758 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/twas_weights/test_uni.chr22_ENSG00000231565.univariate_twas_weights.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_mnm3/multivariate_fine_mapping/test_mnm.chr22_ENSG00000231565.multicontext_bvsr.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/data/test_uni.chr22_ENSG00000231565.univariate_data.rds pheno_manifest_multicontext pheno_manifest_multicontext -chr22 16003303 16916492 ENSG00000235969 16003303 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/twas_weights/test_uni.chr22_ENSG00000235969.univariate_twas_weights.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_mnm3/multivariate_fine_mapping/test_mnm.chr22_ENSG00000235969.multicontext_bvsr.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/data/test_uni.chr22_ENSG00000235969.univariate_data.rds pheno_manifest_multicontext pheno_manifest_multicontext -chr22 15249155 16250825 ENSG00000235992 15249155 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/twas_weights/test_uni.chr22_ENSG00000235992.univariate_twas_weights.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_mnm3/multivariate_fine_mapping/test_mnm.chr22_ENSG00000235992.multicontext_bvsr.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/data/test_uni.chr22_ENSG00000235992.univariate_data.rds pheno_manifest_multicontext pheno_manifest_multicontext -chr22 16369477 16916492 ENSG00000237689 16369477 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/twas_weights/test_uni.chr22_ENSG00000237689.univariate_twas_weights.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_mnm3/multivariate_fine_mapping/test_mnm.chr22_ENSG00000237689.multicontext_bvsr.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/data/test_uni.chr22_ENSG00000237689.univariate_data.rds pheno_manifest_multicontext pheno_manifest_multicontext -chr22 16171089 16916492 ENSG00000259271 16171089 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/twas_weights/test_uni.chr22_ENSG00000259271.univariate_twas_weights.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_mnm3/multivariate_fine_mapping/test_mnm.chr22_ENSG00000259271.multicontext_bvsr.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/data/test_uni.chr22_ENSG00000259271.univariate_data.rds pheno_manifest_multicontext pheno_manifest_multicontext -chr22 15323196 16323890 ENSG00000272872 15323196 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/twas_weights/test_uni.chr22_ENSG00000272872.univariate_twas_weights.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_mnm3/multivariate_fine_mapping/test_mnm.chr22_ENSG00000272872.multicontext_bvsr.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/data/test_uni.chr22_ENSG00000272872.univariate_data.rds pheno_manifest_multicontext pheno_manifest_multicontext -chr22 10439387 11461338 ENSG00000283047 10439387 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/twas_weights/test_uni.chr22_ENSG00000283047.univariate_twas_weights.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_mnm3/multivariate_fine_mapping/test_mnm.chr22_ENSG00000283047.multicontext_bvsr.rds /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/output_uni/data/test_uni.chr22_ENSG00000283047.univariate_data.rds pheno_manifest_multicontext pheno_manifest_multicontext +region_id susie_path +chr22:15528191-15529138 tests/fixtures/mash/protocol_example.QtlFineMappingResult.rds diff --git a/tests/fixtures/qtl_mini/gwas_meta.txt b/tests/fixtures/qtl_mini/gwas_meta.txt index ce7537e34..cca56e6eb 100644 --- a/tests/fixtures/qtl_mini/gwas_meta.txt +++ b/tests/fixtures/qtl_mini/gwas_meta.txt @@ -1,2 +1,2 @@ study_id chrom file_path n_sample n_case n_control ld_meta_data -synthetic_gwas_chr22 22 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/data/twas/gwas_chr22_synthetic.tsv.gz 200000 0 0 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/data/input/data/LD_sketch/meta.tsv +synthetic_gwas_chr22 22 tests/fixtures/twas/protocol_example.twas.gwas_sumstats.chr22.tsv.gz 200000 0 0 tests/fixtures/ld_reference/ld_meta_file.tsv diff --git a/tests/fixtures/reference_data_preparation/expected/chr22.SUPPA_annotation.rds b/tests/fixtures/reference_data_preparation/expected/chr22.SUPPA_annotation.rds deleted file mode 100644 index 9313e4e94..000000000 Binary files a/tests/fixtures/reference_data_preparation/expected/chr22.SUPPA_annotation.rds and /dev/null differ diff --git a/tests/fixtures/reference_data_preparation/expected/expected_manifest.tsv b/tests/fixtures/reference_data_preparation/expected/expected_manifest.tsv index 791fadce9..eb5d9d03a 100644 --- a/tests/fixtures/reference_data_preparation/expected/expected_manifest.tsv +++ b/tests/fixtures/reference_data_preparation/expected/expected_manifest.tsv @@ -7,5 +7,3 @@ hg_reference_1.filtered.fasta tolerant 1e-6 1e-8 reference_data_preparation.R -- hg_gtf_1.reformatted.gtf tolerant 1e-6 1e-8 reference_data_preparation.R --step hg_gtf_1: chr-prefix-stripped reformat of the 109-gene chr22 exon GTF against a no-chr FASTA (5765 lines); deterministic (Ensembl-GTF passthrough, no rtracklayer date header), no embedded paths. faidx.test_contigs.fa.fai tolerant 1e-6 1e-8 reference_data_preparation.R --step faidx: Rsamtools .fai index (name/length/offset/linebases/linewidth) of test_contigs.fa (5 contigs); deterministic, no embedded paths. mini.gtf tolerant 1e-6 1e-8 gff3_to_gtf.R rtracklayer GTF export of mini.gff3 (4 feature rows); value-compared with ignore_lines masking the two volatile header lines ('##source-version rtracklayer ' + daily '##date YYYY-MM-DD'). Feature rows are byte-deterministic; no embedded paths. -hg38.chr22_SE_strict.ioe projection - - SUPPA_annotation_1: `suppa generateEvents` SE .ioe (104 events) over the chr22 GTF. Content is deterministic but the transcript-ID tokens in the comma-separated columns come out in a non-deterministic (set) order; test compares a token-sorted + row-sorted projection (_ioe_sorted). Committed fixture is the canonical (sorted) form. -chr22.SUPPA_annotation.rds tolerant 1e-6 1e-8 SUPPA_annotation_2: reference_data_preparation.R --step suppa_annot -> psichomics prepareAnnotationFromEvents (list of 7 per-event-type data.frames). Same event SET each run but inherits the .ioe's non-deterministic ROW order, so compared with sort_rows=True (each data.frame canonically row-sorted); values then match at 1e-6. diff --git a/tests/fixtures/reference_data_preparation/expected/hg38.chr22_SE_strict.ioe b/tests/fixtures/reference_data_preparation/expected/hg38.chr22_SE_strict.ioe deleted file mode 100644 index f019236fe..000000000 --- a/tests/fixtures/reference_data_preparation/expected/hg38.chr22_SE_strict.ioe +++ /dev/null @@ -1,105 +0,0 @@ -seqname gene_id event_id alternative_transcripts total_transcripts -chr22 ENSG00000075234 ENSG00000075234;SE:chr22:46268591-46269142:46269289-46272335:+ ENST00000417709 ENST00000381031,ENST00000417709,ENST00000421359 -chr22 ENSG00000075234 ENSG00000075234;SE:chr22:46281718-46281971:46282151-46283973:+ ENST00000422713 ENST00000381031,ENST00000422713 -chr22 ENSG00000075234 ENSG00000075234;SE:chr22:46289899-46292203:46292328-46292791:+ ENST00000451998 ENST00000381031,ENST00000451998 -chr22 ENSG00000099968 ENSG00000099968;SE:chr22:17638886-17655662:17655832-17683214:+ ENST00000317582,ENST00000337612,ENST00000355028,ENST00000418951,ENST00000493680,ENST00000498133,ENST00000543133,ENST00000616863 ENST00000317582,ENST00000337612,ENST00000355028,ENST00000418951,ENST00000464649,ENST00000493680,ENST00000498133,ENST00000543133,ENST00000611738,ENST00000616863,ENST00000618481 -chr22 ENSG00000099968 ENSG00000099968;SE:chr22:17655832-17683214:17683321-17702243:+ ENST00000337612 ENST00000337612,ENST00000538149 -chr22 ENSG00000099968 ENSG00000099968;SE:chr22:17683321-17688986:17689142-17696141:+ ENST00000317582,ENST00000399782,ENST00000493680,ENST00000611738,ENST00000618481 ENST00000317582,ENST00000399781,ENST00000399782,ENST00000493680,ENST00000498133,ENST00000543133,ENST00000611738,ENST00000618481 -chr22 ENSG00000099968 ENSG00000099968;SE:chr22:17683321-17688986:17689142-17702243:+ ENST00000418951 ENST00000337612,ENST00000418951 -chr22 ENSG00000099968 ENSG00000099968;SE:chr22:17683321-17688986:17689142-17726677:+ ENST00000355028 ENST00000355028,ENST00000616863 -chr22 ENSG00000099968 ENSG00000099968;SE:chr22:17683321-17696141:17696210-17702243:+ ENST00000498133,ENST00000543133 ENST00000337612,ENST00000498133,ENST00000543133 -chr22 ENSG00000099968 ENSG00000099968;SE:chr22:17683321-17702243:17702386-17726677:+ ENST00000337612 ENST00000337612,ENST00000616863 -chr22 ENSG00000099968 ENSG00000099968;SE:chr22:17689142-17696141:17696210-17702243:+ ENST00000317582,ENST00000399782,ENST00000493680,ENST00000618481 ENST00000317582,ENST00000399777,ENST00000399782,ENST00000418951,ENST00000493680,ENST00000618481 -chr22 ENSG00000099968 ENSG00000099968;SE:chr22:17689142-17696141:17696210-17726677:+ ENST00000611738 ENST00000355028,ENST00000611738 -chr22 ENSG00000099968 ENSG00000099968;SE:chr22:17689142-17702243:17702386-17726677:+ ENST00000399777,ENST00000418951 ENST00000355028,ENST00000399777,ENST00000418951 -chr22 ENSG00000099968 ENSG00000099968;SE:chr22:17696210-17702243:17702386-17726677:+ ENST00000317582,ENST00000498133,ENST00000543133,ENST00000618481 ENST00000317582,ENST00000498133,ENST00000543133,ENST00000611738,ENST00000618481 -chr22 ENSG00000100014 ENSG00000100014;SE:chr22:24270983-24276700:24276803-24302195:+ ENST00000314328,ENST00000651059 ENST00000314328,ENST00000416735,ENST00000421374,ENST00000437398,ENST00000541492,ENST00000651059 -chr22 ENSG00000100014 ENSG00000100014;SE:chr22:24302384-24311994:24312131-24313313:+ ENST00000651059 ENST00000314328,ENST00000416735,ENST00000421374,ENST00000437398,ENST00000541492,ENST00000651059 -chr22 ENSG00000100014 ENSG00000100014;SE:chr22:24321323-24321405:24322918-24324220:+ ENST00000651059 ENST00000416735,ENST00000651059 -chr22 ENSG00000100014 ENSG00000100014;SE:chr22:24369320-24411588:24411704-24412648:+ ENST00000314328,ENST00000437398,ENST00000651059 ENST00000314328,ENST00000437398,ENST00000541492,ENST00000651059 -chr22 ENSG00000100116 ENSG00000100116;SE:chr22:37808163-37809949:37810157-37812887:+ ENST00000323205,ENST00000445195 ENST00000323205,ENST00000415371,ENST00000426858,ENST00000445195 -chr22 ENSG00000100116 ENSG00000100116;SE:chr22:37808163-37810027:37810157-37812887:+ ENST00000248924,ENST00000451984,ENST00000478203 ENST00000248924,ENST00000415371,ENST00000426858,ENST00000451984,ENST00000478203 -chr22 ENSG00000100181 ENSG00000100181;SE:chr22:16638740-16647605:16647785-16648527:+ ENST00000383140 ENST00000383140,ENST00000426585 -chr22 ENSG00000100228 ENSG00000100228;SE:chr22:23150154-23152461:23152526-23153033:+ ENST00000263116,ENST00000420895 ENST00000263116,ENST00000341989,ENST00000420895 -chr22 ENSG00000100242 ENSG00000100242;SE:chr22:38750320-38750898:38751035-38751210:- ENST00000405510,ENST00000406622,ENST00000456894,ENST00000480307 ENST00000405510,ENST00000406622,ENST00000420859,ENST00000438058,ENST00000456894,ENST00000480307 -chr22 ENSG00000100242 ENSG00000100242;SE:chr22:38752665-38754642:38754706-38755763:- ENST00000438058 ENST00000405018,ENST00000438058 -chr22 ENSG00000100348 ENSG00000100348;SE:chr22:36467917-36468602:36468717-36476733:- ENST00000411915 ENST00000216185,ENST00000403313,ENST00000411915,ENST00000416967,ENST00000487725 -chr22 ENSG00000128272 ENSG00000128272;SE:chr22:39520751-39521258:39521671-39521773:+ ENST00000396680 ENST00000396680,ENST00000680446 -chr22 ENSG00000128272 ENSG00000128272;SE:chr22:39520751-39521354:39521671-39521773:+ ENST00000404241,ENST00000674920 ENST00000404241,ENST00000674920,ENST00000680446 -chr22 ENSG00000128272 ENSG00000128272;SE:chr22:39520751-39521372:39521671-39521773:+ ENST00000676346 ENST00000676346,ENST00000680446 -chr22 ENSG00000128272 ENSG00000128272;SE:chr22:39520751-39521375:39521671-39521773:+ ENST00000674835 ENST00000674835,ENST00000680446 -chr22 ENSG00000128272 ENSG00000128272;SE:chr22:39520751-39521432:39521671-39521773:+ ENST00000674568 ENST00000674568,ENST00000680446 -chr22 ENSG00000133460 ENSG00000133460;SE:chr22:23856991-23857421:23857531-23862104:+ ENST00000398356,ENST00000405286,ENST00000440493,ENST00000467660 ENST00000255830,ENST00000345044,ENST00000398356,ENST00000403208,ENST00000405286,ENST00000405847,ENST00000440493,ENST00000467660,ENST00000489322 -chr22 ENSG00000133460 ENSG00000133460;SE:chr22:23862202-23867735:23867899-23868481:+ ENST00000418102 ENST00000255830,ENST00000316185,ENST00000345044,ENST00000398356,ENST00000403208,ENST00000405286,ENST00000405340,ENST00000405847,ENST00000418102,ENST00000423972,ENST00000436643,ENST00000461809,ENST00000467660,ENST00000473740,ENST00000489322,ENST00000491948,ENST00000611880 -chr22 ENSG00000133460 ENSG00000133460;SE:chr22:23877171-23877385:23877869-23882459:+ ENST00000405340 ENST00000255830,ENST00000405286,ENST00000405340,ENST00000461809,ENST00000489322 -chr22 ENSG00000133460 ENSG00000133460;SE:chr22:23877171-23877721:23877869-23882459:+ ENST00000316185,ENST00000345044,ENST00000398356,ENST00000467660,ENST00000611880 ENST00000255830,ENST00000316185,ENST00000345044,ENST00000398356,ENST00000405286,ENST00000461809,ENST00000467660,ENST00000489322,ENST00000611880 -chr22 ENSG00000133460 ENSG00000133460;SE:chr22:23882869-23883772:23883873-23883949:+ ENST00000255830,ENST00000316185,ENST00000345044,ENST00000398356,ENST00000405340 ENST00000255830,ENST00000316185,ENST00000345044,ENST00000398356,ENST00000405340,ENST00000472526 -chr22 ENSG00000133466 ENSG00000133466;SE:chr22:37182735-37184337:37184437-37185218:- ENST00000434784 ENST00000337843,ENST00000397110,ENST00000434784,ENST00000493023 -chr22 ENSG00000133466 ENSG00000133466;SE:chr22:37185455-37185871:37186046-37188163:- ENST00000470655 ENST00000337843,ENST00000397110,ENST00000434784,ENST00000470655 -chr22 ENSG00000167065 ENSG00000167065;SE:chr22:30652297-30663013:30663260-30663404:- ENST00000430175 ENST00000404885,ENST00000407308,ENST00000430175 -chr22 ENSG00000167065 ENSG00000167065;SE:chr22:30652297-30663404:30664080-30666807:- ENST00000407308 ENST00000407308,ENST00000461301 -chr22 ENSG00000167065 ENSG00000167065;SE:chr22:30664080-30664955:30665121-30667462:- ENST00000342474 ENST00000334679,ENST00000342474,ENST00000377087,ENST00000403268,ENST00000404885 -chr22 ENSG00000179750 ENSG00000179750;SE:chr22:38986412-38989457:38989610-38991332:+ ENST00000333467,ENST00000402182 ENST00000333467,ENST00000335760,ENST00000402182 -chr22 ENSG00000182057 ENSG00000182057;SE:chr22:42270025-42273894:42273974-42274656:+ ENST00000446578 ENST00000415205,ENST00000446578 -chr22 ENSG00000182057 ENSG00000182057;SE:chr22:42270025-42274656:42274821-42274988:+ ENST00000415205 ENST00000415205,ENST00000609564 -chr22 ENSG00000183765 ENSG00000183765;SE:chr22:28695873-28696901:28696987-28699838:- ENST00000382580,ENST00000402731,ENST00000403642,ENST00000404276,ENST00000405598,ENST00000416671,ENST00000417588,ENST00000425190,ENST00000433728,ENST00000434810,ENST00000448511,ENST00000464581,ENST00000648295,ENST00000649563,ENST00000650281 ENST00000348295,ENST00000382580,ENST00000402731,ENST00000403642,ENST00000404276,ENST00000405598,ENST00000416671,ENST00000417588,ENST00000425190,ENST00000433728,ENST00000434810,ENST00000448511,ENST00000464581,ENST00000648295,ENST00000649563,ENST00000650281 -chr22 ENSG00000183765 ENSG00000183765;SE:chr22:28699937-28703505:28703566-28710006:- ENST00000348295,ENST00000382580,ENST00000402731,ENST00000403642,ENST00000404276,ENST00000405598,ENST00000416671,ENST00000417588,ENST00000425190,ENST00000433028,ENST00000434810,ENST00000439346,ENST00000448511,ENST00000456369,ENST00000464581,ENST00000491919,ENST00000648295,ENST00000649563,ENST00000650281 ENST00000348295,ENST00000382580,ENST00000402731,ENST00000403642,ENST00000404276,ENST00000405598,ENST00000416671,ENST00000417588,ENST00000425190,ENST00000433028,ENST00000433728,ENST00000434810,ENST00000439346,ENST00000448511,ENST00000456369,ENST00000464581,ENST00000491919,ENST00000648295,ENST00000649563,ENST00000650281 -chr22 ENSG00000183765 ENSG00000183765;SE:chr22:28712017-28719395:28719485-28724886:- ENST00000448511 ENST00000402731,ENST00000448511 -chr22 ENSG00000183765 ENSG00000183765;SE:chr22:28712017-28719395:28719485-28724977:- ENST00000348295,ENST00000382580,ENST00000404276,ENST00000405598,ENST00000425190,ENST00000433728,ENST00000439200,ENST00000650281 ENST00000348295,ENST00000382580,ENST00000404276,ENST00000405598,ENST00000417588,ENST00000425190,ENST00000433728,ENST00000439200,ENST00000439346,ENST00000650281 -chr22 ENSG00000183765 ENSG00000183765;SE:chr22:28719485-28721518:28721631-28724977:- ENST00000416671 ENST00000348295,ENST00000382580,ENST00000404276,ENST00000405598,ENST00000416671,ENST00000425190,ENST00000433728,ENST00000439200,ENST00000650281 -chr22 ENSG00000183765 ENSG00000183765;SE:chr22:28725367-28730420:28730548-28734403:- ENST00000382580 ENST00000348295,ENST00000382580,ENST00000398017,ENST00000402731,ENST00000404276,ENST00000405598,ENST00000416671,ENST00000417588,ENST00000433028,ENST00000433728,ENST00000448511,ENST00000650233,ENST00000650281 -chr22 ENSG00000183765 ENSG00000183765;SE:chr22:28725367-28730456:28730548-28734403:- ENST00000439200 ENST00000348295,ENST00000398017,ENST00000402731,ENST00000404276,ENST00000405598,ENST00000416671,ENST00000417588,ENST00000433028,ENST00000433728,ENST00000439200,ENST00000448511,ENST00000650233,ENST00000650281 -chr22 ENSG00000183765 ENSG00000183765;SE:chr22:28725367-28734403:28734727-28741769:- ENST00000348295,ENST00000404276,ENST00000416671,ENST00000433028 ENST00000348295,ENST00000404276,ENST00000416671,ENST00000425190,ENST00000433028 -chr22 ENSG00000183765 ENSG00000183765;SE:chr22:28734727-28737885:28738038-28741769:- ENST00000405598 ENST00000348295,ENST00000382580,ENST00000404276,ENST00000405598,ENST00000416671,ENST00000433028,ENST00000439200 -chr22 ENSG00000183765 ENSG00000183765;SE:chr22:28734727-28738082:28738197-28741769:- ENST00000650281 ENST00000348295,ENST00000382580,ENST00000404276,ENST00000416671,ENST00000433028,ENST00000439200,ENST00000650281 -chr22 ENSG00000184792 ENSG00000184792;SE:chr22:30764392-30770583:30770681-30870429:+ ENST00000445781 ENST00000401475,ENST00000445781 -chr22 ENSG00000184792 ENSG00000184792;SE:chr22:30770681-30773123:30773245-30870429:+ ENST00000477355 ENST00000445781,ENST00000477355,ENST00000496367 -chr22 ENSG00000184792 ENSG00000184792;SE:chr22:30890973-30893122:30893242-30893463:+ ENST00000332585,ENST00000401475,ENST00000403222,ENST00000407373,ENST00000431368,ENST00000437268,ENST00000438716,ENST00000446658,ENST00000452656,ENST00000535268 ENST00000332585,ENST00000401475,ENST00000403222,ENST00000407373,ENST00000431368,ENST00000437268,ENST00000438716,ENST00000446658,ENST00000452656,ENST00000496575,ENST00000535268 -chr22 ENSG00000184792 ENSG00000184792;SE:chr22:30893733-30893817:30894001-30905837:+ ENST00000332585,ENST00000401475,ENST00000403222,ENST00000407373,ENST00000431368,ENST00000437268,ENST00000438716,ENST00000446658,ENST00000535268 ENST00000332585,ENST00000401475,ENST00000403222,ENST00000407373,ENST00000431368,ENST00000437268,ENST00000438716,ENST00000446658,ENST00000452656,ENST00000535268 -chr22 ENSG00000186575 ENSG00000186575;SE:chr22:29604112-29628658:29628773-29636751:+ ENST00000672805 ENST00000338641,ENST00000361452,ENST00000397789,ENST00000403435,ENST00000403999,ENST00000413209,ENST00000672461,ENST00000672805,ENST00000672896,ENST00000673312 -chr22 ENSG00000186575 ENSG00000186575;SE:chr22:29604112-29636751:29636876-29639090:+ ENST00000338641,ENST00000397789,ENST00000403435,ENST00000403999,ENST00000413209,ENST00000672461,ENST00000672896,ENST00000673312 ENST00000338641,ENST00000361676,ENST00000397789,ENST00000403435,ENST00000403999,ENST00000413209,ENST00000672461,ENST00000672896,ENST00000673312 -chr22 ENSG00000186575 ENSG00000186575;SE:chr22:29604112-29636751:29636876-29642202:+ ENST00000361452 ENST00000334961,ENST00000353887,ENST00000361452,ENST00000432151 -chr22 ENSG00000186575 ENSG00000186575;SE:chr22:29604112-29639090:29639212-29642202:+ ENST00000361676 ENST00000334961,ENST00000353887,ENST00000361676,ENST00000432151 -chr22 ENSG00000186575 ENSG00000186575;SE:chr22:29636876-29639090:29639212-29642202:+ ENST00000338641,ENST00000397789,ENST00000403435,ENST00000403999,ENST00000413209,ENST00000672461,ENST00000672805,ENST00000672896,ENST00000673312 ENST00000338641,ENST00000361452,ENST00000397789,ENST00000403435,ENST00000403999,ENST00000413209,ENST00000672461,ENST00000672805,ENST00000672896,ENST00000673312 -chr22 ENSG00000186575 ENSG00000186575;SE:chr22:29654725-29654975:29655080-29655594:+ ENST00000673312 ENST00000334961,ENST00000338641,ENST00000353887,ENST00000361166,ENST00000361452,ENST00000361676,ENST00000397789,ENST00000403435,ENST00000403999,ENST00000672461,ENST00000672805,ENST00000672896,ENST00000673312 -chr22 ENSG00000186575 ENSG00000186575;SE:chr22:29658264-29661205:29661339-29664990:+ ENST00000334961,ENST00000338641,ENST00000353887,ENST00000361452,ENST00000361676,ENST00000397789,ENST00000403435,ENST00000403999,ENST00000672461,ENST00000672805,ENST00000672896,ENST00000673312 ENST00000334961,ENST00000338641,ENST00000353887,ENST00000361166,ENST00000361452,ENST00000361676,ENST00000397789,ENST00000403435,ENST00000403999,ENST00000672461,ENST00000672805,ENST00000672896,ENST00000673312 -chr22 ENSG00000186575 ENSG00000186575;SE:chr22:29678323-29681439:29681601-29694752:+ ENST00000338641,ENST00000361166,ENST00000672805,ENST00000673312 ENST00000338641,ENST00000361166,ENST00000432151,ENST00000672805,ENST00000673312 -chr22 ENSG00000186575 ENSG00000186575;SE:chr22:29681601-29683020:29683064-29694752:+ ENST00000353887,ENST00000361452,ENST00000361676,ENST00000672461,ENST00000672896 ENST00000338641,ENST00000353887,ENST00000361166,ENST00000361452,ENST00000361676,ENST00000672461,ENST00000672805,ENST00000672896,ENST00000673312 -chr22 ENSG00000186575 ENSG00000186575;SE:chr22:29681601-29683020:29683079-29694752:+ ENST00000397789 ENST00000338641,ENST00000361166,ENST00000397789,ENST00000672805,ENST00000673312 -chr22 ENSG00000189295 ENSG00000189295;SE:chr22:16671588-16673600:16673752-16675123:- ENST00000456726 ENST00000456726,ENST00000457060 -chr22 ENSG00000196431 ENSG00000196431;SE:chr22:26622635-26623234:26623352-26625481:+ ENST00000354760 ENST00000354760,ENST00000466315 -chr22 ENSG00000206142 ENSG00000206142;SE:chr22:21307025-21307559:21309524-21311740:- ENST00000447720 ENST00000416615,ENST00000447720 -chr22 ENSG00000206142 ENSG00000206142;SE:chr22:21319356-21321592:21321719-21322303:- ENST00000431488 ENST00000416405,ENST00000416615,ENST00000431488,ENST00000447720,ENST00000453273 -chr22 ENSG00000225465 ENSG00000225465;SE:chr22:29442129-29472306:29472446-29478010:- ENST00000461286 ENST00000461286,ENST00000657516 -chr22 ENSG00000225465 ENSG00000225465;SE:chr22:29442129-29472306:29472449-29478010:- ENST00000658349,ENST00000661328 ENST00000657516,ENST00000658349,ENST00000661328 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34017527-34061275:34061500-34083969:+ ENST00000668175 ENST00000412218,ENST00000652942,ENST00000653369,ENST00000654009,ENST00000655455,ENST00000655904,ENST00000656244,ENST00000656434,ENST00000657115,ENST00000658055,ENST00000658589,ENST00000658699,ENST00000659067,ENST00000661800,ENST00000661903,ENST00000663820,ENST00000664028,ENST00000664480,ENST00000664743,ENST00000665392,ENST00000665458,ENST00000665701,ENST00000667570,ENST00000668175,ENST00000668901,ENST00000669488,ENST00000669802,ENST00000670742,ENST00000671554 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34017527-34083969:34084027-34100358:+ ENST00000412218,ENST00000652942,ENST00000654009,ENST00000655455,ENST00000655904,ENST00000656244,ENST00000656434,ENST00000657115,ENST00000658055,ENST00000658589,ENST00000658699,ENST00000659067,ENST00000661800,ENST00000661903,ENST00000663820,ENST00000664028,ENST00000664480,ENST00000664743,ENST00000665392,ENST00000665458,ENST00000665701,ENST00000667570,ENST00000668901,ENST00000669488,ENST00000669802,ENST00000670742,ENST00000671554 ENST00000412218,ENST00000652942,ENST00000654009,ENST00000655455,ENST00000655904,ENST00000656244,ENST00000656434,ENST00000657115,ENST00000658014,ENST00000658055,ENST00000658589,ENST00000658699,ENST00000659067,ENST00000661800,ENST00000661903,ENST00000663820,ENST00000664028,ENST00000664480,ENST00000664743,ENST00000665392,ENST00000665458,ENST00000665701,ENST00000667570,ENST00000668901,ENST00000669488,ENST00000669802,ENST00000670329,ENST00000670742,ENST00000671554 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34084027-34100358:34100441-34171713:+ ENST00000658699 ENST00000653369,ENST00000658699 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34100441-34102623:34102816-34107939:+ ENST00000668901 ENST00000654009,ENST00000655455,ENST00000656244,ENST00000656434,ENST00000657115,ENST00000659067,ENST00000663820,ENST00000664480,ENST00000665458,ENST00000665701,ENST00000668901,ENST00000669802,ENST00000670329,ENST00000670742 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34100441-34107939:34107989-34109326:+ ENST00000654009,ENST00000655455,ENST00000656434,ENST00000657115,ENST00000659067,ENST00000663820,ENST00000664480,ENST00000665458,ENST00000665701,ENST00000669802,ENST00000670329,ENST00000670742 ENST00000654009,ENST00000655455,ENST00000655904,ENST00000656434,ENST00000657115,ENST00000658014,ENST00000658055,ENST00000658589,ENST00000659067,ENST00000661800,ENST00000661903,ENST00000663820,ENST00000664028,ENST00000664480,ENST00000665392,ENST00000665458,ENST00000665701,ENST00000667570,ENST00000668175,ENST00000669802,ENST00000670329,ENST00000670742,ENST00000671554 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34100441-34107939:34107993-34109326:+ ENST00000656244 ENST00000655904,ENST00000656244,ENST00000658014,ENST00000658055,ENST00000658589,ENST00000661800,ENST00000661903,ENST00000664028,ENST00000665392,ENST00000667570,ENST00000668175,ENST00000671554 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34100441-34109326:34109434-34161596:+ ENST00000655904,ENST00000658014,ENST00000658055,ENST00000658589,ENST00000661800,ENST00000661903,ENST00000668175 ENST00000652942,ENST00000655904,ENST00000658014,ENST00000658055,ENST00000658589,ENST00000661800,ENST00000661903,ENST00000664743,ENST00000668175,ENST00000669488 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34100441-34109326:34109434-34171713:+ ENST00000664028,ENST00000665392,ENST00000671554 ENST00000658699,ENST00000664028,ENST00000665392,ENST00000671554 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34100441-34151865:34151927-34161596:+ ENST00000412218 ENST00000412218,ENST00000652942,ENST00000664743,ENST00000669488 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34100441-34161596:34161791-34171713:+ ENST00000652942,ENST00000664743,ENST00000669488 ENST00000652942,ENST00000658699,ENST00000664743,ENST00000669488 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34109434-34147996:34148132-34161596:+ ENST00000664480 ENST00000655455,ENST00000655904,ENST00000656434,ENST00000658014,ENST00000658055,ENST00000658589,ENST00000659067,ENST00000661800,ENST00000661903,ENST00000664480,ENST00000665458,ENST00000668175,ENST00000668901 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34109434-34147996:34148132-34171713:+ ENST00000667570,ENST00000670742 ENST00000656244,ENST00000657115,ENST00000663820,ENST00000664028,ENST00000665392,ENST00000665701,ENST00000667570,ENST00000669802,ENST00000670742,ENST00000671554 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34109434-34161596:34161791-34171713:+ ENST00000655455,ENST00000655904,ENST00000656434,ENST00000658014,ENST00000658055,ENST00000658589,ENST00000659067,ENST00000661800,ENST00000661903,ENST00000665458,ENST00000668175,ENST00000668901 ENST00000655455,ENST00000655904,ENST00000656244,ENST00000656434,ENST00000657115,ENST00000658014,ENST00000658055,ENST00000658589,ENST00000659067,ENST00000661800,ENST00000661903,ENST00000663820,ENST00000664028,ENST00000665392,ENST00000665458,ENST00000665701,ENST00000668175,ENST00000668901,ENST00000669802,ENST00000671554 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34148132-34149924:34150019-34161596:+ ENST00000654009 ENST00000654009,ENST00000664480 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34148132-34161596:34161791-34171713:+ ENST00000664480 ENST00000664480,ENST00000667570,ENST00000670742 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34174447-34175390:34175440-34205473:+ ENST00000664743 ENST00000664743,ENST00000665392 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34174447-34175390:34175440-34206082:+ ENST00000661903,ENST00000671554 ENST00000652942,ENST00000653369,ENST00000654009,ENST00000655455,ENST00000655904,ENST00000656244,ENST00000656434,ENST00000657115,ENST00000658055,ENST00000658699,ENST00000661800,ENST00000661903,ENST00000663820,ENST00000664028,ENST00000664480,ENST00000665701,ENST00000667570,ENST00000669488,ENST00000669802,ENST00000670742,ENST00000671554 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34174447-34188185:34188425-34218508:+ ENST00000658589 ENST00000658589,ENST00000659067 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34174447-34205473:34205558-34206082:+ ENST00000665392 ENST00000652942,ENST00000653369,ENST00000654009,ENST00000655455,ENST00000655904,ENST00000656244,ENST00000656434,ENST00000657115,ENST00000658055,ENST00000658699,ENST00000661800,ENST00000663820,ENST00000664028,ENST00000664480,ENST00000665392,ENST00000665701,ENST00000667570,ENST00000669488,ENST00000669802,ENST00000670742 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34174447-34206082:34206163-34218508:+ ENST00000663820 ENST00000659067,ENST00000663820 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34174447-34206082:34206194-34218508:+ ENST00000652942,ENST00000653369,ENST00000654009,ENST00000656244,ENST00000656434,ENST00000657115,ENST00000658055,ENST00000658699,ENST00000664028,ENST00000664480 ENST00000652942,ENST00000653369,ENST00000654009,ENST00000656244,ENST00000656434,ENST00000657115,ENST00000658055,ENST00000658699,ENST00000659067,ENST00000664028,ENST00000664480 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34175440-34205473:34205558-34206082:+ ENST00000664743 ENST00000661903,ENST00000664743,ENST00000671554 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34206194-34213812:34213919-34218508:+ ENST00000669488 ENST00000652942,ENST00000653369,ENST00000654009,ENST00000656244,ENST00000656434,ENST00000657115,ENST00000658055,ENST00000658699,ENST00000661903,ENST00000664028,ENST00000664480,ENST00000664743,ENST00000665392,ENST00000669488,ENST00000671554 -chr22 ENSG00000236052 ENSG00000236052;SE:chr22:34206194-34213812:34213970-34218508:+ ENST00000655455,ENST00000661800,ENST00000667570,ENST00000669802,ENST00000670329 ENST00000652942,ENST00000653369,ENST00000654009,ENST00000655455,ENST00000656244,ENST00000656434,ENST00000657115,ENST00000658055,ENST00000658699,ENST00000661800,ENST00000661903,ENST00000664028,ENST00000664480,ENST00000664743,ENST00000665392,ENST00000667570,ENST00000669802,ENST00000670329,ENST00000671554 -chr22 ENSG00000242114 ENSG00000242114;SE:chr22:30426844-30427122:30427403-30428462:+ ENST00000412752 ENST00000355143,ENST00000412752 -chr22 ENSG00000242114 ENSG00000242114;SE:chr22:30426844-30427171:30427403-30428462:+ ENST00000266263 ENST00000266263,ENST00000355143 -chr22 ENSG00000242114 ENSG00000242114;SE:chr22:30426844-30427240:30427403-30428462:+ ENST00000407550 ENST00000355143,ENST00000407550 -chr22 ENSG00000244625 ENSG00000244625;SE:chr22:26672987-26693681:26693836-26717253:+ ENST00000444388,ENST00000450963 ENST00000421253,ENST00000435162,ENST00000440816,ENST00000444388,ENST00000450963,ENST00000651474 -chr22 ENSG00000244625 ENSG00000244625;SE:chr22:26672987-26711830:26712008-26717253:+ ENST00000449017 ENST00000421253,ENST00000435162,ENST00000440816,ENST00000449017,ENST00000651474 -chr22 ENSG00000244625 ENSG00000244625;SE:chr22:26717459-26718140:26718231-26774156:+ ENST00000440816 ENST00000435162,ENST00000440816,ENST00000450963 -chr22 ENSG00000249590 ENSG00000249590;SE:chr22:30410679-30416234:30416403-30428462:+ ENST00000454552 ENST00000439023,ENST00000454552 diff --git a/tests/fixtures/reference_data_preparation/hgnc_chr22.tsv.gz b/tests/fixtures/reference_data_preparation/hgnc_chr22.tsv.gz deleted file mode 100644 index 695e5c58c..000000000 Binary files a/tests/fixtures/reference_data_preparation/hgnc_chr22.tsv.gz and /dev/null differ diff --git a/tests/fixtures/rss_analysis/expected/gwas_finemap.rds b/tests/fixtures/rss_analysis/expected/gwas_finemap.rds index 0cbfb07b0..8b2ece0ef 100644 Binary files a/tests/fixtures/rss_analysis/expected/gwas_finemap.rds and b/tests/fixtures/rss_analysis/expected/gwas_finemap.rds differ diff --git a/tests/fixtures/rss_analysis/expected/gwas_sumstats.rds b/tests/fixtures/rss_analysis/expected/gwas_sumstats.rds index 4d2dd88d5..7a4f36c84 100644 Binary files a/tests/fixtures/rss_analysis/expected/gwas_sumstats.rds and b/tests/fixtures/rss_analysis/expected/gwas_sumstats.rds differ diff --git a/tests/fixtures/splicing_calling/psichomics/SAMPLE_001.SJ.out.tab b/tests/fixtures/splicing_calling/psichomics/SAMPLE_001.SJ.out.tab deleted file mode 100644 index 7cbf706fb..000000000 --- a/tests/fixtures/splicing_calling/psichomics/SAMPLE_001.SJ.out.tab +++ /dev/null @@ -1,441 +0,0 @@ -chr22 11869899 11873840 1 1 1 1 0 53 -chr22 11873926 11876103 1 1 1 1 0 29 -chr22 11876133 11876223 1 1 1 2 0 29 -chr22 11876297 11882267 1 1 1 2 0 73 -chr22 11882339 11886400 1 1 1 1 0 37 -chr22 11890231 11891781 1 1 1 1 0 62 -chr22 11904001 11905336 1 1 1 1 0 2 -chr22 12108049 12110445 2 2 1 1 0 24 -chr22 12314920 12319406 2 2 1 1 20 69 -chr22 12314920 12351351 2 2 1 1 15 69 -chr22 12512851 12549903 2 2 1 0 1 64 -chr22 12544737 12634286 2 2 1 2 2 70 -chr22 15154621 15157695 2 2 1 1 0 20 -chr22 15216222 15225210 2 2 1 3 12 74 -chr22 15624070 15624537 2 2 1 1 0 54 -chr22 15931908 15980703 1 1 1 0 1 64 -chr22 15970683 15972221 2 2 1 1 0 59 -chr22 15986486 15986827 1 1 1 0 1 33 -chr22 15986486 15988023 1 1 1 0 1 33 -chr22 15986486 15988705 1 1 1 0 1 33 -chr22 16064638 16071769 1 1 1 1 0 17 -chr22 16072823 16093709 1 1 1 1 0 38 -chr22 16168027 16188604 2 2 1 1 1 67 -chr22 16257035 16303779 1 1 1 1 0 58 -chr22 16449558 16497248 1 1 1 1 0 66 -chr22 16451636 16770383 2 2 1 0 5 75 -chr22 16451669 16770416 2 2 1 5 3 72 -chr22 16452845 16479532 2 2 1 0 1 29 -chr22 16452845 16480480 2 2 1 0 1 29 -chr22 16454319 16515913 2 2 1 3 2 65 -chr22 16479109 16480060 2 2 1 1 0 67 -chr22 16479109 16516734 2 2 1 1 2 21 -chr22 16479421 16480369 2 2 1 0 1 64 -chr22 16480033 16516706 2 2 1 0 2 37 -chr22 16634141 16666766 2 2 1 1 0 62 -chr22 16663722 16709953 2 2 1 1 1 70 -chr22 16663919 16710149 1 1 1 0 1 23 -chr22 16664774 16770383 2 2 1 0 4 75 -chr22 16702204 16703992 2 2 1 1 0 37 -chr22 16942269 16979012 1 1 1 1 0 48 -chr22 17207291 17209355 2 2 1 1 0 14 -chr22 17505017 17524117 1 1 1 1 0 17 -chr22 17563714 17569923 1 1 1 1 0 44 -chr22 17563714 17579744 1 1 1 2 0 28 -chr22 17598289 17600026 2 2 1 2 0 69 -chr22 17600096 17601091 2 2 1 2 0 44 -chr22 17601182 17612811 2 2 1 2 0 54 -chr22 17612879 17613210 2 2 1 1 0 30 -chr22 17613321 17619460 2 2 1 2 0 66 -chr22 17619527 17628602 2 2 1 2 0 66 -chr22 17631914 17632945 1 1 1 1 0 45 -chr22 17872024 17885877 2 2 1 1 0 69 -chr22 17886052 17887169 2 2 1 1 0 56 -chr22 17887233 17887322 2 2 1 1 0 32 -chr22 17891633 17893807 2 2 1 1 0 2 -chr22 17896982 17899447 2 2 1 1 0 62 -chr22 17904840 17906548 2 2 1 1 0 54 -chr22 18052945 18053102 1 1 1 1 0 44 -chr22 18093278 18093587 2 2 1 1 0 38 -chr22 18124305 18126353 1 1 1 1 0 59 -chr22 18156480 18156581 1 1 1 1 0 40 -chr22 18536809 18537291 2 2 1 0 1 52 -chr22 18982579 18983091 2 2 1 1 0 40 -chr22 19057163 19063201 2 2 1 1 0 57 -chr22 19063279 19064847 2 2 1 1 0 24 -chr22 19176694 19176845 2 2 1 1 0 11 -chr22 19176951 19177119 2 2 1 1 0 59 -chr22 19388555 19392100 2 2 1 1 0 70 -chr22 19392215 19394341 2 2 1 1 0 34 -chr22 19450745 19454748 2 2 1 1 0 55 -chr22 19454831 19455679 2 2 1 1 1 56 -chr22 19455769 19456586 2 2 1 0 1 5 -chr22 19720239 19720319 1 1 1 1 0 42 -chr22 19721958 19722236 1 1 1 1 0 63 -chr22 19722340 19722427 1 1 1 1 0 60 -chr22 20141531 20142755 1 1 1 1 0 56 -chr22 20465577 20471349 2 2 1 1 0 36 -chr22 20471516 20488984 2 2 1 1 0 71 -chr22 20507747 20537116 1 1 1 1 0 45 -chr22 20537205 20551435 1 1 1 2 0 52 -chr22 20551488 20553144 1 1 1 1 0 30 -chr22 20553175 20554935 1 1 1 1 0 16 -chr22 20573199 20595471 2 2 1 1 0 38 -chr22 20624186 20626095 2 2 1 1 0 40 -chr22 20708099 20709295 2 2 1 2 0 54 -chr22 20709380 20709907 2 2 1 2 0 46 -chr22 20709998 20710698 2 2 1 1 0 25 -chr22 20711462 20712485 2 2 1 0 1 4 -chr22 20714701 20717707 2 2 1 1 0 26 -chr22 20717779 20718692 2 2 1 1 0 54 -chr22 20718823 20721297 2 2 1 1 0 66 -chr22 20727865 20729312 2 2 1 2 0 19 -chr22 20729507 20729631 2 2 1 4 0 74 -chr22 20734195 20734394 2 2 1 1 0 27 -chr22 20734554 20742227 2 2 1 3 0 67 -chr22 20742356 20742607 2 2 1 1 0 71 -chr22 20742765 20744627 2 2 1 2 0 45 -chr22 20744721 20747582 2 2 1 5 0 66 -chr22 20747703 20749904 2 2 1 2 0 48 -chr22 20749995 20751292 2 2 1 1 0 13 -chr22 20751756 20752902 2 2 1 2 0 72 -chr22 20753028 20753109 2 2 1 3 0 69 -chr22 20753181 20761303 2 2 1 1 0 10 -chr22 20764951 20765099 2 2 1 1 0 7 -chr22 20765237 20765584 2 2 1 1 0 7 -chr22 20765694 20793192 2 2 1 4 0 51 -chr22 20793244 20796145 2 2 1 2 0 51 -chr22 20796315 20798583 2 2 1 1 0 47 -chr22 20799277 20799670 2 2 1 2 0 74 -chr22 20799767 20801972 2 2 1 1 0 48 -chr22 20811033 20813357 2 2 1 1 0 1 -chr22 20813507 20818482 2 2 1 3 0 47 -chr22 20818550 20819640 2 2 1 4 0 67 -chr22 20819901 20820538 2 2 1 1 0 22 -chr22 20834656 20838614 2 2 1 1 0 59 -chr22 20977777 20977887 1 1 1 1 0 57 -chr22 21476161 21476643 2 2 1 0 1 52 -chr22 21476742 21477789 2 2 1 0 1 1 -chr22 21476765 21477789 2 2 1 0 1 4 -chr22 21592957 21610856 1 1 1 1 0 58 -chr22 21611044 21621514 1 1 1 1 0 69 -chr22 21694818 21694936 1 1 1 1 0 55 -chr22 21695071 21695393 1 1 1 1 0 62 -chr22 21723108 22533192 2 2 1 21 2 43 -chr22 21772983 21788256 2 2 1 1 0 13 -chr22 21788389 21788693 2 2 1 1 0 41 -chr22 22298212 22303223 1 1 1 3 0 22 -chr22 22303298 22303942 1 1 1 3 0 73 -chr22 22480000 22480319 1 1 1 1 0 39 -chr22 22625796 22626335 2 2 1 0 1 39 -chr22 22972281 23005786 2 2 1 1 0 68 -chr22 23132889 23261940 1 1 1 26 13 29 -chr22 23150155 23152460 1 1 1 1 0 41 -chr22 23152527 23153032 1 1 1 2 0 44 -chr22 23153135 23155967 1 1 1 1 0 5 -chr22 23156033 23157991 1 1 1 1 0 15 -chr22 23158044 23158897 1 1 1 1 0 52 -chr22 23158980 23159162 1 1 1 1 0 1 -chr22 23261055 23261354 1 1 1 1 0 68 -chr22 23285202 23287158 1 1 1 2 0 47 -chr22 23287279 23288096 1 1 1 1 0 29 -chr22 23288173 23289516 1 1 1 3 0 62 -chr22 23289622 23290338 1 1 1 2 0 23 -chr22 23292639 23295023 1 1 1 1 0 47 -chr22 23488859 23498483 1 3 1 1 0 34 -chr22 23709868 23714186 2 2 1 1 0 31 -chr22 23714343 23715008 2 2 1 1 0 71 -chr22 23884430 23884648 1 1 1 1 0 19 -chr22 23958702 23960293 2 2 1 0 1 67 -chr22 23960382 23961019 2 2 1 0 1 41 -chr22 23971624 23973767 2 2 1 1 0 66 -chr22 23980310 23980947 1 1 1 0 1 41 -chr22 23981036 23982627 0 0 1 0 1 67 -chr22 24011729 24035443 1 1 1 1 0 57 -chr22 24035521 24036088 1 1 1 1 0 37 -chr22 24036182 24038347 1 1 1 1 0 32 -chr22 24049221 24050824 1 1 1 1 0 48 -chr22 24063147 24064034 1 1 1 1 0 54 -chr22 24064188 24066986 1 1 1 1 0 10 -chr22 24302385 24313312 1 1 1 1 0 53 -chr22 24583809 24607953 1 1 1 1 0 41 -chr22 24597214 24641897 2 2 1 0 1 39 -chr22 24644800 24645635 1 1 1 1 0 42 -chr22 24645746 24647002 1 1 1 1 0 35 -chr22 24847797 24850279 1 1 1 2 0 30 -chr22 24855064 24855284 1 1 1 2 0 46 -chr22 25170939 25174239 1 1 1 1 0 65 -chr22 25672348 25674436 1 1 1 1 0 26 -chr22 25674529 25678815 1 1 1 1 0 50 -chr22 25711164 25714407 1 1 1 1 0 19 -chr22 25714571 25718244 1 1 1 1 0 15 -chr22 25718382 25721283 1 1 1 3 0 62 -chr22 26191700 26219905 2 2 1 1 0 39 -chr22 26365567 26375574 1 1 1 1 0 4 -chr22 26375690 26377672 1 1 1 2 0 65 -chr22 26377776 26380265 1 1 1 1 0 6 -chr22 26422240 26422567 2 2 1 1 0 52 -chr22 26657655 26660698 1 1 1 1 0 49 -chr22 26657655 26663315 1 1 1 1 0 52 -chr22 26660817 26663315 1 1 1 1 0 4 -chr22 26663399 26665456 1 1 1 1 0 16 -chr22 26663399 26665530 1 1 1 1 0 64 -chr22 26666938 26667184 1 1 1 1 0 9 -chr22 26666938 26668157 1 1 1 1 0 69 -chr22 26667311 26668157 1 1 1 1 0 15 -chr22 28036844 28039911 2 2 1 1 1 73 -chr22 28037840 28087833 1 1 1 2 1 66 -chr22 28039959 28086882 2 2 0 0 1 47 -chr22 28083624 28133336 1 1 1 1 0 23 -chr22 28133487 28163920 2 2 1 1 0 28 -chr22 28134731 28165210 2 2 1 1 0 34 -chr22 28164006 28191650 2 2 1 1 0 37 -chr22 28164978 28192591 2 2 1 0 1 20 -chr22 28164978 28210438 2 2 1 0 1 20 -chr22 28168702 28196317 2 2 1 0 7 67 -chr22 28168702 28214160 2 2 1 0 6 67 -chr22 28168702 28826173 2 2 1 1 8 69 -chr22 28507933 28530931 2 2 1 1 0 26 -chr22 28987202 29042494 1 1 1 1 0 65 -chr22 29215040 29231019 1 1 1 1 0 55 -chr22 29268350 29272215 1 1 1 1 0 37 -chr22 29272253 29272379 1 1 1 1 0 37 -chr22 29272432 29273740 1 1 1 1 0 52 -chr22 29273865 29278029 1 1 1 0 1 1 -chr22 29274283 29278029 1 1 1 0 1 1 -chr22 29334411 29338989 2 2 1 1 0 67 -chr22 29340858 29341500 2 2 1 1 0 41 -chr22 29350151 29351170 2 2 1 1 0 45 -chr22 29351267 29351704 2 2 1 1 0 9 -chr22 29359960 29363000 2 2 1 1 0 40 -chr22 29639213 29642201 1 1 1 1 0 49 -chr22 29642286 29654656 1 1 1 1 0 45 -chr22 29654726 29655593 1 1 1 1 0 36 -chr22 29655677 29658188 1 1 1 1 0 45 -chr22 29658265 29661204 1 1 1 1 0 29 -chr22 29665065 29668332 1 1 1 1 0 6 -chr22 29668447 29671825 1 1 1 1 0 30 -chr22 29673487 29674835 1 1 1 1 0 29 -chr22 29731355 29738329 2 2 1 1 0 9 -chr22 29738442 29740649 2 2 1 1 0 52 -chr22 29991671 29998760 1 1 1 1 0 65 -chr22 30002994 30007113 1 1 1 1 0 63 -chr22 30009130 30012367 1 1 1 1 0 6 -chr22 30013542 30016527 1 1 1 1 0 73 -chr22 30020885 30022028 1 1 1 1 0 61 -chr22 30339252 30340195 2 2 1 2 0 70 -chr22 30340382 30340694 2 2 1 2 0 68 -chr22 30342351 30342804 2 2 1 1 0 71 -chr22 30342880 30344932 2 2 1 1 0 62 -chr22 30529350 30532524 2 2 1 1 0 33 -chr22 30532714 30532796 2 2 1 1 0 59 -chr22 30787609 30837197 1 1 1 1 0 56 -chr22 30971780 30972854 1 1 1 1 0 71 -chr22 31212425 31225719 1 1 1 1 0 47 -chr22 31258427 31259120 1 1 1 1 0 5 -chr22 31272705 31273451 1 1 1 1 0 18 -chr22 31273508 31275150 1 1 1 1 0 56 -chr22 31442119 31442961 2 2 1 1 0 57 -chr22 31450361 31454143 2 2 1 1 0 34 -chr22 31455316 31455851 2 2 1 1 0 42 -chr22 31837156 31838684 1 1 1 1 0 20 -chr22 31901803 31905983 1 1 1 1 0 7 -chr22 31906067 31906204 1 1 1 1 0 61 -chr22 32475125 32478980 1 1 1 1 0 53 -chr22 32484125 32485067 1 1 1 0 1 52 -chr22 32491182 32493104 1 1 1 1 0 44 -chr22 32493282 32498143 1 1 1 1 0 64 -chr22 32941561 32942083 1 1 1 1 0 49 -chr22 32946477 32964214 1 1 1 1 0 75 -chr22 33138423 33156650 2 2 1 1 0 47 -chr22 33277256 33283201 2 2 1 1 0 63 -chr22 33382045 33384191 2 2 1 1 0 16 -chr22 33650669 33761370 2 2 1 1 0 24 -chr22 33761559 33919994 2 2 1 1 0 13 -chr22 34203460 34210229 2 2 1 1 0 71 -chr22 34550603 34612528 1 1 1 6 4 75 -chr22 34550817 34559624 1 1 1 1 4 69 -chr22 34550970 34559777 1 1 1 0 2 59 -chr22 34612557 34678316 1 1 0 0 2 28 -chr22 34613188 34678953 2 2 1 1 1 26 -chr22 34678317 34746583 1 1 1 2 0 72 -chr22 34746584 34780036 1 1 1 4 1 32 -chr22 34747997 34821455 1 1 1 2 0 19 -chr22 34788548 34793901 2 2 1 1 0 54 -chr22 35744250 35745922 2 2 1 1 0 37 -chr22 35745996 35746472 2 2 1 1 0 41 -chr22 35810005 35840191 2 2 1 1 0 46 -chr22 36203440 36203462 1 1 1 1 0 61 -chr22 36289298 36291985 2 2 1 1 0 65 -chr22 36292235 36293328 2 2 1 1 0 38 -chr22 36301666 36302567 2 2 1 1 0 74 -chr22 36504368 36504514 2 2 1 1 0 6 -chr22 36517432 36518762 2 2 1 1 0 51 -chr22 36518911 36519404 2 2 1 1 0 68 -chr22 36519538 36520575 2 2 1 1 0 33 -chr22 36520689 36523208 2 2 1 1 0 3 -chr22 36523981 36524595 2 2 1 1 0 62 -chr22 36524733 36525663 2 2 1 1 0 46 -chr22 36525710 36525998 2 2 1 1 0 25 -chr22 37056412 37057397 1 1 1 1 0 59 -chr22 37057494 37059312 1 1 1 1 0 31 -chr22 37618547 37620237 1 1 1 1 0 33 -chr22 37620362 37620812 1 1 1 1 0 63 -chr22 37623468 37623551 1 1 1 1 0 44 -chr22 37623634 37624968 1 1 1 1 0 42 -chr22 37675712 37676985 1 1 1 2 0 60 -chr22 37677066 37678482 1 1 1 2 0 69 -chr22 37849483 37850014 1 1 1 1 0 23 -chr22 37850064 37851279 1 1 1 2 0 42 -chr22 37863039 37863271 1 1 1 1 0 59 -chr22 37863346 37870175 1 1 1 1 0 16 -chr22 37870348 37874369 1 1 1 1 0 36 -chr22 37876012 37877673 1 1 1 1 0 69 -chr22 37958100 38063244 2 2 1 6 0 27 -chr22 38019712 38020568 2 4 1 1 0 30 -chr22 38072611 38072999 1 1 1 1 0 16 -chr22 38073093 38073570 1 1 1 1 0 49 -chr22 38112306 38112503 2 2 1 0 1 44 -chr22 38294535 38298785 2 2 1 2 0 70 -chr22 38298935 38299894 2 2 1 2 0 56 -chr22 38299667 38344511 1 1 1 1 0 61 -chr22 38300953 38302860 2 2 1 1 0 45 -chr22 38442366 38474897 1 1 1 2 0 43 -chr22 38464739 38512094 2 2 1 1 0 49 -chr22 38486441 38487878 2 2 1 2 0 49 -chr22 38494803 38494885 2 2 1 2 0 69 -chr22 38495047 38495795 2 2 1 2 0 59 -chr22 38495938 38498084 2 2 1 1 0 66 -chr22 38498151 38498439 2 2 1 4 0 43 -chr22 38498574 38499399 2 2 1 2 0 62 -chr22 38499500 38501129 2 2 1 1 1 50 -chr22 38501281 38505950 2 2 1 2 0 54 -chr22 38682997 38683766 1 1 1 1 0 50 -chr22 38688002 38688934 2 2 1 1 0 20 -chr22 38689425 38699802 2 2 1 2 0 36 -chr22 38742556 38745683 2 2 1 2 0 32 -chr22 38745812 38748712 2 2 1 1 0 23 -chr22 38822834 38823082 2 2 1 2 0 55 -chr22 38823263 38826499 2 2 1 1 0 10 -chr22 38826748 38828286 2 2 1 1 0 56 -chr22 39109366 39109395 2 2 1 1 0 19 -chr22 39134474 39141370 2 2 1 1 0 62 -chr22 39141437 39149788 2 2 1 1 0 44 -chr22 39149833 39152375 2 2 1 1 0 14 -chr22 39312985 39313190 2 2 1 4 0 53 -chr22 39313311 39313633 2 2 1 4 0 45 -chr22 39313730 39314106 2 2 1 4 0 68 -chr22 39314847 39315368 2 2 1 1 0 66 -chr22 39316842 39317460 2 2 1 1 0 74 -chr22 39317630 39318399 2 2 1 2 0 58 -chr22 39350110 39374315 1 1 1 1 0 29 -chr22 39376198 39381695 1 1 1 1 0 40 -chr22 39512495 39513516 1 1 1 1 0 18 -chr22 39520752 39521353 1 1 1 1 0 59 -chr22 39672309 39672948 1 1 1 1 0 47 -chr22 39674034 39677340 1 1 1 1 0 34 -chr22 39677420 39677986 1 1 1 1 0 38 -chr22 40277152 40277998 1 1 1 1 0 46 -chr22 40278045 40279994 1 1 1 1 0 46 -chr22 40280144 40285644 1 1 1 1 0 25 -chr22 40429768 40431404 2 2 1 1 0 2 -chr22 40431481 40435498 2 2 1 1 0 56 -chr22 40435555 40463220 2 2 1 1 0 55 -chr22 40826667 40827095 2 2 1 1 0 46 -chr22 40827230 40829625 2 2 1 2 0 49 -chr22 40829675 40830839 2 2 1 2 0 49 -chr22 40835888 40840625 2 2 1 1 0 38 -chr22 40840693 40844838 2 2 1 1 0 46 -chr22 40844910 40848293 2 2 1 1 0 32 -chr22 40848370 40850822 2 2 1 1 0 43 -chr22 41168868 41169502 1 1 1 1 0 32 -chr22 41169617 41170405 1 1 1 1 0 6 -chr22 41172664 41173622 1 1 1 1 0 49 -chr22 41224252 41224724 1 1 1 1 0 46 -chr22 41224802 41224966 1 1 1 1 0 74 -chr22 41229657 41230138 1 1 1 1 0 33 -chr22 41251110 41252871 2 2 1 2 0 63 -chr22 41252992 41254307 2 2 1 2 0 22 -chr22 41348168 41349119 1 1 1 1 0 58 -chr22 41394317 41395744 1 1 1 1 0 12 -chr22 41508050 41511875 1 1 1 3 0 68 -chr22 41511969 41515376 1 1 1 2 0 31 -chr22 41515536 41515766 1 1 1 1 0 57 -chr22 41522988 41523204 1 1 1 2 0 70 -chr22 41523279 41523829 1 1 1 1 0 7 -chr22 41523942 41524845 1 1 1 1 0 62 -chr22 41524969 41525192 1 1 1 1 0 39 -chr22 41604154 41607261 2 2 1 1 0 49 -chr22 41621346 41621989 1 1 1 1 0 18 -chr22 41622087 41628117 1 1 1 1 0 61 -chr22 41637792 41646895 1 1 1 1 0 32 -chr22 41653691 41656902 1 1 1 1 0 17 -chr22 41661445 41663621 1 1 1 1 0 4 -chr22 41675196 41680243 2 2 1 1 0 68 -chr22 41874020 41875336 1 1 1 1 0 71 -chr22 41875452 41875542 1 1 1 2 0 62 -chr22 41875725 41877228 1 1 1 0 1 51 -chr22 41877422 41877941 1 1 1 2 0 60 -chr22 41986113 41987205 1 1 1 1 0 75 -chr22 41987288 41987621 1 1 1 1 0 28 -chr22 41989685 41991572 1 1 1 3 0 70 -chr22 41991669 41992663 1 1 1 3 0 66 -chr22 41992764 41994289 1 1 1 1 0 52 -chr22 41994342 41994620 1 1 1 4 0 42 -chr22 41994715 41996901 1 1 1 1 0 70 -chr22 42514305 42514681 2 2 1 1 0 14 -chr22 42514780 42515150 2 2 1 1 0 70 -chr22 42588196 42601250 2 2 1 41 4 17 -chr22 42627390 42627604 2 2 1 1 0 41 -chr22 42627689 42628151 2 2 1 1 0 25 -chr22 42628282 42630881 2 2 1 1 0 21 -chr22 42630989 42631377 2 2 1 1 0 23 -chr22 42638428 42652595 1 1 1 0 1 31 -chr22 42871470 42876136 2 2 1 1 0 55 -chr22 42876334 42879047 2 2 1 1 0 18 -chr22 42884562 42888642 2 2 1 1 0 21 -chr22 42966245 43003477 2 2 1 0 1 37 -chr22 43051888 43059383 2 2 1 1 0 5 -chr22 43059528 43063812 2 2 1 1 0 18 -chr22 43063922 43064189 2 2 1 1 0 24 -chr22 43069845 43075473 2 2 1 1 0 44 -chr22 43695769 43711474 2 2 1 1 0 53 -chr22 43765394 43782179 2 2 1 1 0 45 -chr22 43782326 43808994 2 2 1 1 0 56 -chr22 43955599 43963285 1 1 1 1 0 22 -chr22 43963397 43964451 1 1 1 1 0 24 -chr22 43964554 43968730 1 1 1 1 0 25 -chr22 43972343 43972870 1 1 1 1 0 72 -chr22 44612438 44612537 2 2 1 1 0 47 -chr22 44910704 44912634 2 2 1 0 1 55 -chr22 45116358 45121708 2 2 1 1 0 41 -chr22 45178901 45181285 1 1 1 1 0 25 -chr22 45181368 45183401 1 1 1 1 0 44 -chr22 45197217 45197789 2 2 1 1 0 42 -chr22 45200036 45202989 2 2 1 1 0 27 -chr22 45205319 45205629 2 2 1 1 0 2 -chr22 45729591 45738730 1 1 1 1 0 47 -chr22 45738840 45740368 1 1 1 2 0 68 -chr22 46350464 46352120 1 1 1 1 0 27 -chr22 46352175 46352263 1 1 1 1 0 54 -chr22 46352331 46353766 1 1 1 1 0 38 -chr22 46353868 46355443 1 1 1 1 0 11 -chr22 46665707 46666824 1 1 1 1 0 49 -chr22 46666874 46668095 1 1 1 1 0 46 -chr22 46668168 46668688 1 1 1 1 0 33 -chr22 46690201 46691571 2 2 1 1 0 63 -chr22 46894429 46894783 1 1 1 1 0 59 -chr22 50133809 50155737 1 3 1 1 0 26 -chr22 50231075 50243609 2 2 1 1 0 43 -chr22 50255371 50255452 2 2 1 1 0 66 -chr22 50394136 50406688 1 1 1 1 0 42 -chr22 50439858 50439960 1 1 1 1 0 61 -chr22 50440050 50440821 1 1 1 1 0 44 -chr22 50600884 50601788 1 1 1 1 0 60 -chr22 50601895 50603222 1 1 1 1 0 52 -chr22 50704249 50704737 1 1 1 1 0 57 -chr22 50704863 50704963 1 1 1 1 0 1 -chr22 50722438 50724126 1 1 1 0 1 2 -chr22 50768875 50769040 2 2 1 1 0 39 -chr22 50769125 50769454 2 2 1 1 0 38 -chr22 50785294 50798654 1 1 1 1 0 73 diff --git a/tests/fixtures/splicing_calling/psichomics/SAMPLE_002.SJ.out.tab b/tests/fixtures/splicing_calling/psichomics/SAMPLE_002.SJ.out.tab deleted file mode 100644 index 21313ee9f..000000000 --- a/tests/fixtures/splicing_calling/psichomics/SAMPLE_002.SJ.out.tab +++ /dev/null @@ -1,328 +0,0 @@ -chr22 11478700 11478783 2 2 1 1 0 29 -chr22 11478906 11478990 2 2 1 1 0 40 -chr22 11903143 11903786 1 1 1 1 0 43 -chr22 12314920 12319406 2 2 1 6 7 68 -chr22 12319668 12364414 1 1 1 0 1 20 -chr22 12496724 12499629 1 5 1 1 0 42 -chr22 12602817 12604669 1 1 1 1 0 59 -chr22 12604740 12615408 1 1 1 1 0 67 -chr22 15179528 15181234 1 1 1 1 0 38 -chr22 15204087 15216344 1 1 1 0 3 71 -chr22 15215213 15224212 2 2 0 1 0 65 -chr22 15216378 15225366 1 1 1 2 4 59 -chr22 15497664 15536498 2 2 1 0 1 38 -chr22 15628579 15629735 2 2 1 1 0 30 -chr22 15968414 15974955 2 2 1 1 0 22 -chr22 15975052 15978296 2 2 0 1 0 27 -chr22 15990052 15990566 2 2 1 0 1 72 -chr22 16015723 16039593 2 2 1 0 1 55 -chr22 16168501 16189079 1 1 1 0 4 56 -chr22 16448463 16494312 2 2 1 2 0 46 -chr22 16448516 16494365 2 2 1 1 0 18 -chr22 16451949 16454633 2 2 1 1 0 54 -chr22 16455437 16480376 2 2 1 1 0 50 -chr22 16561786 16562232 1 1 1 1 0 46 -chr22 16663722 16709953 2 2 1 2 1 70 -chr22 17006087 17029339 2 2 0 0 1 61 -chr22 17581160 17581357 1 1 1 1 0 29 -chr22 17581414 17582562 1 1 1 1 0 56 -chr22 17583535 17587135 1 1 1 1 0 35 -chr22 17592737 17594528 2 2 1 1 0 53 -chr22 17594617 17598193 2 2 1 1 0 10 -chr22 17738230 17739348 2 2 1 1 0 27 -chr22 17810814 17816689 2 2 1 1 0 65 -chr22 17816785 17817310 2 2 1 1 0 5 -chr22 18053044 18053203 2 2 1 1 0 50 -chr22 18156582 18156683 1 1 1 1 0 28 -chr22 18980781 18981235 2 2 1 1 0 18 -chr22 19361342 19361726 2 2 1 1 0 71 -chr22 19361932 19375630 2 2 1 1 0 8 -chr22 19471809 19475067 2 2 1 1 0 33 -chr22 19475101 19475469 2 2 1 1 0 33 -chr22 19720239 19720319 1 1 1 1 0 74 -chr22 19720667 19720767 1 1 1 1 0 66 -chr22 19941898 19961198 1 1 1 1 0 31 -chr22 19961290 19962526 1 1 1 1 0 5 -chr22 20043444 20047969 1 1 1 1 0 2 -chr22 20717779 20718692 2 2 1 1 0 27 -chr22 20718823 20721297 2 2 1 1 0 65 -chr22 20727865 20729312 2 2 1 1 0 59 -chr22 20742765 20744627 2 2 1 1 0 11 -chr22 20744721 20747582 2 2 1 1 0 47 -chr22 20749995 20751292 2 2 1 2 0 69 -chr22 20751377 20751673 2 2 1 1 0 51 -chr22 20751756 20752902 2 2 1 1 0 17 -chr22 20753028 20753109 2 2 1 2 0 34 -chr22 20753181 20761303 2 2 1 1 0 58 -chr22 20761387 20764816 2 2 1 1 0 10 -chr22 20796315 20798583 2 2 1 3 0 69 -chr22 20805166 20807361 2 2 1 1 0 61 -chr22 20811033 20813357 2 2 1 1 0 59 -chr22 20911255 21524716 1 1 1 0 2 17 -chr22 20990526 20991627 1 1 1 1 0 60 -chr22 21708571 21721654 2 2 1 1 0 39 -chr22 21723108 22533192 2 2 1 13 3 31 -chr22 21806040 21807663 2 2 1 2 0 70 -chr22 22303298 22303942 1 1 1 1 0 38 -chr22 22475590 22478040 2 2 1 1 0 42 -chr22 23132889 23261940 1 1 1 22 9 27 -chr22 23261541 23268407 1 1 1 1 0 38 -chr22 23271593 23273080 1 1 1 1 0 53 -chr22 23273134 23273633 1 1 1 1 0 42 -chr22 23295156 23309423 1 1 1 1 0 60 -chr22 23309484 23310323 1 1 1 1 0 37 -chr22 23313022 23313967 1 1 1 1 0 4 -chr22 23314074 23314551 1 1 1 1 0 74 -chr22 23546896 23547897 2 2 1 1 0 16 -chr22 23958702 23960293 2 2 1 0 1 60 -chr22 23960382 23961019 2 2 1 0 1 41 -chr22 23980310 23980947 1 1 1 0 1 41 -chr22 23981036 23982627 0 0 1 0 1 60 -chr22 24043085 24049090 1 1 1 1 0 47 -chr22 24050975 24054872 1 1 1 1 0 62 -chr22 24225653 24226075 2 2 1 2 0 62 -chr22 24270984 24302194 1 1 1 1 0 73 -chr22 24549002 24555614 2 2 1 1 0 49 -chr22 24597617 24642941 1 1 1 1 0 60 -chr22 25049365 25170819 1 1 1 1 0 31 -chr22 25178528 25178551 1 1 1 1 0 74 -chr22 25376009 25381380 2 2 1 1 0 67 -chr22 26293147 26294291 1 1 1 1 0 30 -chr22 26297081 26298983 1 1 1 2 0 35 -chr22 26299170 26305978 1 1 1 1 0 21 -chr22 26313903 26340435 1 1 1 1 0 69 -chr22 26422240 26422567 2 2 1 1 0 53 -chr22 26502053 26503665 2 2 1 1 0 49 -chr22 26503794 26506302 2 2 1 1 0 52 -chr22 26526268 26528213 2 2 1 1 0 9 -chr22 26528263 26532694 2 2 1 1 0 49 -chr22 26532746 26536287 2 2 1 1 0 39 -chr22 26672988 26693680 1 1 1 1 0 55 -chr22 27858510 27860130 2 2 1 1 0 60 -chr22 27898026 27910963 2 2 1 1 0 41 -chr22 28036844 28039911 2 2 1 2 0 73 -chr22 28036892 28086882 2 2 1 0 1 40 -chr22 28037499 28087492 1 1 1 0 1 57 -chr22 28038098 28088091 1 1 1 1 0 53 -chr22 28038396 28041459 2 2 1 0 2 33 -chr22 28039959 28086882 2 2 1 0 1 40 -chr22 28040567 28087492 1 1 1 1 2 57 -chr22 28041006 28087935 2 2 1 1 0 58 -chr22 28096409 28098914 2 2 1 1 0 52 -chr22 28101281 28105278 2 2 1 1 0 58 -chr22 28168702 28196317 2 2 1 0 4 70 -chr22 28168702 28214160 2 2 1 0 4 70 -chr22 28192314 28210160 1 1 1 1 0 61 -chr22 28807709 28847632 2 2 1 1 0 68 -chr22 29098954 29121356 1 1 1 1 0 74 -chr22 29121482 29125262 1 1 1 1 0 17 -chr22 29273865 29278029 1 1 1 1 0 54 -chr22 29287135 29288605 1 1 1 1 0 54 -chr22 29339134 29339753 2 2 1 1 0 21 -chr22 29339775 29340655 2 2 1 1 0 21 -chr22 29351267 29351704 2 2 1 1 0 24 -chr22 29351826 29354649 2 2 1 1 0 33 -chr22 29354872 29358725 2 2 1 1 0 47 -chr22 29358972 29359823 2 2 1 2 0 3 -chr22 29359960 29363000 2 2 1 2 0 35 -chr22 29543543 29544459 2 2 1 1 0 67 -chr22 29544604 29549051 2 2 1 1 0 19 -chr22 29549159 29550727 2 2 1 1 0 41 -chr22 29560829 29561170 2 2 1 1 0 32 -chr22 29561203 29561505 2 2 1 1 0 32 -chr22 29561647 29561791 2 2 1 1 0 10 -chr22 29806291 29806484 2 2 1 1 0 33 -chr22 29806554 29806796 2 2 1 1 0 63 -chr22 29934118 29940030 1 1 1 0 1 47 -chr22 29943967 29957035 1 1 1 1 0 42 -chr22 29957089 29970975 1 1 1 1 0 49 -chr22 30020885 30022028 1 1 1 1 0 35 -chr22 30022140 30022608 1 1 1 1 0 3 -chr22 31099180 31099744 1 1 1 1 0 29 -chr22 31099897 31100884 1 1 1 1 0 17 -chr22 31258427 31259120 1 1 1 1 0 64 -chr22 31260078 31262133 1 1 1 1 0 25 -chr22 31262240 31262594 1 1 1 1 0 19 -chr22 31327310 31328786 2 4 1 1 0 26 -chr22 31420426 31423279 1 1 1 1 0 31 -chr22 31426783 31427059 1 1 1 2 0 75 -chr22 31442119 31442961 2 2 1 1 0 66 -chr22 31619837 31620552 2 2 1 1 0 72 -chr22 31620714 31620995 2 2 1 1 0 30 -chr22 31621143 31621333 2 2 1 1 0 41 -chr22 31934450 31937915 2 2 1 1 0 48 -chr22 32849535 32857248 1 1 1 1 0 60 -chr22 33316249 33337645 2 2 1 1 0 71 -chr22 34550817 34559624 1 1 1 1 3 48 -chr22 34746584 34780036 1 1 1 1 0 25 -chr22 34788548 34793901 2 2 1 1 1 59 -chr22 34793783 34821876 2 2 1 1 0 26 -chr22 35299981 35317876 1 1 1 1 0 12 -chr22 35317962 35321958 1 1 1 1 0 58 -chr22 35322038 35323027 1 1 1 1 0 14 -chr22 36305103 36305929 2 2 1 1 0 46 -chr22 36320364 36320797 2 2 1 1 0 62 -chr22 36341527 36348903 2 2 1 2 0 65 -chr22 36498157 36501240 2 2 1 1 0 52 -chr22 36501408 36504097 2 2 1 1 0 70 -chr22 37632516 37632600 1 1 1 1 0 27 -chr22 37677066 37678482 1 1 1 1 0 24 -chr22 37678655 37679602 1 1 1 1 0 68 -chr22 37755191 37755549 1 1 1 1 0 73 -chr22 37755660 37757612 1 1 1 1 0 47 -chr22 37819587 37827640 1 1 1 1 0 54 -chr22 37849483 37851279 1 1 1 0 1 2 -chr22 37850064 37851279 1 1 1 0 1 2 -chr22 37850575 37851279 1 1 1 0 1 2 -chr22 37878172 37886764 1 1 1 1 0 45 -chr22 37886846 37888425 1 1 1 1 0 24 -chr22 37932680 37932797 1 1 1 1 0 70 -chr22 37932889 37933038 1 1 1 1 0 44 -chr22 37933113 37937079 1 1 1 1 0 33 -chr22 37958100 38063244 2 2 1 7 0 22 -chr22 38224980 38225423 2 2 1 1 0 32 -chr22 38230745 38231243 2 2 1 1 0 21 -chr22 38231335 38245934 2 2 1 1 0 46 -chr22 38298935 38299894 2 2 1 1 0 58 -chr22 38303421 38314081 2 2 1 1 0 62 -chr22 38314170 38317159 2 2 1 1 0 22 -chr22 38488116 38492055 2 2 1 2 0 60 -chr22 38492116 38493709 2 2 1 2 0 35 -chr22 38494132 38494629 2 2 1 1 0 30 -chr22 38494803 38494885 2 2 1 3 0 71 -chr22 38495938 38498084 2 2 1 3 0 48 -chr22 38498151 38498439 2 2 1 2 0 62 -chr22 38498574 38499399 2 2 1 2 0 71 -chr22 38499500 38501129 2 2 1 2 0 58 -chr22 38501281 38505950 2 2 1 1 0 41 -chr22 38736381 38738172 2 2 1 1 0 64 -chr22 38739427 38739721 2 2 1 1 0 46 -chr22 38742556 38745683 2 2 1 1 0 21 -chr22 38826748 38828286 2 2 1 1 0 60 -chr22 39312985 39313190 2 2 1 1 0 4 -chr22 39313311 39313633 2 2 1 3 0 50 -chr22 39313730 39314106 2 2 1 3 0 66 -chr22 39314209 39314685 2 2 1 2 0 19 -chr22 39314847 39315368 2 2 1 2 0 20 -chr22 39315556 39316705 2 2 1 1 0 34 -chr22 39415654 39416790 1 1 1 1 0 71 -chr22 39417850 39418731 1 1 1 1 0 68 -chr22 39486249 39487346 1 1 1 2 0 60 -chr22 39520752 39521353 1 1 1 1 0 61 -chr22 40178141 40246014 1 1 1 1 0 21 -chr22 40277152 40277998 1 1 1 1 0 46 -chr22 40278045 40279994 1 1 1 1 0 46 -chr22 40280144 40281118 1 1 1 1 0 73 -chr22 40285771 40300454 1 1 1 1 0 39 -chr22 40312998 40315282 1 1 1 1 0 46 -chr22 40315508 40315941 1 1 1 1 0 28 -chr22 40316013 40321089 1 1 1 1 0 44 -chr22 40363072 40364275 1 1 1 1 0 34 -chr22 40364366 40364879 1 1 1 1 0 27 -chr22 40365057 40366435 1 1 1 1 0 53 -chr22 40370689 40400695 1 1 1 1 0 23 -chr22 40400814 40401592 1 1 1 1 0 10 -chr22 40402206 40404246 1 1 1 1 0 7 -chr22 40409526 40409681 1 1 1 1 0 34 -chr22 40552368 40594673 2 2 1 1 0 15 -chr22 40815969 40837397 2 2 1 1 0 31 -chr22 40827230 40829625 2 2 1 1 0 46 -chr22 40829675 40830839 2 2 1 1 0 26 -chr22 40830957 40832568 2 2 1 5 0 61 -chr22 40832672 40835559 2 2 1 3 0 73 -chr22 40835671 40835802 2 2 1 5 0 74 -chr22 40835888 40840625 2 2 1 2 0 42 -chr22 40840693 40844838 2 2 1 2 0 61 -chr22 40844910 40848293 2 2 1 2 0 68 -chr22 40865606 40883639 1 1 1 1 0 21 -chr22 40882178 40886312 1 1 1 1 0 75 -chr22 40886516 40907586 1 1 1 1 0 62 -chr22 40907650 40909121 1 1 1 1 0 26 -chr22 41135907 41137652 1 1 1 1 0 73 -chr22 41137791 41140139 1 1 1 1 0 66 -chr22 41140258 41141047 1 1 1 2 0 73 -chr22 41169617 41170405 1 1 1 2 0 58 -chr22 41170572 41172498 1 1 1 1 0 15 -chr22 41224252 41224724 1 1 1 1 0 17 -chr22 41224802 41224966 1 1 1 1 0 54 -chr22 41246673 41249329 2 2 1 1 0 65 -chr22 41249452 41249728 2 2 1 2 0 22 -chr22 41348168 41349119 1 1 1 1 0 15 -chr22 41351647 41355468 1 1 1 1 0 63 -chr22 41355603 41355756 1 1 1 2 0 57 -chr22 41394317 41395744 1 1 1 1 0 15 -chr22 41517632 41518480 1 1 1 2 0 4 -chr22 41518573 41520170 1 1 1 4 0 67 -chr22 41520277 41522829 1 1 1 4 0 54 -chr22 41522983 41523829 1 3 1 1 0 1 -chr22 41522988 41523204 1 1 1 2 0 73 -chr22 41523279 41523829 1 1 1 1 0 3 -chr22 41523942 41524845 1 1 1 2 0 66 -chr22 41525349 41526261 1 1 1 1 0 48 -chr22 41526454 41527287 1 1 1 1 0 15 -chr22 41527421 41527900 1 1 1 1 0 2 -chr22 41577441 41577807 2 2 1 1 0 73 -chr22 41647083 41650722 1 1 1 1 0 50 -chr22 41658353 41661330 1 1 1 1 0 68 -chr22 41661445 41663621 1 1 1 1 0 29 -chr22 41675196 41680243 2 2 1 1 0 50 -chr22 41690844 41693462 1 1 1 1 0 52 -chr22 41867281 41868610 1 1 1 2 0 63 -chr22 41868793 41870888 1 1 1 1 0 68 -chr22 41897162 41898648 1 1 1 1 0 21 -chr22 41898782 41900329 1 1 1 1 0 29 -chr22 42086315 42087059 2 2 1 1 0 21 -chr22 42087176 42090605 2 2 1 1 0 52 -chr22 42558458 42560185 1 1 1 1 0 21 -chr22 42560266 42571120 1 1 1 1 0 67 -chr22 42627390 42627604 2 2 1 1 0 67 -chr22 42627689 42628151 2 2 1 1 0 35 -chr22 42630989 42631377 2 2 1 1 0 22 -chr22 42631451 42636714 2 2 1 1 0 72 -chr22 42758545 42783296 1 1 1 1 0 63 -chr22 42817858 42822269 2 2 1 1 0 72 -chr22 42822410 42823655 2 2 1 1 0 12 -chr22 42882305 42884385 2 2 1 1 0 18 -chr22 43059528 43063812 2 2 1 1 0 11 -chr22 43063922 43064189 2 2 1 1 0 59 -chr22 43716973 43731698 2 2 1 0 1 37 -chr22 43826114 43829059 2 2 1 1 0 35 -chr22 45197949 45199847 2 2 1 1 0 45 -chr22 45203986 45205216 2 2 1 2 0 68 -chr22 45205319 45205629 2 2 1 1 0 34 -chr22 45205708 45205792 2 2 1 1 0 38 -chr22 45205913 45211955 2 2 1 1 0 65 -chr22 45533165 45533760 1 1 1 1 0 57 -chr22 45689904 45692995 1 1 1 1 0 54 -chr22 45693079 45700281 1 1 1 1 0 13 -chr22 45702848 45718412 1 1 1 2 0 59 -chr22 45718494 45729424 1 1 1 1 0 11 -chr22 46439007 46440447 2 4 1 1 0 50 -chr22 46491496 46531436 2 2 1 1 0 38 -chr22 46665707 46666824 1 1 1 1 0 49 -chr22 46666874 46668095 1 1 1 1 0 29 -chr22 46668909 46672842 1 1 1 1 0 67 -chr22 46723478 46768343 1 1 1 1 0 30 -chr22 49213906 49213936 2 2 1 1 0 35 -chr22 49669615 49669696 2 2 1 1 0 43 -chr22 49669615 49669737 2 2 1 1 0 53 -chr22 49669797 49669948 1 1 1 1 0 45 -chr22 50074333 50076840 2 2 1 1 0 39 -chr22 50076913 50077400 2 2 1 1 0 50 -chr22 50224257 50224331 2 2 1 0 1 62 -chr22 50279012 50279629 2 2 1 1 0 6 -chr22 50279777 50280004 2 2 1 1 0 6 -chr22 50280072 50280488 2 2 1 1 0 67 -chr22 50386257 50407997 2 2 1 1 0 20 -chr22 50408897 50450302 2 2 1 1 0 56 -chr22 50414690 50416091 1 1 1 1 0 66 -chr22 50416158 50418866 1 1 1 1 0 18 -chr22 50418980 50419348 1 1 1 1 0 28 -chr22 50466483 50466604 2 2 1 1 0 48 -chr22 50466711 50467337 2 2 1 1 0 12 -chr22 50517483 50517576 1 1 1 1 0 52 -chr22 50517662 50517740 1 1 1 1 0 13 -chr22 50518053 50518132 1 1 1 1 0 72 -chr22 50522040 50522180 1 1 1 1 0 33 -chr22 50522252 50522342 1 3 1 1 0 43 -chr22 50722438 50730720 1 1 1 1 0 54 diff --git a/tests/fixtures/splicing_calling/psichomics/chr22_suppa_annotation.rds b/tests/fixtures/splicing_calling/psichomics/chr22_suppa_annotation.rds deleted file mode 100644 index 54ca9334b..000000000 Binary files a/tests/fixtures/splicing_calling/psichomics/chr22_suppa_annotation.rds and /dev/null differ diff --git a/tests/fixtures/splicing_calling/psichomics/expected_junctions.txt b/tests/fixtures/splicing_calling/psichomics/expected_junctions.txt deleted file mode 100644 index 5cf52dc29..000000000 --- a/tests/fixtures/splicing_calling/psichomics/expected_junctions.txt +++ /dev/null @@ -1,693 +0,0 @@ -Junction ID SAMPLE_001. SAMPLE_002. -chr22:11478699:11478784:- 0 1 -chr22:11478905:11478991:- 0 1 -chr22:11869898:11873841:+ 1 0 -chr22:11873925:11876104:+ 1 0 -chr22:11876132:11876224:+ 2 0 -chr22:11876296:11882268:+ 2 0 -chr22:11882338:11886401:+ 1 0 -chr22:11890230:11891782:+ 1 0 -chr22:11903142:11903787:+ 0 1 -chr22:11904000:11905337:+ 1 0 -chr22:12108048:12110446:- 1 0 -chr22:12314919:12319407:- 1 6 -chr22:12314919:12351352:- 1 0 -chr22:12319667:12364415:+ 0 0 -chr22:12496723:12499630:+ 0 1 -chr22:12512850:12549904:- 0 0 -chr22:12544736:12634287:- 2 0 -chr22:12602816:12604670:+ 0 1 -chr22:12604739:12615409:+ 0 1 -chr22:15154620:15157696:- 1 0 -chr22:15179527:15181235:+ 0 1 -chr22:15204086:15216345:+ 0 0 -chr22:15215212:15224213:- 0 1 -chr22:15216221:15225211:- 3 0 -chr22:15216377:15225367:+ 0 2 -chr22:15497663:15536499:- 0 0 -chr22:15624069:15624538:- 1 0 -chr22:15628578:15629736:- 0 1 -chr22:15931907:15980704:+ 0 0 -chr22:15968413:15974956:- 0 1 -chr22:15970682:15972222:- 1 0 -chr22:15975051:15978297:- 0 1 -chr22:15986485:15986828:+ 0 0 -chr22:15986485:15988024:+ 0 0 -chr22:15986485:15988706:+ 0 0 -chr22:15990051:15990567:- 0 0 -chr22:16015722:16039594:- 0 0 -chr22:16064637:16071770:+ 1 0 -chr22:16072822:16093710:+ 1 0 -chr22:16168026:16188605:- 1 0 -chr22:16168500:16189080:+ 0 0 -chr22:16257034:16303780:+ 1 0 -chr22:16448462:16494313:- 0 2 -chr22:16448515:16494366:- 0 1 -chr22:16449557:16497249:+ 1 0 -chr22:16451635:16770384:- 0 0 -chr22:16451668:16770417:- 5 0 -chr22:16451948:16454634:- 0 1 -chr22:16452844:16479533:- 0 0 -chr22:16452844:16480481:- 0 0 -chr22:16454318:16515914:- 3 0 -chr22:16455436:16480377:- 0 1 -chr22:16479108:16480061:- 1 0 -chr22:16479108:16516735:- 1 0 -chr22:16479420:16480370:- 0 0 -chr22:16480032:16516707:- 0 0 -chr22:16561785:16562233:+ 0 1 -chr22:16634140:16666767:- 1 0 -chr22:16663721:16709954:- 1 2 -chr22:16663918:16710150:+ 0 0 -chr22:16664773:16770384:- 0 0 -chr22:16702203:16703993:- 1 0 -chr22:16942268:16979013:+ 1 0 -chr22:17006086:17029340:- 0 0 -chr22:17207290:17209356:- 1 0 -chr22:17505016:17524118:+ 1 0 -chr22:17563713:17569924:+ 1 0 -chr22:17563713:17579745:+ 2 0 -chr22:17581159:17581358:+ 0 1 -chr22:17581413:17582563:+ 0 1 -chr22:17583534:17587136:+ 0 1 -chr22:17592736:17594529:- 0 1 -chr22:17594616:17598194:- 0 1 -chr22:17598288:17600027:- 2 0 -chr22:17600095:17601092:- 2 0 -chr22:17601181:17612812:- 2 0 -chr22:17612878:17613211:- 1 0 -chr22:17613320:17619461:- 2 0 -chr22:17619526:17628603:- 2 0 -chr22:17631913:17632946:+ 1 0 -chr22:17738229:17739349:- 0 1 -chr22:17810813:17816690:- 0 1 -chr22:17816784:17817311:- 0 1 -chr22:17872023:17885878:- 1 0 -chr22:17886051:17887170:- 1 0 -chr22:17887232:17887323:- 1 0 -chr22:17891632:17893808:- 1 0 -chr22:17896981:17899448:- 1 0 -chr22:17904839:17906549:- 1 0 -chr22:18052944:18053103:+ 1 0 -chr22:18053043:18053204:- 0 1 -chr22:18093277:18093588:- 1 0 -chr22:18124304:18126354:+ 1 0 -chr22:18156479:18156582:+ 1 0 -chr22:18156581:18156684:+ 0 1 -chr22:18536808:18537292:- 0 0 -chr22:18980780:18981236:- 0 1 -chr22:18982578:18983092:- 1 0 -chr22:19057162:19063202:- 1 0 -chr22:19063278:19064848:- 1 0 -chr22:19176693:19176846:- 1 0 -chr22:19176950:19177120:- 1 0 -chr22:19361341:19361727:- 0 1 -chr22:19361931:19375631:- 0 1 -chr22:19388554:19392101:- 1 0 -chr22:19392214:19394342:- 1 0 -chr22:19450744:19454749:- 1 0 -chr22:19454830:19455680:- 1 0 -chr22:19455768:19456587:- 0 0 -chr22:19471808:19475068:- 0 1 -chr22:19475100:19475470:- 0 1 -chr22:19720238:19720320:+ 1 1 -chr22:19720666:19720768:+ 0 1 -chr22:19721957:19722237:+ 1 0 -chr22:19722339:19722428:+ 1 0 -chr22:19941897:19961199:+ 0 1 -chr22:19961289:19962527:+ 0 1 -chr22:20043443:20047970:+ 0 1 -chr22:20141530:20142756:+ 1 0 -chr22:20465576:20471350:- 1 0 -chr22:20471515:20488985:- 1 0 -chr22:20507746:20537117:+ 1 0 -chr22:20537204:20551436:+ 2 0 -chr22:20551487:20553145:+ 1 0 -chr22:20553174:20554936:+ 1 0 -chr22:20573198:20595472:- 1 0 -chr22:20624185:20626096:- 1 0 -chr22:20708098:20709296:- 2 0 -chr22:20709379:20709908:- 2 0 -chr22:20709997:20710699:- 1 0 -chr22:20711461:20712486:- 0 0 -chr22:20714700:20717708:- 1 0 -chr22:20717778:20718693:- 1 1 -chr22:20718822:20721298:- 1 1 -chr22:20727864:20729313:- 2 1 -chr22:20729506:20729632:- 4 0 -chr22:20734194:20734395:- 1 0 -chr22:20734553:20742228:- 3 0 -chr22:20742355:20742608:- 1 0 -chr22:20742764:20744628:- 2 1 -chr22:20744720:20747583:- 5 1 -chr22:20747702:20749905:- 2 0 -chr22:20749994:20751293:- 1 2 -chr22:20751376:20751674:- 0 1 -chr22:20751755:20752903:- 2 1 -chr22:20753027:20753110:- 3 2 -chr22:20753180:20761304:- 1 1 -chr22:20761386:20764817:- 0 1 -chr22:20764950:20765100:- 1 0 -chr22:20765236:20765585:- 1 0 -chr22:20765693:20793193:- 4 0 -chr22:20793243:20796146:- 2 0 -chr22:20796314:20798584:- 1 3 -chr22:20799276:20799671:- 2 0 -chr22:20799766:20801973:- 1 0 -chr22:20805165:20807362:- 0 1 -chr22:20811032:20813358:- 1 1 -chr22:20813506:20818483:- 3 0 -chr22:20818549:20819641:- 4 0 -chr22:20819900:20820539:- 1 0 -chr22:20834655:20838615:- 1 0 -chr22:20911254:21524717:+ 0 0 -chr22:20977776:20977888:+ 1 0 -chr22:20990525:20991628:+ 0 1 -chr22:21476160:21476644:- 0 0 -chr22:21476741:21477790:- 0 0 -chr22:21476764:21477790:- 0 0 -chr22:21592956:21610857:+ 1 0 -chr22:21611043:21621515:+ 1 0 -chr22:21694817:21694937:+ 1 0 -chr22:21695070:21695394:+ 1 0 -chr22:21708570:21721655:- 0 1 -chr22:21723107:22533193:- 21 13 -chr22:21772982:21788257:- 1 0 -chr22:21788388:21788694:- 1 0 -chr22:21806039:21807664:- 0 2 -chr22:22298211:22303224:+ 3 0 -chr22:22303297:22303943:+ 3 1 -chr22:22475589:22478041:- 0 1 -chr22:22479999:22480320:+ 1 0 -chr22:22625795:22626336:- 0 0 -chr22:22972280:23005787:- 1 0 -chr22:23132888:23261941:+ 26 22 -chr22:23150154:23152461:+ 1 0 -chr22:23152526:23153033:+ 2 0 -chr22:23153134:23155968:+ 1 0 -chr22:23156032:23157992:+ 1 0 -chr22:23158043:23158898:+ 1 0 -chr22:23158979:23159163:+ 1 0 -chr22:23261054:23261355:+ 1 0 -chr22:23261540:23268408:+ 0 1 -chr22:23271592:23273081:+ 0 1 -chr22:23273133:23273634:+ 0 1 -chr22:23285201:23287159:+ 2 0 -chr22:23287278:23288097:+ 1 0 -chr22:23288172:23289517:+ 3 0 -chr22:23289621:23290339:+ 2 0 -chr22:23292638:23295024:+ 1 0 -chr22:23295155:23309424:+ 0 1 -chr22:23309483:23310324:+ 0 1 -chr22:23313021:23313968:+ 0 1 -chr22:23314073:23314552:+ 0 1 -chr22:23488858:23498484:+ 1 0 -chr22:23546895:23547898:- 0 1 -chr22:23709867:23714187:- 1 0 -chr22:23714342:23715009:- 1 0 -chr22:23884429:23884649:+ 1 0 -chr22:23958701:23960294:- 0 0 -chr22:23960381:23961020:- 0 0 -chr22:23971623:23973768:- 1 0 -chr22:23980309:23980948:+ 0 0 -chr22:23981035:23982628:- 0 0 -chr22:24011728:24035444:+ 1 0 -chr22:24035520:24036089:+ 1 0 -chr22:24036181:24038348:+ 1 0 -chr22:24043084:24049091:+ 0 1 -chr22:24049220:24050825:+ 1 0 -chr22:24050974:24054873:+ 0 1 -chr22:24063146:24064035:+ 1 0 -chr22:24064187:24066987:+ 1 0 -chr22:24225652:24226076:- 0 2 -chr22:24270983:24302195:+ 0 1 -chr22:24302384:24313313:+ 1 0 -chr22:24549001:24555615:- 0 1 -chr22:24583808:24607954:+ 1 0 -chr22:24597213:24641898:- 0 0 -chr22:24597616:24642942:+ 0 1 -chr22:24644799:24645636:+ 1 0 -chr22:24645745:24647003:+ 1 0 -chr22:24847796:24850280:+ 2 0 -chr22:24855063:24855285:+ 2 0 -chr22:25049364:25170820:+ 0 1 -chr22:25170938:25174240:+ 1 0 -chr22:25178527:25178552:+ 0 1 -chr22:25376008:25381381:- 0 1 -chr22:25672347:25674437:+ 1 0 -chr22:25674528:25678816:+ 1 0 -chr22:25711163:25714408:+ 1 0 -chr22:25714570:25718245:+ 1 0 -chr22:25718381:25721284:+ 3 0 -chr22:26191699:26219906:- 1 0 -chr22:26293146:26294292:+ 0 1 -chr22:26297080:26298984:+ 0 2 -chr22:26299169:26305979:+ 0 1 -chr22:26313902:26340436:+ 0 1 -chr22:26365566:26375575:+ 1 0 -chr22:26375689:26377673:+ 2 0 -chr22:26377775:26380266:+ 1 0 -chr22:26422239:26422568:- 1 1 -chr22:26502052:26503666:- 0 1 -chr22:26503793:26506303:- 0 1 -chr22:26526267:26528214:- 0 1 -chr22:26528262:26532695:- 0 1 -chr22:26532745:26536288:- 0 1 -chr22:26657654:26660699:+ 1 0 -chr22:26657654:26663316:+ 1 0 -chr22:26660816:26663316:+ 1 0 -chr22:26663398:26665457:+ 1 0 -chr22:26663398:26665531:+ 1 0 -chr22:26666937:26667185:+ 1 0 -chr22:26666937:26668158:+ 1 0 -chr22:26667310:26668158:+ 1 0 -chr22:26672987:26693681:+ 0 1 -chr22:27858509:27860131:- 0 1 -chr22:27898025:27910964:- 0 1 -chr22:28036843:28039912:- 1 2 -chr22:28036891:28086883:- 0 0 -chr22:28037498:28087493:+ 0 0 -chr22:28037839:28087834:+ 2 0 -chr22:28038097:28088092:+ 0 1 -chr22:28038395:28041460:- 0 0 -chr22:28039958:28086883:- 0 0 -chr22:28040566:28087493:+ 0 1 -chr22:28041005:28087936:- 0 1 -chr22:28083623:28133337:+ 1 0 -chr22:28096408:28098915:- 0 1 -chr22:28101280:28105279:- 0 1 -chr22:28133486:28163921:- 1 0 -chr22:28134730:28165211:- 1 0 -chr22:28164005:28191651:- 1 0 -chr22:28164977:28192592:- 0 0 -chr22:28164977:28210439:- 0 0 -chr22:28168701:28196318:- 0 0 -chr22:28168701:28214161:- 0 0 -chr22:28168701:28826174:- 1 0 -chr22:28192313:28210161:+ 0 1 -chr22:28507932:28530932:- 1 0 -chr22:28807708:28847633:- 0 1 -chr22:28987201:29042495:+ 1 0 -chr22:29098953:29121357:+ 0 1 -chr22:29121481:29125263:+ 0 1 -chr22:29215039:29231020:+ 1 0 -chr22:29268349:29272216:+ 1 0 -chr22:29272252:29272380:+ 1 0 -chr22:29272431:29273741:+ 1 0 -chr22:29273864:29278030:+ 0 1 -chr22:29274282:29278030:+ 0 0 -chr22:29287134:29288606:+ 0 1 -chr22:29334410:29338990:- 1 0 -chr22:29339133:29339754:- 0 1 -chr22:29339774:29340656:- 0 1 -chr22:29340857:29341501:- 1 0 -chr22:29350150:29351171:- 1 0 -chr22:29351266:29351705:- 1 1 -chr22:29351825:29354650:- 0 1 -chr22:29354871:29358726:- 0 1 -chr22:29358971:29359824:- 0 2 -chr22:29359959:29363001:- 1 2 -chr22:29543542:29544460:- 0 1 -chr22:29544603:29549052:- 0 1 -chr22:29549158:29550728:- 0 1 -chr22:29560828:29561171:- 0 1 -chr22:29561202:29561506:- 0 1 -chr22:29561646:29561792:- 0 1 -chr22:29639212:29642202:+ 1 0 -chr22:29642285:29654657:+ 1 0 -chr22:29654725:29655594:+ 1 0 -chr22:29655676:29658189:+ 1 0 -chr22:29658264:29661205:+ 1 0 -chr22:29665064:29668333:+ 1 0 -chr22:29668446:29671826:+ 1 0 -chr22:29673486:29674836:+ 1 0 -chr22:29731354:29738330:- 1 0 -chr22:29738441:29740650:- 1 0 -chr22:29806290:29806485:- 0 1 -chr22:29806553:29806797:- 0 1 -chr22:29934117:29940031:+ 0 0 -chr22:29943966:29957036:+ 0 1 -chr22:29957088:29970976:+ 0 1 -chr22:29991670:29998761:+ 1 0 -chr22:30002993:30007114:+ 1 0 -chr22:30009129:30012368:+ 1 0 -chr22:30013541:30016528:+ 1 0 -chr22:30020884:30022029:+ 1 1 -chr22:30022139:30022609:+ 0 1 -chr22:30339251:30340196:- 2 0 -chr22:30340381:30340695:- 2 0 -chr22:30342350:30342805:- 1 0 -chr22:30342879:30344933:- 1 0 -chr22:30529349:30532525:- 1 0 -chr22:30532713:30532797:- 1 0 -chr22:30787608:30837198:+ 1 0 -chr22:30971779:30972855:+ 1 0 -chr22:31099179:31099745:+ 0 1 -chr22:31099896:31100885:+ 0 1 -chr22:31212424:31225720:+ 1 0 -chr22:31258426:31259121:+ 1 1 -chr22:31260077:31262134:+ 0 1 -chr22:31262239:31262595:+ 0 1 -chr22:31272704:31273452:+ 1 0 -chr22:31273507:31275151:+ 1 0 -chr22:31327309:31328787:- 0 1 -chr22:31420425:31423280:+ 0 1 -chr22:31426782:31427060:+ 0 2 -chr22:31442118:31442962:- 1 1 -chr22:31450360:31454144:- 1 0 -chr22:31455315:31455852:- 1 0 -chr22:31619836:31620553:- 0 1 -chr22:31620713:31620996:- 0 1 -chr22:31621142:31621334:- 0 1 -chr22:31837155:31838685:+ 1 0 -chr22:31901802:31905984:+ 1 0 -chr22:31906066:31906205:+ 1 0 -chr22:31934449:31937916:- 0 1 -chr22:32475124:32478981:+ 1 0 -chr22:32484124:32485068:+ 0 0 -chr22:32491181:32493105:+ 1 0 -chr22:32493281:32498144:+ 1 0 -chr22:32849534:32857249:+ 0 1 -chr22:32941560:32942084:+ 1 0 -chr22:32946476:32964215:+ 1 0 -chr22:33138422:33156651:- 1 0 -chr22:33277255:33283202:- 1 0 -chr22:33316248:33337646:- 0 1 -chr22:33382044:33384192:- 1 0 -chr22:33650668:33761371:- 1 0 -chr22:33761558:33919995:- 1 0 -chr22:34203459:34210230:- 1 0 -chr22:34550602:34612529:+ 6 0 -chr22:34550816:34559625:+ 1 1 -chr22:34550969:34559778:+ 0 0 -chr22:34612556:34678317:+ 0 0 -chr22:34613187:34678954:- 1 0 -chr22:34678316:34746584:+ 2 0 -chr22:34746583:34780037:+ 4 1 -chr22:34747996:34821456:+ 2 0 -chr22:34788547:34793902:- 1 1 -chr22:34793782:34821877:- 0 1 -chr22:35299980:35317877:+ 0 1 -chr22:35317961:35321959:+ 0 1 -chr22:35322037:35323028:+ 0 1 -chr22:35744249:35745923:- 1 0 -chr22:35745995:35746473:- 1 0 -chr22:35810004:35840192:- 1 0 -chr22:36203439:36203463:+ 1 0 -chr22:36289297:36291986:- 1 0 -chr22:36292234:36293329:- 1 0 -chr22:36301665:36302568:- 1 0 -chr22:36305102:36305930:- 0 1 -chr22:36320363:36320798:- 0 1 -chr22:36341526:36348904:- 0 2 -chr22:36498156:36501241:- 0 1 -chr22:36501407:36504098:- 0 1 -chr22:36504367:36504515:- 1 0 -chr22:36517431:36518763:- 1 0 -chr22:36518910:36519405:- 1 0 -chr22:36519537:36520576:- 1 0 -chr22:36520688:36523209:- 1 0 -chr22:36523980:36524596:- 1 0 -chr22:36524732:36525664:- 1 0 -chr22:36525709:36525999:- 1 0 -chr22:37056411:37057398:+ 1 0 -chr22:37057493:37059313:+ 1 0 -chr22:37618546:37620238:+ 1 0 -chr22:37620361:37620813:+ 1 0 -chr22:37623467:37623552:+ 1 0 -chr22:37623633:37624969:+ 1 0 -chr22:37632515:37632601:+ 0 1 -chr22:37675711:37676986:+ 2 0 -chr22:37677065:37678483:+ 2 1 -chr22:37678654:37679603:+ 0 1 -chr22:37755190:37755550:+ 0 1 -chr22:37755659:37757613:+ 0 1 -chr22:37819586:37827641:+ 0 1 -chr22:37849482:37850015:+ 1 0 -chr22:37849482:37851280:+ 0 0 -chr22:37850063:37851280:+ 2 0 -chr22:37850574:37851280:+ 0 0 -chr22:37863038:37863272:+ 1 0 -chr22:37863345:37870176:+ 1 0 -chr22:37870347:37874370:+ 1 0 -chr22:37876011:37877674:+ 1 0 -chr22:37878171:37886765:+ 0 1 -chr22:37886845:37888426:+ 0 1 -chr22:37932679:37932798:+ 0 1 -chr22:37932888:37933039:+ 0 1 -chr22:37933112:37937080:+ 0 1 -chr22:37958099:38063245:- 6 7 -chr22:38019711:38020569:- 1 0 -chr22:38072610:38073000:+ 1 0 -chr22:38073092:38073571:+ 1 0 -chr22:38112305:38112504:- 0 0 -chr22:38224979:38225424:- 0 1 -chr22:38230744:38231244:- 0 1 -chr22:38231334:38245935:- 0 1 -chr22:38294534:38298786:- 2 0 -chr22:38298934:38299895:- 2 1 -chr22:38299666:38344512:+ 1 0 -chr22:38300952:38302861:- 1 0 -chr22:38303420:38314082:- 0 1 -chr22:38314169:38317160:- 0 1 -chr22:38442365:38474898:+ 2 0 -chr22:38464738:38512095:- 1 0 -chr22:38486440:38487879:- 2 0 -chr22:38488115:38492056:- 0 2 -chr22:38492115:38493710:- 0 2 -chr22:38494131:38494630:- 0 1 -chr22:38494802:38494886:- 2 3 -chr22:38495046:38495796:- 2 0 -chr22:38495937:38498085:- 1 3 -chr22:38498150:38498440:- 4 2 -chr22:38498573:38499400:- 2 2 -chr22:38499499:38501130:- 1 2 -chr22:38501280:38505951:- 2 1 -chr22:38682996:38683767:+ 1 0 -chr22:38688001:38688935:- 1 0 -chr22:38689424:38699803:- 2 0 -chr22:38736380:38738173:- 0 1 -chr22:38739426:38739722:- 0 1 -chr22:38742555:38745684:- 2 1 -chr22:38745811:38748713:- 1 0 -chr22:38822833:38823083:- 2 0 -chr22:38823262:38826500:- 1 0 -chr22:38826747:38828287:- 1 1 -chr22:39109365:39109396:- 1 0 -chr22:39134473:39141371:- 1 0 -chr22:39141436:39149789:- 1 0 -chr22:39149832:39152376:- 1 0 -chr22:39312984:39313191:- 4 1 -chr22:39313310:39313634:- 4 3 -chr22:39313729:39314107:- 4 3 -chr22:39314208:39314686:- 0 2 -chr22:39314846:39315369:- 1 2 -chr22:39315555:39316706:- 0 1 -chr22:39316841:39317461:- 1 0 -chr22:39317629:39318400:- 2 0 -chr22:39350109:39374316:+ 1 0 -chr22:39376197:39381696:+ 1 0 -chr22:39415653:39416791:+ 0 1 -chr22:39417849:39418732:+ 0 1 -chr22:39486248:39487347:+ 0 2 -chr22:39512494:39513517:+ 1 0 -chr22:39520751:39521354:+ 1 1 -chr22:39672308:39672949:+ 1 0 -chr22:39674033:39677341:+ 1 0 -chr22:39677419:39677987:+ 1 0 -chr22:40178140:40246015:+ 0 1 -chr22:40277151:40277999:+ 1 1 -chr22:40278044:40279995:+ 1 1 -chr22:40280143:40281119:+ 0 1 -chr22:40280143:40285645:+ 1 0 -chr22:40285770:40300455:+ 0 1 -chr22:40312997:40315283:+ 0 1 -chr22:40315507:40315942:+ 0 1 -chr22:40316012:40321090:+ 0 1 -chr22:40363071:40364276:+ 0 1 -chr22:40364365:40364880:+ 0 1 -chr22:40365056:40366436:+ 0 1 -chr22:40370688:40400696:+ 0 1 -chr22:40400813:40401593:+ 0 1 -chr22:40402205:40404247:+ 0 1 -chr22:40409525:40409682:+ 0 1 -chr22:40429767:40431405:- 1 0 -chr22:40431480:40435499:- 1 0 -chr22:40435554:40463221:- 1 0 -chr22:40552367:40594674:- 0 1 -chr22:40815968:40837398:- 0 1 -chr22:40826666:40827096:- 1 0 -chr22:40827229:40829626:- 2 1 -chr22:40829674:40830840:- 2 1 -chr22:40830956:40832569:- 0 5 -chr22:40832671:40835560:- 0 3 -chr22:40835670:40835803:- 0 5 -chr22:40835887:40840626:- 1 2 -chr22:40840692:40844839:- 1 2 -chr22:40844909:40848294:- 1 2 -chr22:40848369:40850823:- 1 0 -chr22:40865605:40883640:+ 0 1 -chr22:40882177:40886313:+ 0 1 -chr22:40886515:40907587:+ 0 1 -chr22:40907649:40909122:+ 0 1 -chr22:41135906:41137653:+ 0 1 -chr22:41137790:41140140:+ 0 1 -chr22:41140257:41141048:+ 0 2 -chr22:41168867:41169503:+ 1 0 -chr22:41169616:41170406:+ 1 2 -chr22:41170571:41172499:+ 0 1 -chr22:41172663:41173623:+ 1 0 -chr22:41224251:41224725:+ 1 1 -chr22:41224801:41224967:+ 1 1 -chr22:41229656:41230139:+ 1 0 -chr22:41246672:41249330:- 0 1 -chr22:41249451:41249729:- 0 2 -chr22:41251109:41252872:- 2 0 -chr22:41252991:41254308:- 2 0 -chr22:41348167:41349120:+ 1 1 -chr22:41351646:41355469:+ 0 1 -chr22:41355602:41355757:+ 0 2 -chr22:41394316:41395745:+ 1 1 -chr22:41508049:41511876:+ 3 0 -chr22:41511968:41515377:+ 2 0 -chr22:41515535:41515767:+ 1 0 -chr22:41517631:41518481:+ 0 2 -chr22:41518572:41520171:+ 0 4 -chr22:41520276:41522830:+ 0 4 -chr22:41522982:41523830:+ 0 1 -chr22:41522987:41523205:+ 2 2 -chr22:41523278:41523830:+ 1 1 -chr22:41523941:41524846:+ 1 2 -chr22:41524968:41525193:+ 1 0 -chr22:41525348:41526262:+ 0 1 -chr22:41526453:41527288:+ 0 1 -chr22:41527420:41527901:+ 0 1 -chr22:41577440:41577808:- 0 1 -chr22:41604153:41607262:- 1 0 -chr22:41621345:41621990:+ 1 0 -chr22:41622086:41628118:+ 1 0 -chr22:41637791:41646896:+ 1 0 -chr22:41647082:41650723:+ 0 1 -chr22:41653690:41656903:+ 1 0 -chr22:41658352:41661331:+ 0 1 -chr22:41661444:41663622:+ 1 1 -chr22:41675195:41680244:- 1 1 -chr22:41690843:41693463:+ 0 1 -chr22:41867280:41868611:+ 0 2 -chr22:41868792:41870889:+ 0 1 -chr22:41874019:41875337:+ 1 0 -chr22:41875451:41875543:+ 2 0 -chr22:41875724:41877229:+ 0 0 -chr22:41877421:41877942:+ 2 0 -chr22:41897161:41898649:+ 0 1 -chr22:41898781:41900330:+ 0 1 -chr22:41986112:41987206:+ 1 0 -chr22:41987287:41987622:+ 1 0 -chr22:41989684:41991573:+ 3 0 -chr22:41991668:41992664:+ 3 0 -chr22:41992763:41994290:+ 1 0 -chr22:41994341:41994621:+ 4 0 -chr22:41994714:41996902:+ 1 0 -chr22:42086314:42087060:- 0 1 -chr22:42087175:42090606:- 0 1 -chr22:42514304:42514682:- 1 0 -chr22:42514779:42515151:- 1 0 -chr22:42558457:42560186:+ 0 1 -chr22:42560265:42571121:+ 0 1 -chr22:42588195:42601251:- 41 0 -chr22:42627389:42627605:- 1 1 -chr22:42627688:42628152:- 1 1 -chr22:42628281:42630882:- 1 0 -chr22:42630988:42631378:- 1 1 -chr22:42631450:42636715:- 0 1 -chr22:42638427:42652596:+ 0 0 -chr22:42758544:42783297:+ 0 1 -chr22:42817857:42822270:- 0 1 -chr22:42822409:42823656:- 0 1 -chr22:42871469:42876137:- 1 0 -chr22:42876333:42879048:- 1 0 -chr22:42882304:42884386:- 0 1 -chr22:42884561:42888643:- 1 0 -chr22:42966244:43003478:- 0 0 -chr22:43051887:43059384:- 1 0 -chr22:43059527:43063813:- 1 1 -chr22:43063921:43064190:- 1 1 -chr22:43069844:43075474:- 1 0 -chr22:43695768:43711475:- 1 0 -chr22:43716972:43731699:- 0 0 -chr22:43765393:43782180:- 1 0 -chr22:43782325:43808995:- 1 0 -chr22:43826113:43829060:- 0 1 -chr22:43955598:43963286:+ 1 0 -chr22:43963396:43964452:+ 1 0 -chr22:43964553:43968731:+ 1 0 -chr22:43972342:43972871:+ 1 0 -chr22:44612437:44612538:- 1 0 -chr22:44910703:44912635:- 0 0 -chr22:45116357:45121709:- 1 0 -chr22:45178900:45181286:+ 1 0 -chr22:45181367:45183402:+ 1 0 -chr22:45197216:45197790:- 1 0 -chr22:45197948:45199848:- 0 1 -chr22:45200035:45202990:- 1 0 -chr22:45203985:45205217:- 0 2 -chr22:45205318:45205630:- 1 1 -chr22:45205707:45205793:- 0 1 -chr22:45205912:45211956:- 0 1 -chr22:45533164:45533761:+ 0 1 -chr22:45689903:45692996:+ 0 1 -chr22:45693078:45700282:+ 0 1 -chr22:45702847:45718413:+ 0 2 -chr22:45718493:45729425:+ 0 1 -chr22:45729590:45738731:+ 1 0 -chr22:45738839:45740369:+ 2 0 -chr22:46350463:46352121:+ 1 0 -chr22:46352174:46352264:+ 1 0 -chr22:46352330:46353767:+ 1 0 -chr22:46353867:46355444:+ 1 0 -chr22:46439006:46440448:- 0 1 -chr22:46491495:46531437:- 0 1 -chr22:46665706:46666825:+ 1 1 -chr22:46666873:46668096:+ 1 1 -chr22:46668167:46668689:+ 1 0 -chr22:46668908:46672843:+ 0 1 -chr22:46690200:46691572:- 1 0 -chr22:46723477:46768344:+ 0 1 -chr22:46894428:46894784:+ 1 0 -chr22:49213905:49213937:- 0 1 -chr22:49669614:49669697:- 0 1 -chr22:49669614:49669738:- 0 1 -chr22:49669796:49669949:+ 0 1 -chr22:50074332:50076841:- 0 1 -chr22:50076912:50077401:- 0 1 -chr22:50133808:50155738:+ 1 0 -chr22:50224256:50224332:- 0 0 -chr22:50231074:50243610:- 1 0 -chr22:50255370:50255453:- 1 0 -chr22:50279011:50279630:- 0 1 -chr22:50279776:50280005:- 0 1 -chr22:50280071:50280489:- 0 1 -chr22:50386256:50407998:- 0 1 -chr22:50394135:50406689:+ 1 0 -chr22:50408896:50450303:- 0 1 -chr22:50414689:50416092:+ 0 1 -chr22:50416157:50418867:+ 0 1 -chr22:50418979:50419349:+ 0 1 -chr22:50439857:50439961:+ 1 0 -chr22:50440049:50440822:+ 1 0 -chr22:50466482:50466605:- 0 1 -chr22:50466710:50467338:- 0 1 -chr22:50517482:50517577:+ 0 1 -chr22:50517661:50517741:+ 0 1 -chr22:50518052:50518133:+ 0 1 -chr22:50522039:50522181:+ 0 1 -chr22:50522251:50522343:+ 0 1 -chr22:50600883:50601789:+ 1 0 -chr22:50601894:50603223:+ 1 0 -chr22:50704248:50704738:+ 1 0 -chr22:50704862:50704964:+ 1 0 -chr22:50722437:50724127:+ 0 0 -chr22:50722437:50730721:+ 0 1 -chr22:50768874:50769041:- 1 0 -chr22:50769124:50769455:- 1 0 -chr22:50785293:50798655:+ 1 0 diff --git a/tests/fixtures/splicing_calling/psichomics/quantify_psi_junctions.txt b/tests/fixtures/splicing_calling/psichomics/quantify_psi_junctions.txt deleted file mode 100644 index e378f0906..000000000 --- a/tests/fixtures/splicing_calling/psichomics/quantify_psi_junctions.txt +++ /dev/null @@ -1,221 +0,0 @@ -Junction ID SAMPLE_001 SAMPLE_002 -chr22:16638740:16647605:+ 34 33 -chr22:16673752:16675123:- 13 19 -chr22:17638886:17655662:+ 16 24 -chr22:17655832:17683214:+ 10 29 -chr22:17683321:17688986:+ 11 14 -chr22:17683321:17696141:+ 38 34 -chr22:17683321:17702243:+ 32 14 -chr22:17689142:17696141:+ 20 16 -chr22:17689142:17702243:+ 23 40 -chr22:17696210:17702243:+ 27 14 -chr22:21309524:21311740:- 36 38 -chr22:21321719:21322303:- 28 21 -chr22:23150154:23152461:+ 10 39 -chr22:23856991:23857421:+ 30 23 -chr22:23862202:23867735:+ 30 37 -chr22:23877171:23877385:+ 19 15 -chr22:23877171:23877721:+ 31 29 -chr22:23882869:23883772:+ 23 25 -chr22:24270983:24276700:+ 19 24 -chr22:24302384:24311994:+ 16 11 -chr22:24321323:24321405:+ 18 10 -chr22:24369320:24411588:+ 24 12 -chr22:26622635:26623234:+ 30 33 -chr22:26672987:26693681:+ 14 18 -chr22:26672987:26711830:+ 18 15 -chr22:26717459:26718140:+ 34 26 -chr22:28696987:28699838:- 23 29 -chr22:28703566:28710006:- 14 40 -chr22:28719485:28724886:- 14 14 -chr22:28719485:28724977:- 11 18 -chr22:28721631:28724977:- 19 36 -chr22:28730548:28734403:- 39 21 -chr22:28734727:28741769:- 34 40 -chr22:28738038:28741769:- 21 30 -chr22:28738197:28741769:- 24 17 -chr22:29472446:29478010:- 10 13 -chr22:29472449:29478010:- 29 26 -chr22:29604112:29628658:+ 12 18 -chr22:29604112:29636751:+ 15 38 -chr22:29604112:29639090:+ 19 30 -chr22:29636876:29639090:+ 19 10 -chr22:29654725:29654975:+ 15 30 -chr22:29658264:29661205:+ 24 29 -chr22:29678323:29681439:+ 29 19 -chr22:29681601:29683020:+ 37 23 -chr22:30410679:30416234:+ 29 19 -chr22:30426844:30427122:+ 35 34 -chr22:30426844:30427171:+ 21 33 -chr22:30426844:30427240:+ 34 30 -chr22:30663260:30663404:- 32 30 -chr22:30664080:30666807:- 15 31 -chr22:30665121:30667462:- 34 15 -chr22:30764392:30770583:+ 17 27 -chr22:30770681:30773123:+ 21 25 -chr22:30890973:30893122:+ 34 39 -chr22:30893733:30893817:+ 32 39 -chr22:34017527:34061275:+ 33 38 -chr22:34017527:34083969:+ 15 11 -chr22:34084027:34100358:+ 35 17 -chr22:34100441:34102623:+ 16 39 -chr22:34100441:34107939:+ 28 23 -chr22:34100441:34109326:+ 19 13 -chr22:34100441:34151865:+ 15 35 -chr22:34100441:34161596:+ 33 17 -chr22:34109434:34147996:+ 23 30 -chr22:34109434:34161596:+ 11 14 -chr22:34148132:34149924:+ 22 17 -chr22:34148132:34161596:+ 27 33 -chr22:34174447:34175390:+ 31 16 -chr22:34174447:34188185:+ 23 29 -chr22:34174447:34205473:+ 15 13 -chr22:34174447:34206082:+ 10 26 -chr22:34175440:34205473:+ 28 19 -chr22:34206194:34213812:+ 28 13 -chr22:36468717:36476733:- 17 34 -chr22:37184437:37185218:- 15 18 -chr22:37186046:37188163:- 32 36 -chr22:37808163:37809949:+ 40 18 -chr22:37808163:37810027:+ 21 24 -chr22:38751035:38751210:- 15 34 -chr22:38754706:38755763:- 17 15 -chr22:38986412:38989457:+ 16 39 -chr22:39520751:39521258:+ 20 15 -chr22:39520751:39521354:+ 26 13 -chr22:39520751:39521372:+ 13 12 -chr22:39520751:39521375:+ 22 38 -chr22:39520751:39521432:+ 17 12 -chr22:42270025:42273894:+ 34 22 -chr22:42270025:42274656:+ 25 18 -chr22:46268591:46269142:+ 34 34 -chr22:46281718:46281971:+ 32 16 -chr22:46289899:46292203:+ 23 34 -chr22:16647785:16648527:+ 29 40 -chr22:16671588:16673600:- 16 23 -chr22:17689142:17726677:+ 38 14 -chr22:17702386:17726677:+ 22 37 -chr22:17696210:17726677:+ 37 40 -chr22:21307025:21307559:- 31 16 -chr22:21319356:21321592:- 38 37 -chr22:23152526:23153033:+ 37 29 -chr22:23857531:23862104:+ 21 39 -chr22:23867899:23868481:+ 25 29 -chr22:23877869:23882459:+ 10 38 -chr22:23883873:23883949:+ 22 40 -chr22:24276803:24302195:+ 30 19 -chr22:24312131:24313313:+ 40 37 -chr22:24322918:24324220:+ 15 17 -chr22:24411704:24412648:+ 26 10 -chr22:26623352:26625481:+ 18 37 -chr22:26693836:26717253:+ 16 23 -chr22:26712008:26717253:+ 32 40 -chr22:26718231:26774156:+ 28 21 -chr22:28695873:28696901:- 31 38 -chr22:28699937:28703505:- 27 25 -chr22:28712017:28719395:- 35 21 -chr22:28719485:28721518:- 25 19 -chr22:28725367:28730420:- 20 11 -chr22:28725367:28730456:- 39 35 -chr22:28725367:28734403:- 19 26 -chr22:28734727:28737885:- 40 10 -chr22:28734727:28738082:- 16 37 -chr22:29442129:29472306:- 37 13 -chr22:29628773:29636751:+ 28 30 -chr22:29636876:29642202:+ 38 30 -chr22:29639212:29642202:+ 11 31 -chr22:29655080:29655594:+ 19 34 -chr22:29661339:29664990:+ 10 33 -chr22:29681601:29694752:+ 20 14 -chr22:29683064:29694752:+ 36 21 -chr22:29683079:29694752:+ 35 24 -chr22:30416403:30428462:+ 24 23 -chr22:30427403:30428462:+ 35 24 -chr22:30652297:30663013:- 38 26 -chr22:30652297:30663404:- 33 24 -chr22:30664080:30664955:- 19 27 -chr22:30770681:30870429:+ 25 10 -chr22:30773245:30870429:+ 30 17 -chr22:30893242:30893463:+ 21 30 -chr22:30894001:30905837:+ 40 33 -chr22:34061500:34083969:+ 16 19 -chr22:34100441:34171713:+ 33 16 -chr22:34102816:34107939:+ 30 16 -chr22:34107989:34109326:+ 37 36 -chr22:34107993:34109326:+ 31 20 -chr22:34109434:34171713:+ 17 27 -chr22:34151927:34161596:+ 10 18 -chr22:34161791:34171713:+ 28 29 -chr22:34148132:34171713:+ 35 11 -chr22:34150019:34161596:+ 12 14 -chr22:34175440:34206082:+ 20 38 -chr22:34188425:34218508:+ 10 20 -chr22:34205558:34206082:+ 38 11 -chr22:34206163:34218508:+ 23 29 -chr22:34206194:34218508:+ 31 36 -chr22:34213919:34218508:+ 15 12 -chr22:34213970:34218508:+ 37 24 -chr22:36467917:36468602:- 29 15 -chr22:37182735:37184337:- 18 39 -chr22:37185455:37185871:- 14 18 -chr22:37810157:37812887:+ 38 24 -chr22:38750320:38750898:- 23 37 -chr22:38752665:38754642:- 26 32 -chr22:38989610:38991332:+ 12 14 -chr22:39521671:39521773:+ 31 37 -chr22:42273974:42274656:+ 12 23 -chr22:42274821:42274988:+ 16 14 -chr22:46269289:46272335:+ 23 20 -chr22:46282151:46283973:+ 12 20 -chr22:46292328:46292791:+ 28 26 -chr22:16638740:16648527:+ 21 10 -chr22:16671588:16675123:- 26 35 -chr22:17638886:17683214:+ 18 22 -chr22:17655832:17702243:+ 37 10 -chr22:17683321:17726677:+ 27 28 -chr22:21307025:21311740:- 33 35 -chr22:21319356:21322303:- 31 32 -chr22:23150154:23153033:+ 26 13 -chr22:23856991:23862104:+ 27 25 -chr22:23862202:23868481:+ 32 26 -chr22:23877171:23882459:+ 24 36 -chr22:23882869:23883949:+ 36 34 -chr22:24270983:24302195:+ 16 16 -chr22:24302384:24313313:+ 24 40 -chr22:24321323:24324220:+ 29 15 -chr22:24369320:24412648:+ 34 38 -chr22:26622635:26625481:+ 33 29 -chr22:26672987:26717253:+ 28 25 -chr22:26717459:26774156:+ 30 11 -chr22:28695873:28699838:- 25 38 -chr22:28699937:28710006:- 28 22 -chr22:28712017:28724886:- 13 12 -chr22:28712017:28724977:- 11 19 -chr22:28725367:28741769:- 25 15 -chr22:29442129:29478010:- 10 37 -chr22:29604112:29642202:+ 21 16 -chr22:29654725:29655594:+ 16 26 -chr22:29658264:29664990:+ 18 10 -chr22:29678323:29694752:+ 37 32 -chr22:30410679:30428462:+ 35 39 -chr22:30426844:30428462:+ 22 10 -chr22:30652297:30666807:- 35 12 -chr22:30664080:30667462:- 11 20 -chr22:30764392:30870429:+ 11 22 -chr22:30890973:30893463:+ 28 32 -chr22:30893733:30905837:+ 26 27 -chr22:34017527:34100358:+ 11 14 -chr22:34084027:34171713:+ 20 37 -chr22:34174447:34218508:+ 40 35 -chr22:36467917:36476733:- 12 35 -chr22:37182735:37185218:- 12 25 -chr22:37185455:37188163:- 23 17 -chr22:37808163:37812887:+ 28 11 -chr22:38750320:38751210:- 22 13 -chr22:38752665:38755763:- 20 33 -chr22:38986412:38991332:+ 25 34 -chr22:39520751:39521773:+ 17 15 -chr22:42270025:42274988:+ 18 26 -chr22:46268591:46272335:+ 27 33 -chr22:46281718:46283973:+ 37 18 -chr22:46289899:46292791:+ 35 22 diff --git a/tests/fixtures/splicing_normalization/expected_bedded.txt.gz b/tests/fixtures/splicing_normalization/expected_bedded.txt.gz deleted file mode 100644 index 3f25c21ad..000000000 Binary files a/tests/fixtures/splicing_normalization/expected_bedded.txt.gz and /dev/null differ diff --git a/tests/fixtures/splicing_normalization/psi_raw_data.tsv.gz b/tests/fixtures/splicing_normalization/psi_raw_data.tsv.gz deleted file mode 100644 index 49cfc7af2..000000000 Binary files a/tests/fixtures/splicing_normalization/psi_raw_data.tsv.gz and /dev/null differ diff --git a/tests/fixtures/twas/expected/gwas_sumstats.chr22.rds b/tests/fixtures/twas/expected/gwas_sumstats.chr22.rds index acefb9729..3f2d4b6ac 100644 Binary files a/tests/fixtures/twas/expected/gwas_sumstats.chr22.rds and b/tests/fixtures/twas/expected/gwas_sumstats.chr22.rds differ diff --git a/tests/fixtures/twas/protocol_example.twas.xqtl_meta.TAB.tsv b/tests/fixtures/twas/protocol_example.twas.xqtl_meta.TAB.tsv index 3f239388a..d9353e480 100644 --- a/tests/fixtures/twas/protocol_example.twas.xqtl_meta.TAB.tsv +++ b/tests/fixtures/twas/protocol_example.twas.xqtl_meta.TAB.tsv @@ -1,2 +1,2 @@ #chr start end region_id TSS original_data contexts -chr22 10000000 19000000 ENSG00000130538 15528191 /restricted/projectnb/xqtl/jaempawi/xqtl_protocol/toy_example/input/twas/protocol_example.twas.reshaped_toy.chr22_ENSG00000130538.univariate_twas_weights.rds bulk_rnaseq +chr22 10000000 19000000 ENSG00000130538 15528191 tests/fixtures/twas/protocol_example.twas.reshaped_toy.chr22_ENSG00000130538.univariate_twas_weights.rds bulk_rnaseq diff --git a/tests/fixtures/twas_manifest/expected/expected_manifest.tsv b/tests/fixtures/twas_manifest/expected/expected_manifest.tsv index 98c916d35..4b63aded8 100644 --- a/tests/fixtures/twas_manifest/expected/expected_manifest.tsv +++ b/tests/fixtures/twas_manifest/expected/expected_manifest.tsv @@ -1,3 +1,3 @@ # expected-output regression manifest — twas_manifest # columns: output mode rtol atol notes -twas_manifest.tsv tolerant 1e-6 1e-8 twas_manifest.R per-region TWAS manifest (region_id/genes/weight_files/gwas_*) from the twas gwas_meta + xqtl_meta; deterministic. Compared with normalize_paths=True — the weight_files column embeds the machine-specific absolute xQTL-weight path. +twas_manifest.tsv tolerant 1e-6 1e-8 twas_manifest.R per-region TWAS manifest (region_id/genes/weight_files/gwas_*) from the twas gwas_meta + xqtl_meta; deterministic. Compared with normalize_paths=True; both the weight_files and gwas_files columns carry the repo-relative fixture paths through from the input metas verbatim. diff --git a/tests/fixtures/twas_manifest/expected/twas_manifest.tsv b/tests/fixtures/twas_manifest/expected/twas_manifest.tsv index 55263a822..eb6f58bc2 100644 --- a/tests/fixtures/twas_manifest/expected/twas_manifest.tsv +++ b/tests/fixtures/twas_manifest/expected/twas_manifest.tsv @@ -1,2 +1,2 @@ region_id chrom start stop genes weight_files gwas_studies gwas_files gwas_mappings -chr22_10000000_19000000 chr22 10000000 19000000 ENSG00000130538 protocol_example.twas.reshaped_toy.chr22_ENSG00000130538.univariate_twas_weights.rds protocol_example_twas_chr22 tests/fixtures/twas/protocol_example.twas.gwas_sumstats.chr22.tsv.gz +chr22_10000000_19000000 chr22 10000000 19000000 ENSG00000130538 tests/fixtures/twas/protocol_example.twas.reshaped_toy.chr22_ENSG00000130538.univariate_twas_weights.rds protocol_example_twas_chr22 tests/fixtures/twas/protocol_example.twas.gwas_sumstats.chr22.tsv.gz diff --git a/tests/helpers/rds_compare.R b/tests/helpers/rds_compare.R index 2fb589673..5a624e504 100644 --- a/tests/helpers/rds_compare.R +++ b/tests/helpers/rds_compare.R @@ -30,7 +30,7 @@ normPaths <- length(args) >= 4L && !is.na(suppressWarnings(as.integer(args[[4L]] as.integer(args[[4L]]) == 1L # sortRows (optional 5th arg, "1"): canonicalize every data.frame's ROW ORDER (sort by # all columns) before comparing, for outputs whose rows are an unordered set emitted in a -# non-deterministic order (e.g. SUPPA/psichomics per-event-type tables). Opt-in, since row +# non-deterministic order (e.g. per-event-type tables). Opt-in, since row # order is meaningful in most outputs. sortRows <- length(args) >= 5L && !is.na(suppressWarnings(as.integer(args[[5L]]))) && as.integer(args[[5L]]) == 1L diff --git a/tests/notebooks/data_preprocessing/phenotype/test_gene_annotation.py b/tests/notebooks/data_preprocessing/phenotype/test_gene_annotation.py index 44049381e..ac5078935 100644 --- a/tests/notebooks/data_preprocessing/phenotype/test_gene_annotation.py +++ b/tests/notebooks/data_preprocessing/phenotype/test_gene_annotation.py @@ -101,34 +101,3 @@ def test_annotate_leafcutter_isoforms(run_sos, repo_root, tmp_path): _expect(repo_root, out / "protocol_example.leafcutter.phenotype.bed.phenotype_group.txt") -def test_annotate_psichomics_isoforms(run_sos, repo_root, tmp_path): - out = tmp_path / "out" - fx = repo_root / FX - p = run_sos(repo_root / NB, "annotate_psichomics_isoforms", - {**_base(repo_root, out), - "phenoFile": fx / "protocol_example.psichomics.phenotype.tsv", - "coordinate_annotation": fx / EXON}, - cwd=repo_root, timeout=600) - assert p.returncode == 0, p.stdout + p.stderr - assert (out / "protocol_example.psichomics.phenotype.formated.bed.gz").exists() - assert (out / "protocol_example.psichomics.phenotype.phenotype_group.txt").exists() - _expect(repo_root, out / "protocol_example.psichomics.phenotype.formated.bed.gz") - _expect(repo_root, out / "protocol_example.psichomics.phenotype.phenotype_group.txt") - - -# Commented out: this test hits the live Ensembl biomaRt web service -# (biomaRt::useEnsembl -> *.archive.ensembl.org), which times out / is -# unreliable from CI runners. Run it manually when validating the -# annotate_coord_biomart step against Ensembl. -# def test_annotate_coord_biomart(run_sos, repo_root, tmp_path): -# """End-to-end against Ensembl biomaRt (requires network).""" -# out = tmp_path / "out" -# p = run_sos(repo_root / NB, "annotate_coord_biomart", -# {**_base(repo_root, out), -# "phenoFile": repo_root / FX / "protocol_example.rnaseq.gene_ID.tsv", -# "ensembl_version": 115}, -# cwd=repo_root, timeout=300) -# assert p.returncode == 0, p.stdout + p.stderr -# bed = out / "protocol_example.rnaseq.gene_ID.bed.gz" -# assert bed.exists() and (out / "protocol_example.rnaseq.gene_ID.bed.gz.tbi").exists() -# assert (out / "protocol_example.rnaseq.gene_ID.region_list.txt").exists() diff --git a/tests/notebooks/mnm_analysis/mnm_methods/test_mnm_regression.py b/tests/notebooks/mnm_analysis/mnm_methods/test_mnm_regression.py index 28d002c51..bb6a5b4c9 100644 --- a/tests/notebooks/mnm_analysis/mnm_methods/test_mnm_regression.py +++ b/tests/notebooks/mnm_analysis/mnm_methods/test_mnm_regression.py @@ -52,3 +52,34 @@ def test_susie_twas(run_sos, read_rds, repo_root, qtl_mini, tmp_path): exp = repo_root / "tests/fixtures/mnm_regression/expected" assert_matches_expected(fmr, exp / "univariate_bvsr.rds", mode="tolerant", rtol=1e-6, atol=1e-8) + + +def test_mnm(run_sos, read_rds, repo_root, qtl_mini, tmp_path): + """`mnm` fits every context of one gene jointly with mvSuSiE over the QtlDataset that + qtl_dataset_construct writes, so the two steps run together. Value-compared: the fit is + byte-identical across seeded reruns on one machine.""" + cwd = tmp_path / "mnm" + p = run_sos( + repo_root / "pipeline/mnm_regression.ipynb", + "qtl_dataset_construct+mnm", + { + "name": "test_study", + "cwd": cwd, + "genoFile": qtl_mini / "protocol_example.genotype.chr22.bed", + "phenoFile": qtl_mini / "protocol_example.pheno_manifest_context.tsv", + "covFile": qtl_mini / "example_covariates.tsv", + "customized-association-windows": qtl_mini / "association_windows.bed", + "region-name": GENE, + "transpose-covariates": True, # QTLtools-format covariates + "seed": 1, # reproducible mvsusie fit + "modular_script_dir": repo_root / "code/script", + }, + cwd=repo_root, timeout=900) + assert p.returncode == 0, p.stdout + p.stderr + + fmr = cwd / f"multivariate_fine_mapping/test_study.{GENE}.multicontext_bvsr.rds" + assert fmr.exists(), f"missing multi-context output:\n{p.stdout}" + assert read_rds(fmr)["class"] == "QtlFineMappingResult" + exp = repo_root / "tests/fixtures/mnm_regression/expected" + assert_matches_expected(fmr, exp / "multicontext_bvsr.rds", mode="tolerant", + rtol=1e-6, atol=1e-8) diff --git a/tests/notebooks/molecular_phenotypes/QC/test_splicing_normalization.py b/tests/notebooks/molecular_phenotypes/QC/test_splicing_normalization.py index 0c003dd1e..1ba8abea6 100644 --- a/tests/notebooks/molecular_phenotypes/QC/test_splicing_normalization.py +++ b/tests/notebooks/molecular_phenotypes/QC/test_splicing_normalization.py @@ -1,7 +1,7 @@ -"""Notebook tier: splicing_normalization.ipynb workers (leafcutter + psichomics). +"""Notebook tier: splicing_normalization.ipynb workers (leafcutter). -splicing_normalization.R ports the leafcutter prepare_phenotype_table.py logic and the -psichomics blocks. Fixtures + references are the 20-sample MWE leafcutter/psichomics outputs. +splicing_normalization.R ports the leafcutter prepare_phenotype_table.py logic. +Fixtures + references are the 20-sample MWE leafcutter outputs. Float phenotype values are compared NUMERICALLY (identical doubles): Python's shortest-repr and R's differ cosmetically on ~4% of values in the 16th/17th digit, but the doubles — what downstream tools parse — are identical. @@ -67,16 +67,6 @@ def test_qqnorm(run_r, repo_root, tmp_path): label_cols=4) -def test_psichomics_bed(run_r, repo_root, tmp_path): - out = tmp_path / "bedded.txt" - p = run_r(repo_root / WORKER, - ["--step", "psichomics_bed", "--input", repo_root / FIX / "psi_raw_data.tsv.gz", - "--output", out]) - assert p.returncode == 0, p.stdout + p.stderr - _assert_num_match(out.read_text(), - gzip.open(repo_root / FIX / "expected_bedded.txt.gz", "rt").read(), label_cols=4) - - def test_jointcall_samples(run_r, repo_root, tmp_path): # Subset a sample lookup to the samples present in a junc-file list. Inputs are # plain text (no external tool): a lookup with a sample_id column (one row has a diff --git a/tests/notebooks/molecular_phenotypes/calling/test_splicing_calling.py b/tests/notebooks/molecular_phenotypes/calling/test_splicing_calling.py index 75c256b0d..9ed388276 100644 --- a/tests/notebooks/molecular_phenotypes/calling/test_splicing_calling.py +++ b/tests/notebooks/molecular_phenotypes/calling/test_splicing_calling.py @@ -12,11 +12,9 @@ import shutil WORKER = "code/script/molecular_phenotypes/calling/leafcutter_cluster_regtools.R" -PSI_WORKER = "code/script/molecular_phenotypes/calling/splicing_calling.R" RJ_WORKER = "code/script/molecular_phenotypes/calling/regtools_junctions.R" RJ_WRAPPER = "code/script/molecular_phenotypes/calling/regtools_junctions.sh" FIX = "tests/fixtures/splicing_calling/leafcutter" -PSI_FIX = "tests/fixtures/splicing_calling/psichomics" BAM = "tests/fixtures/phenotype_formatting/protocol_example.chr22_16M_17M.bam" @@ -71,39 +69,3 @@ def test_regtools_junctions_sh(run_sh, repo_root, tmp_path): assert p.returncode == 0, p.stdout + p.stderr assert out.read_text() == (repo_root / "tests/fixtures/splicing_calling/regtools" / "expected_chr22_16M_17M.junc").read_text() - - -def test_junction_quant(run_r, repo_root, tmp_path): - """psichomics_1: prepareJunctionQuant over STAR SJ.out.tab (SAMPLE_001/002, chr22) -> - merged junction quantification table, compared to the committed reference.""" - for s in ("SAMPLE_001", "SAMPLE_002"): - shutil.copy(repo_root / PSI_FIX / f"{s}.SJ.out.tab", tmp_path / f"{s}.SJ.out.tab") - out = tmp_path / "psichomics_junctions.txt" - p = run_r(repo_root / PSI_WORKER, - ["--step", "junction_quant", - "--inputs", tmp_path / "SAMPLE_001.SJ.out.tab", tmp_path / "SAMPLE_002.SJ.out.tab", - "--output", out]) - assert p.returncode == 0, p.stdout + p.stderr - assert out.read_text() == (repo_root / PSI_FIX / "expected_junctions.txt").read_text() - - - -def test_quantify_psi(run_r, repo_root, tmp_path): - """psichomics_2: quantifySplicing over a committed chr22 SUPPA annotation - (built once via suppa generateEvents -> suppa_annot) and a junction table - encoded in psichomics' junctionString format so events actually quantify. - (Real STAR junctions use intron-boundary coords that need the production - reference annotation; here we exercise the worker's read->quantify->write path.)""" - fix = repo_root / PSI_FIX - out = tmp_path / "psi_raw_data.tsv" - p = run_r(repo_root / PSI_WORKER, - ["--step", "quantify_psi", - "--junctions", fix / "quantify_psi_junctions.txt", - "--splicing-annotation", fix / "chr22_suppa_annotation.rds", - "--output", out]) - assert p.returncode == 0, p.stdout + p.stderr - lines = out.read_text().splitlines() - assert lines[0].split("\t") == ["SAMPLE_001", "SAMPLE_002"] # write.table: no rowname header - events = [ln.split("\t")[0] for ln in lines[1:] if ln.strip()] - assert events, "no PSI events quantified" - assert all(e.split("_")[0] in {"SE", "MXE", "ALE", "AFE", "A3SS", "A5SS"} for e in events) diff --git a/tests/notebooks/multivariate_genome/MASH/test_mash_preprocessing.py b/tests/notebooks/multivariate_genome/MASH/test_mash_preprocessing.py index 3482bb960..0131faab8 100644 --- a/tests/notebooks/multivariate_genome/MASH/test_mash_preprocessing.py +++ b/tests/notebooks/multivariate_genome/MASH/test_mash_preprocessing.py @@ -4,11 +4,9 @@ def test_mash_preprocessing_susie_to_mash(run_sos, read_rds, repo_root, tmp_path): - fx = repo_root / "tests/fixtures/mash" cwd = tmp_path / "mp" - meta = tmp_path / "fmm.tsv" - meta.write_text("region_id\tsusie_path\n" - f"chr22:15528191-15529138\t{fx / 'protocol_example.QtlFineMappingResult.rds'}\n") + # the committed meta (repo-relative susie_path) is what the module docs tell users to pass + meta = repo_root / "tests/fixtures/qtl_mini/fine_mapping_meta.tsv" p = run_sos(repo_root / "pipeline/mash_preprocessing.ipynb", "susie_to_mash", dict(name="toy_mash", fine_mapping_meta=meta, cwd=cwd, sig_p_cutoff="0.1", n_random="15", n_null="15", diff --git a/tests/notebooks/reference_data/test_reference_data_preparation.py b/tests/notebooks/reference_data/test_reference_data_preparation.py index 128483a9a..dd9718cbb 100644 --- a/tests/notebooks/reference_data/test_reference_data_preparation.py +++ b/tests/notebooks/reference_data/test_reference_data_preparation.py @@ -18,8 +18,6 @@ """ from __future__ import annotations -from pathlib import Path - import gzip from helpers.expected import assert_matches_expected @@ -177,63 +175,6 @@ def test_tad_annotate(run_sos, repo_root, tmp_path): (tad / "expected.genotype_files_list.tsv").read_text() -def test_psichomics_hg38_annotation(run_sos, repo_root, tmp_path): - """psi_hg38_annotation via SoS: reconcile the psichomics AH63657 splicing-annotation gene - symbols to Ensembl IDs (GTF -> HGNC -> VAST -> SUPPA). Needs an AnnotationHub network download - (cached after first run, like the sesame test). HGNC db is a - trimmed chr22 fixture, GTF is the chr22 collapsed gene model.""" - out = tmp_path / "out" - gtf = tmp_path / "collapsed.gtf" - gtf.write_bytes(gzip.open(repo_root / COLLAPSED_REF, "rb").read()) - hgnc = tmp_path / "hgnc.tsv" - hgnc.write_bytes(gzip.open(repo_root / FIX / "hgnc_chr22.tsv.gz", "rb").read()) - p = run_sos(repo_root / NB, "psi_hg38_annotation", - dict(hg_gtf=gtf, hgrc_db=hgnc, **_common(repo_root, out)), - cwd=repo_root, timeout=1200) - assert p.returncode == 0, p.stdout + p.stderr - rds = out / "psichomics_hg38_annotation.rds" - assert rds.exists() and rds.stat().st_size > 50_000, "annotation RDS missing/too small" - - -def _ioe_sorted(path): - """SUPPA generateEvents lists a *set* of transcript IDs per event, so the order - within its comma-separated columns (alternative_transcripts / total_transcripts) - varies run-to-run while the content does not. Sort the tokens within each cell and - sort the data rows -> a stable projection of the .ioe content.""" - lines = Path(path).read_text().splitlines() - body = [] - for ln in lines[1:]: - cells = [",".join(sorted(c.split(","))) if "," in c else c for c in ln.split("\t")] - body.append("\t".join(cells)) - return (lines[0], tuple(sorted(body))) - - -def test_suppa_annotation(run_sos, repo_root, tmp_path): - """SUPPA_annotation workflow: suppa generateEvents (SUPPA_annotation_1) -> - reference_data_preparation.R --step suppa_annot / psichomics (SUPPA_annotation_2). - Both external SUPPA + R psichomics are exercised on the committed chr22 GTF.""" - out = tmp_path / "out" - out.mkdir(parents=True) - gtf = tmp_path / "chr22.gtf" - gtf.write_text(gzip.open(repo_root / CHR22_GTF, "rt").read()) - p = run_sos(repo_root / NB, "SUPPA_annotation", - {**_common(repo_root, out), "hg_gtf": gtf}, cwd=repo_root, timeout=900) - assert p.returncode == 0, p.stdout + p.stderr - ioe = out / "hg38.chr22_SE_strict.ioe" # SUPPA_annotation_1 output - rds = out / "chr22.SUPPA_annotation.rds" # SUPPA_annotation_2 output - assert ioe.exists() and rds.exists() - # regression: SUPPA generateEvents is deterministic in content but not in the token - # order of its comma-separated transcript columns -> compare a token-sorted projection - # against the committed (canonically-sorted) fixture. - assert_matches_expected(ioe, repo_root / EXPECTED / "hg38.chr22_SE_strict.ioe", - mode="projection", project=_ioe_sorted) - # the psichomics annotation object (a list of 7 per-event-type data.frames) has the - # same event SET each run but inherits the .ioe's non-deterministic ROW order, so it's - # compared with sort_rows (each data.frame canonically row-sorted); values then match. - assert_matches_expected(rds, repo_root / EXPECTED / "chr22.SUPPA_annotation.rds", - mode="tolerant", rtol=1e-6, atol=1e-8, sort_rows=True) - - def test_rsem_index(run_sos, repo_root, tmp_path): """RSEM_index: rsem-prepare-reference on a tiny self-consistent genome+GTF.""" out = tmp_path / "out"