You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+29-9Lines changed: 29 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,21 @@
1
1
# pyjacker
2
2
3
-
This is a tool to detect enhancer hijacking events in a cohort profiled with WGS and RNA-seq. It does not require matched normals and can detect enhancer hijacking events occurring in a single sample. Briefly, it looks for outlier high and monoallelic expression of a gene in a sample which has a breakpoint close to the gene.
3
+
This is a tool to detect enhancer hijacking events in a cohort of at least 10 samples profiled with WGS and RNA-seq. It does not require matched normals and can detect enhancer hijacking events occurring in only a single sample. Briefly, it looks for outlier high and monoallelic expression of a gene in a sample which has a breakpoint close to the gene.
4
4
5
5
## Usage
6
6
In an environment with python>=3.7:
7
7
```
8
8
pip install pyjacker
9
-
python pyjacker.py config.yaml
9
+
pyjacker config.yaml
10
10
```
11
11
The config file indicates all the parameters, including paths to the input files (see config_AML.yaml as an example). Alternatively, we provide a nextflow workflow that generates pyjacker's inputs from bam files, and run pyjacker: https://github.com/CompEpigen/wf_WGS.
12
12
13
+
### Docker
14
+
Alternatively, pyjacker can be run using a docker image.
15
+
```
16
+
docker run -t -v `pwd`:`pwd` esollier/pyjacker:latest pyjacker config.yaml
17
+
```
18
+
13
19
## Inputs
14
20
### Gene expression table (required)
15
21
Rows are genes (ensembl IDs) and columns are samples. The expression data must be provided in TPM. See data/TPM_ckAML.tsv for an example.
@@ -18,21 +24,35 @@ Rows are genes (ensembl IDs) and columns are samples. The expression data must b
18
24
tsv file with columns: sample, chr1, pos1, chr2, pos2.
19
25
The fields chr2 and pos2 are optional (for example if you only have copy number data). See data/breakpoints.tsv for an example.
20
26
27
+
### Reference files: gtf and cytobands (required)
28
+
gtf file containing gene coordinates for your reference genome (see [data/Homo_sapiens.GRCh37.75.gtf.gz](https://github.com/CompEpigen/pyjacker/blob/main/data/Homo_sapiens.GRCh37.75.gtf.gz) or [data/Homo_sapiens.GRCh38.113.gtf.gz](https://github.com/CompEpigen/pyjacker/blob/main/data/Homo_sapiens.GRCh38.113.gtf.gz), and tsv file containing cytobands (see [data/cytobands_hg19](https://github.com/CompEpigen/pyjacker/blob/main/data/cytobands_hg19.tsv) or [data/cytobands_hg38](https://github.com/CompEpigen/pyjacker/blob/main/data/cytobands_hg38.tsv)).
29
+
21
30
### TADs (optional)
22
-
A bed file of topologically-associating domains can be used, in which case only the breakpoints in the same TAD as a gene are considered in the search for enhancer hijacking events. One TAD file is provided in the data directory. If not TAD file is provided, pyjacker will instead look for breakpoints within a fixed distance to the gene (1.5Mb by default). See data/HSPC_TADs.bed for an example.
31
+
A bed file of topologically-associating domains can be used, in which case only the breakpoints in the same TAD as a gene are considered in the search for enhancer hijacking events. See [data/TADs_Dixon_IMR90_hg19.bed](https://github.com/CompEpigen/pyjacker/blob/main/data/TADs_Dixon_IMR90_hg19.bed) or [data/TADs_Dixon_IMR90_hg38.bed](https://github.com/CompEpigen/pyjacker/blob/main/data/TADs_Dixon_IMR90_hg38.bed) for TADs derived from the data of [Dixon et al.](https://www.nature.com/articles/nature14222) or [data/TADs_HSPC_hg19.bed](https://github.com/CompEpigen/pyjacker/blob/main/data/TADs_HSPC_hg19.bed) for TADs derived from [HSPCs](https://doi.org/10.1182/bloodadvances.2023012161). If not TAD file is provided, pyjacker will instead look for breakpoints within a fixed distance to the gene (1.5Mb by default).
23
32
24
33
### Allelic read counts at SNPs in RNAseq (optional)
25
-
This is used to detect monoallelic expression. This requires files generated by [fast_ase](https://github.com/e-sollier/fast_ase) or [GATK ASEReadCounter](https://gatk.broadinstitute.org/hc/en-us/articles/360037428291-ASEReadCounter).
34
+
This is used to detect monoallelic expression. This requires files generated by [fast_ase](https://github.com/e-sollier/fast_ase) or [GATK ASEReadCounter](https://gatk.broadinstitute.org/hc/en-us/articles/360037428291-ASEReadCounter). See [data/ASE_ckAML](https://github.com/CompEpigen/pyjacker/tree/main/data/ASE_ckAML) for example files.
26
35
27
36
### Copy number alterations (optional)
28
-
tsv file with the following columns: sample, chr, start, end, cn. See data/CNAs.tsv for an example.
37
+
tsv file with the following columns: sample, chr, start, end, cn. See [data/CNAs_ckAML.tsv](https://github.com/CompEpigen/pyjacker/blob/main/data/CNAs_ckAML.tsv) for an example.
29
38
If provided, this will be used to:
30
39
- correct gene expression based on copy number (so high expression because of amplification will not be reported)
31
40
- filter out SNPs within deletions from the monoallelic expression detection
32
41
42
+
### Enhancers (optional)
43
+
A file of scored enhancers, generated by ROSE. See [data/enhancers_myeloid_hg19.tsv](https://github.com/CompEpigen/pyjacker/blob/main/data/enhancers_myeloid_hg19.tsv) for an example.
44
+
45
+
### Fusion transcripts (optional)
46
+
47
+
Fusion transcripts can also lead to aberrant high and monoallelic expression of a gene. If a list of fusion transcripts detected from RNAseq is provided, they will be used to annotate candidate enhancer hijacking events which are actually due to a fusion. See [data/fusions_ckAML.tsv](https://github.com/CompEpigen/pyjacker/blob/main/data/fusions_ckAML.tsv) for an example file.
48
+
49
+
## Runtime
50
+
Pyjacker takes approximately 5h to run on the ckAML dataset (39 samples) with default settings and 6 cores. The runtime is essentially proportional to the number of samples in the dataset and to the number of iterations used when estimating the null distribution of scores (used to compute the false discovery rate). This number of iterations is 50 by default, which ensures that accurate p-values are computed, but this can easily be reduced to 5-10 to reduce the runtime, without drastically altering the results.
51
+
52
+
53
+
## Citation
54
+
If you use pyjacker in your research, please consider citing:
55
+
56
+
Sollier E, Riedel A, Toprak UH, Wierzbinska JA, Weichenhan D, Schmid JP, Hakobyan M, Touzart A, Jahn E, Vick B, Brown-Burke F. Pyjacker identifies enhancer hijacking events in acute myeloid leukemia including MNX1 activation via deletion 7q. bioRxiv. 2024:2024-09. https://doi.org/10.1101/2024.09.11.611224
33
57
34
-
### Fusion transcripts
35
-
Fusion transcripts can also lead to aberrant high and monoallelic expression of a gene. If a list of fusion transcripts detected from RNAseq is provided, they will be used to annotate candidate enhancer hijacking events which are actually due to a fusion. See data/fusions.tsv for an example file.
36
58
37
-
### Enhancers
38
-
A file of scored enhancers, generated by ROSE. See data/enhancers_myeloid.tsv for an example.
0 commit comments