<commit_before>[![Build Status](https://travis-ci.org/jlanga/exfi.svg?branch=master)](https://travis-ci.org/jlanga/exfi)

# exfi
Get exons from a transcriptome and raw genomic reads using abyss-bloom and bedtools

## Requirements
```
abyss>=2.0.0
bedtools (tested on 2.0)
python3
biopython
```
We recomend installing these packages with `conda` and `bioconda`

## Running the pipeline

1. Make a Bloom filter of the genomic reads with `abyss-bloom build`:

```sh
abyss-bloom build \
    --kmer=27 \
    --verbose \
    --bloom-size=500M \
    --threads=4 \
    --levels=1 \
    genome_k27_m500M_l1.bloom \
    test/genome.fa.gz
```

2. Run `find_exons` to get putative exons in the transcriptome:
```sh
find_exons
    --input-fasta data/transcript.fa
    --input-bloom genome_k27_m500M_l1.bloom
    --kmer 27
    --output-fasta test_exons_raw.fa
```


3.  Filter the exons by extensibility:
```sh
filter_exons_by_extensibility
    --input-fasta test_exons_raw.fa
    --input-bloom genome_k27_m500M_l1.bloom
    --kmer 27
    --output-fasta test_exons_filtered_by_extensiblity.fa
```


## Results

The output is a fasta file in which the sequences are the different exons found. The header info is as follows:

```
>EXONNUMBER TRANSCRIPT_ID1:start-end;rank TRANSCRIPT_ID2:start-end;rank
```

```
>EXON00000000022 ENSDART00000163017.1:419-657;4 ENSDART00000172567.1:406-644;4
CAGGAGGAAGATGGCCTTACGATGCTGCAGTTGGAGAAGGACCTCCGCACGCAGGTCAAG
TTGATGCTTAAAGAAAAGAGCTCTCGCCAGACTGAGCTGAAGTCTCTGATTCAGCAGGAT
CAAGATCTGTGTGATGTCCTGTGTGAAGACCTGTTCCCCATCCATCCCGAACGCGTGCCT
TCACAGCAGCAGCTGCAGAACTACAGGCAGCACATCAACACACGCAACCAGGAGAAG
```
<commit_msg>Deleted ranks in fasta headers [skip ci]<commit_after>[![Build Status](https://travis-ci.org/jlanga/exfi.svg?branch=master)](https://travis-ci.org/jlanga/exfi)

# exfi
Get exons from a transcriptome and raw genomic reads using abyss-bloom and bedtools

## Requirements
```
abyss>=2.0.0
bedtools (tested on 2.0)
python3
biopython
```
We recomend installing these packages with `conda` and `bioconda`

## Running the pipeline

1. Make a Bloom filter of the genomic reads with `abyss-bloom build`:

```sh
abyss-bloom build \
    --kmer=27 \
    --verbose \
    --bloom-size=500M \
    --threads=4 \
    --levels=1 \
    genome_k27_m500M_l1.bloom \
    test/genome.fa.gz
```

2. Run `find_exons` to get putative exons in the transcriptome:
```sh
find_exons
    --input-fasta data/transcript.fa
    --input-bloom genome_k27_m500M_l1.bloom
    --kmer 27
    --output-fasta test_exons_raw.fa
```


3.  Filter the exons by extensibility:
```sh
filter_exons_by_extensibility
    --input-fasta test_exons_raw.fa
    --input-bloom genome_k27_m500M_l1.bloom
    --kmer 27
    --output-fasta test_exons_filtered_by_extensiblity.fa
```


## Results

The output is a fasta file in which the sequences are the different exons found. The header info is as follows:

```
>EXONNUMBER TRANSCRIPT_ID1:start-end TRANSCRIPT_ID2:start-end
```

```
>EXON00000000022 ENSDART00000163017.1:419-657 ENSDART00000172567.1:406-644
CAGGAGGAAGATGGCCTTACGATGCTGCAGTTGGAGAAGGACCTCCGCACGCAGGTCAAG
TTGATGCTTAAAGAAAAGAGCTCTCGCCAGACTGAGCTGAAGTCTCTGATTCAGCAGGAT
CAAGATCTGTGTGATGTCCTGTGTGAAGACCTGTTCCCCATCCATCCCGAACGCGTGCCT
TCACAGCAGCAGCTGCAGAACTACAGGCAGCACATCAACACACGCAACCAGGAGAAG
```

{'fraction_non_alphanumeric': 0.10259541984732824, 'fraction_numerical': 0.053740458015267174, 'mean_word_length': 4.397034596375618, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 9, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 2, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1606662', 'n_tokens_mistral': 1483, 'n_tokens_neox': 1251, 'n_words': 258}