|
1 | 1 | # Freddie |
2 | | -Co-chaining of local alignments of long reads on gene DAGs |
| 2 | +## Installation |
| 3 | + |
| 4 | +The simplest way to install the dependencies is using [Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/): |
| 5 | + |
| 6 | +```bash |
| 7 | +git clone https://baraaorabi@bitbucket.org/baraaorabi/freddie.git |
| 8 | +cd freddie |
| 9 | +conda env create -f environment.yml |
| 10 | +conda activate freddie |
| 11 | +``` |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | +## Running Freddie |
| 16 | + |
| 17 | +There are few scripts/stages in Freddie: |
| 18 | + |
| 19 | +- `py/freddie_align.py`: Align reads using `deSALT` mapper. (Optional since freddie accepts any SAM/BAM file for next stages) |
| 20 | + |
| 21 | +- `py/freddie_split.py`: Partitions the reads into independent sets that can be processed in parallel |
| 22 | +- `py/freddie_segment.py`: Computes the canonical segmentation for each read set |
| 23 | +- `py/freddie_cluster.py`: Clusters the reads using their canonical segmentation representation |
| 24 | +- `py/freddie_isoforms.py`: Generates consensus isoforms of each cluster and outputs them in `GTF` format |
| 25 | + |
| 26 | +### Align |
| 27 | + |
| 28 | +``` |
| 29 | +py/freddie_align.py --reads <FASTA/FASTQ> --genome <FASTA> --out-desalt-index <DIR> --output <SAM> |
| 30 | +``` |
| 31 | + |
| 32 | +Align takes the following arguments: |
| 33 | + |
| 34 | +- `--reads/-r`: space separated list of FASTA/FASTQ files of the reads |
| 35 | +- `--genome/-g`: FASTA file of the genome. Only needed to deSALT index if `--desalt-index` is not provided. |
| 36 | + |
| 37 | +- `--out-desalt-index/-od`: Path to output directory to store deSALT index. Only needed to deSALT index if `--desalt-index` is not provided. |
| 38 | +- `--desalt/-d`: Path to deSALT executable. Default: `deSALT` |
| 39 | +- `--desalt-index/-i`: Path to deSALT index if it exists. |
| 40 | +- `--temporary-prefix/-m`: Temporary prefix for deSALT alignment files. Default: `<--output>.temp` |
| 41 | +- `--sequencer/-s`: Sequencer option for deSALT: `null`, `ccs`, `clr`, `ont1d`, or `ont2d`. Default: `null` |
| 42 | +- `--output/-o`: Output SAM file |
| 43 | + |
| 44 | +### Split (aka partition) |
| 45 | + |
| 46 | +``` |
| 47 | +py/freddie_split.py --sam <SAM/BAM> --output <SPLIT.TSV> |
| 48 | +``` |
| 49 | + |
| 50 | +Align takes the following arguments: |
| 51 | + |
| 52 | +- `--sam/-s`: `SAM/BAM` file of read alignments from deSALT or any other split/splice long-read mapper. |
| 53 | +- `--sam-format/-f`: `--sam` file format: `bam` or `sam`. Default: infers format from `--sam` file extension |
| 54 | + |
| 55 | +- ``--output/-o`: Output TSV file of split stage. Default: `freddie_split.tsv` |
| 56 | + |
| 57 | +### Segment |
| 58 | + |
| 59 | +``` |
| 60 | +py/freddie_segment.py --split-tsv <SPLIT.TSV> --reads <FASTQ/FASTA> --output <SEGMENT.TSV> |
| 61 | +``` |
| 62 | + |
| 63 | +Align takes the following arguments: |
| 64 | + |
| 65 | +- `--split-tsv/-s`: `SPLIT.TSV` output of the split stage |
| 66 | +- `--reads/-r`: Space separated list of FASTA/FASTQ files of the reads |
| 67 | +- `--threads/-t`: Number of threads. Default: 1 |
| 68 | +- `--sigma/-sd`: Standard deviation parameter for the Gaussian filter. Default: 5.0 |
| 69 | +- `--threshold-rate/-tp`: Coverage percentage threshold for segments. Default: 0.90 |
| 70 | +- `--variance-factor/-vf`: Variance factor for heuristic of prefixing breakpoints. Any breakpoint with signal greater than `<-vf>` times the standard deviation plus the average of the signals will be prefixed. Default: 3.0 |
| 71 | +- `--max-problem-size/-mps`: Maximum allowed problem size after which the problem will be broken down uniformly. Default: 50 |
| 72 | +- `--min-read-support-outside`: Minimum contrasting coverage support required for a breakpoint. Default: 3 |
| 73 | +- ``--output/-o`: Output TSV file of segment stage. Default: `freddie_segment.tsv` |
| 74 | + |
| 75 | +### Cluster |
| 76 | + |
| 77 | +``` |
| 78 | +py/freddie_cluster.py --segment-tsv <SEGMENT.TSV> --output <CLUSTER.TSV> |
| 79 | +``` |
| 80 | + |
| 81 | +Align takes the following arguments: |
| 82 | + |
| 83 | +- `--segment-tsv/-s`: `SEGMENT.TSV` output of the segment stage |
| 84 | +- `--gap-offset/-go`: Constant +/- slack used in unaligned gap condition. Default: 20 |
| 85 | +- `--epsilon/-e`: +/- ratio of length as slack used in unaligned gap condition. Default: 0.2 |
| 86 | +- `--max-rounds/-mr`: Maximum allowed number of rounds per sub-partition of a read set. Default: 30 |
| 87 | +- `--min-isoform-size/-is`: Minimum read support allowed for an isoform. Default: 3 |
| 88 | +- `--timeout/-to`: Gurobi timeout per isoform in minutes. Default: 4 |
| 89 | +- `--threads/-t`: Number of threads. Default: 1 |
| 90 | +- `--logs-dir/-l`: Directory path where logs will be outputted. Default: No logging |
| 91 | +- `--output/-o`: Output TSV file of cluster stage. Default: `freddie_cluster.tsv` |
| 92 | + |
| 93 | +### Isoforms |
| 94 | + |
| 95 | +``` |
| 96 | +py/freddie_isoforms.py --segment-tsv <SEGMENT.TSV> --cluster-tsv <CLUSTER.TSV> --output <ISOFORMS.GTF> |
| 97 | +``` |
| 98 | + |
| 99 | +Align takes the following arguments: |
| 100 | + |
| 101 | +- `--segment-tsv/-s`: `SEGMENT.TSV` output of the segment stage |
| 102 | +- `--cluster-tsv/-s`: `CLUSTER.TSV` output of the cluster stage |
| 103 | +- `--output/-o`: Output GTF file of isoforms stage. Default: `freddie_isoforms.gtf` |
| 104 | + |
| 105 | + |
0 commit comments