Skip to content

Commit

Permalink
Merge pull request #37 from camilogarciabotero/rbs
Browse files Browse the repository at this point in the history
Ribosome Binding Sites motifs
  • Loading branch information
camilogarciabotero authored Dec 9, 2024
2 parents 4beee1c + ff2ddd3 commit 326b855
Show file tree
Hide file tree
Showing 9 changed files with 570 additions and 62 deletions.
32 changes: 16 additions & 16 deletions docs/Manifest.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is machine-generated - editing it directly is not advised

julia_version = "1.11.1"
julia_version = "1.11.2"
manifest_format = "2.0"
project_hash = "a737ae23847074aa3f8c65ffa51f2732c1aeb154"

Expand Down Expand Up @@ -107,9 +107,9 @@ version = "0.9.3"

[[deps.Documenter]]
deps = ["ANSIColoredPrinters", "AbstractTrees", "Base64", "CodecZlib", "Dates", "DocStringExtensions", "Downloads", "Git", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "MarkdownAST", "Pkg", "PrecompileTools", "REPL", "RegistryInstances", "SHA", "TOML", "Test", "Unicode"]
git-tree-sha1 = "5a1ee886566f2fa9318df1273d8b778b9d42712d"
git-tree-sha1 = "d0ea2c044963ed6f37703cead7e29f70cba13d7e"
uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
version = "1.7.0"
version = "1.8.0"

[[deps.DocumenterVitepress]]
deps = ["ANSIColoredPrinters", "Base64", "DocStringExtensions", "Documenter", "IOCapture", "Markdown", "NodeJS_20_jll", "REPL"]
Expand All @@ -130,15 +130,15 @@ version = "1.6.0"

[[deps.ExceptionUnwrapping]]
deps = ["Test"]
git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a"
git-tree-sha1 = "d36f682e590a83d63d1c7dbd287573764682d12a"
uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4"
version = "0.1.10"
version = "0.1.11"

[[deps.Expat_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7"
git-tree-sha1 = "e51db81749b0777b2147fbe7b783ee79045b8e99"
uuid = "2e619515-83b5-522b-bb60-26c02a35a201"
version = "2.6.2+0"
version = "2.6.4+1"

[[deps.FileWatching]]
uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"
Expand All @@ -164,15 +164,15 @@ version = "1.3.1"

[[deps.Git_jll]]
deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"]
git-tree-sha1 = "ea372033d09e4552a04fd38361cd019f9003f4f4"
git-tree-sha1 = "399f4a308c804b446ae4c91eeafadb2fe2c54ff9"
uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb"
version = "2.46.2+0"
version = "2.47.1+0"

[[deps.HTTP]]
deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"]
git-tree-sha1 = "bc3f416a965ae61968c20d0ad867556367f2817d"
deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "PrecompileTools", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"]
git-tree-sha1 = "6c22309e9a356ac1ebc5c8a217045f9bae6f8d9a"
uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3"
version = "1.10.9"
version = "1.10.13"

[[deps.IOCapture]]
deps = ["Logging", "Random"]
Expand Down Expand Up @@ -208,9 +208,9 @@ uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
version = "0.21.4"

[[deps.LazilyInitializedFields]]
git-tree-sha1 = "8f7f3cabab0fd1800699663533b6d5cb3fc0e612"
git-tree-sha1 = "0f2da712350b020bc3957f269c9caad516383ee0"
uuid = "0e77f7df-68c5-4e49-93ce-4cd80f5598bf"
version = "1.2.2"
version = "1.3.0"

[[deps.LibCURL]]
deps = ["LibCURL_jll", "MozillaCACerts_jll"]
Expand Down Expand Up @@ -321,9 +321,9 @@ uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95"
version = "3.0.15+1"

[[deps.OrderedCollections]]
git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5"
git-tree-sha1 = "12f1439c4f986bb868acda6ea33ebc78e19b95ad"
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
version = "1.6.3"
version = "1.7.0"

[[deps.PCRE2_jll]]
deps = ["Artifacts", "Libdl"]
Expand Down
1 change: 1 addition & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ pgs = [
"The ORF type" => "orftype.md",
"Scoring ORFs" => "features.md",
"A Simple Coding Rule" => "simplecodingrule.md",
"Ribosome Binding Sites" => "rbs.md",
"Writing ORFs In Files" => "iodocs.md",
],
"API" => "api.md",
Expand Down
82 changes: 82 additions & 0 deletions docs/src/rbs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
## Ribosome Binding Site (RBS) Motifs

This document provides information on Ribosome Binding Site (RBS) motifs based on the Prodigal paper. The RBS motifs are categorized by spacer ranges, which indicate the number of base pairs (bp) between the RBS and the start codon.

### Spacer Ranges and Representative RBS Motifs

Example sequence with RBS motif:

Spacer Range | Representative RBS Motif(s)
------------ | ---------------------------
3-4 bp | GGA, GAG, AGG, AGxAG, AGGAG
5-10 bp | GGAG, GAGG, GGxGG, AGGAGG
11-12 bp | GGA, GAG, AGG, AGxAG, AGGAG
13-15 bp | GGA, GAG, AGG, AGGA, AGGAG

### Window Checking Ranges

Three different window checking ranges are defined to identify potential RBS motifs relative to the start codon (ATG):

- Window Checking A:
```
-10 -3 |-> start codon
...|......|..ATG...
```

- Window Checking B:
```
-16 -5 |-> start codon
...|..........|....ATG...
```

- Window Checking C:
```
-20 -11 |-> start codon
.|........|..........ATG...
```

### RBS Motif Scoring

The RBS motif scoring is based on the Prodigal paper, which uses a scoring system to identify potential RBS motifs. The scoring system is as follows:



### Example

An example of an exact search query for an RBS motif is provided:

- **ExactSearchQuery(dna"ATACG", iscompatible)** returns 5, indicating the position of the motif.

```
-20 -15 -10 -5 |-> start codon
|....|....|....|....ATG...
GGAGGACCCCATGACACACACAACAC
|----|:RBS(dna"GGAGGA", 1:5, :A, 27, STRAND_POS)
```

To inspect the RBS motifs of a given ORF, we can use the `_findrbs` function. This function returns the RBS motifs of a given ORF:

```julia

phi = dna"GTGTGAGGTTATAACGCCGAAGCGGTAAAAATTTTAATTTTTGCCGCTGAGGGGTTGACCAAGCGAAGCGCGGTAGGTTTTCTGCTTAGGAGTTTAATCATGTTTCAGACTTTTATTTCTCGCCATAATTCAAACTTTTTTTCTGATAAGCTGGTTCTCACTTCTGTTACTCCAGCTTCTTCGGCACCTGTTTTACAGACACCTAAAGCTACATCGTCAACGTTATATTTTGATAGTTTGACGGTTAATGCTGGTAATGGTGGTTTTCTTCATTGCATTCAGATGGATACATCTGTCAACGCCGCTAATCAGGTTGTTTCTGTTGGTGCTGATATTGCTTTTGATGCCGACCCTAAATTTTTTGCCTGTTTGGTTCGCTTTGAGTCTTCTTCGGTTCCGACTACCCTCCCGACTGCCTATGATGTTTATCCTTTGAATGGTCGCCATGATGGTGGTTATTATACCGTCAAGGACTGTGTGACTATTGACGTCCTTCCCCGTACGCCGGGCAATAACGTTTATGTTGGTTTCATGGTTTGGTCTAACTTTACCGCTACTAAATGCCGCGGATTGGTTTCGCTGAATCAGGTTATTAAAGAGATTATTTGTCTCCAGCCACTTAAGTGAGGTGATTTATGTTTGGTGCTATTGCTGGCGGTATTGCTTCTGCTCTTGCTGGTGGCGCCATGTCTAAATTGTTTGGAGGCGGTCAAAAAGCCGCCTCCGGTGGCATTCAAGGTGATGTGCTTGCTACCGATAACAATACTGTAGGCATGGGTGATGCTGGTATTAAATCTGCCATTCAAGGCTCTAATGTTCCTAACCCTGATGAGGCCGCCCCTAGTTTTGTTTCTGGTGCTATGGCTAAAGCTGGTAAAGGACTTCTTGAAGGTACGTTGCAGGCTGGCACTTCTGCCGTTTCTGATAAGTTGCTTGATTTGGTTGGACTTGGTGGCAAGTCTGCCGCTGATAAAGGAAAGGATACTCGTGATTATCTTGCTGCTGCATTTCCTGAGCTTAATGCTTGGGAGCGTGCTGGTGCTGATGCTTCCTCTGCTGGTATGGTTGACGCCGGATTTGAGAATCAAAAAGAGCTTACTAAAATGCAACTGGACAATCAGAAAGAGATTGCCGAGATGCAAAATGAGACTCAAAAAGAGATTGCTGGCATTCAGTCGGCGACTTCACGCCAGAATACGAAAGACCAGGTATATGCACAAAATGAGATGCTTGCTTATCAACAGAAGGAGTCTACTGCTCGCGTTGCGTCTATTATGGAAAACACCAATCTTTCCAAGCAACAGCAGGTTTCCGAGATTATGCGCCAAATGCTTACTCAAGCTCAAACGGCTGGTCAGTATTTTACCAATGACCAAATCAAAGAAATGACTCGCAAGGTTAGTGCTGAGGTTGACTTAGTTCATCAGCAAACGCAGAATCAGCGGTATGGCTCTTCTCATATTGGCGCTACTGCAAAGGATATTTCTAATGTCGTCACTGATGCTGCTTCTGGTGTGGTTGATATTTTTCATGGTATTGATAAAGCTGTTGCCGATACTTGGAACAATTTCTGGAAAGACGGTAAAGCTGATGGTATTGGCTCTAATTTGTCTAGGAAATAACCGTCAGGATTGACACCCTCCCAATTGTATGTTTTCATGCCTCCAAATCTTGGAGGCTTTTTTATGGTTCGTTCTTATTACCCTTCTGAATGTCACGCTGATTATTTTGACTTTGAGCGTATCGAGGCTCTTAAACCTGCTATTGAGGCTTGTGGCATTTCTACTCTTTCTCAATCCCCAATGCTTGGCTTCCATAAGCAGATGGATAACCGCATCAAGCTCTTGGAAGAGATTCTGTCTTTTCGTATGCAGGGCGTTGAGTTCGATAATGGTGATATGTATGTTGACGGCCATAAGGCTGCTTCTGACGTTCGTGATGAGTTTGTATCTGTTACTGAGAAGTTAATGGATGAATTGGCACAATGCTACAATGTGCTCCCCCAACTTGATATTAATAACACTATAGACCACCGCCCCGAAGGGGACGAAAAATGGTTTTTAGAGAACGAGAAGACGGTTACGCAGTTTTGCCGCAAGCTGGCTGCTGAACGCCCTCTTAAGGATATTCGCGATGAGTATAATTACCCCAAAAAGAAAGGTATTAAGGATGAGTGTTCAAGATTGCTGGAGGCCTCCACTATGAAATCGCGTAGAGGCTTTGCTATTCAGCGTTTGATGAATGCAATGCGACAGGCTCATGCTGATGGTTGGTTTATCGTTTTTGACACTCTCACGTTGGCTGACGACCGATTAGAGGCGTTTTATGATAATCCCAATGCTTTGCGTGACTATTTTCGTGATATTGGTCGTATGGTTCTTGCTGCCGAGGGTCGCAAGGCTAATGATTCACACGCCGACTGCTATCAGTATTTTTGTGTGCCTGAGTATGGTACAGCTAATGGCCGTCTTCATTTCCATGCGGTGCACTTTATGCGGACACTTCCTACAGGTAGCGTTGACCCTAATTTTGGTCGTCGGGTACGCAATCGCCGCCAGTTAAATAGCTTGCAAAATACGTGGCCTTATGGTTACAGTATGCCCATCGCAGTTCGCTACACGCAGGACGCTTTTTCACGTTCTGGTTGGTTGTGGCCTGTTGATGCTAAAGGTGAGCCGCTTAAAGCTACCAGTTATATGGCTGTTGGTTTCTATGTGGCTAAATACGTTAACAAAAAGTCAGATATGGACCTTGCTGCTAAAGGTCTAGGAGCTAAAGAATGGAACAACTCACTAAAAACCAAGCTGTCGCTACTTCCCAAGAAGCTGTTCAGAATCAGAATGAGCCGCAACTTCGGGATGAAAATGCTCACAATGACAAATCTGTCCACGGAGTGCTTAATCCAACTTACCAAGCTGGGTTACGACGCGACGCCGTTCAACCAGATATTGAAGCAGAACGCAAAAAGAGAGATGAGATTGAGGCTGGGAAAAGTTACTGTAGCCGACGTTTTGGCGGCGCAACCTGTGACGACAAATCTGCTCAAATTTATGCGCGCTTCGATAAAAATGATTGGCGTATCCAACCTGCAGAGTTTTATCGCTTCCATGACGCAGAAGTTAACACTTTCGGATATTTCTGATGAGTCGAAAAATTATCTTGATAAAGCAGGAATTACTACTGCTTGTTTACGAATTAAATCGAAGTGGACTGCTGGCGGAAAATGAGAAAATTCGACCTATCCTTGCGCAGCTCGAGAAGCTCTTACTTTGCGACCTTTCGCCATCAACTAACGATTCTGTCAAAAACTGACGCGTTGGATGAGGAGAAGTGGCTTAATATGCTTGGCACGTTCGTCAAGGACTGGTTTAGATATGAGTCACATTTTGTTCATGGTAGAGATTCTCTTGTTGACATTTTAAAAGAGCGTGGATTACTATCTGAGTCCGATGCTGTTCAACCACTAATAGGTAAGAAATCATGAGTCAAGTTACTGAACAATCCGTACGTTTCCAGACCGCTTTGGCCTCTATTAAGCTCATTCAGGCTTCTGCCGTTTTGGATTTAACCGAAGATGATTTCGATTTTCTGACGAGTAACAAAGTTTGGATTGCTACTGACCGCTCTCGTGCTCGTCGCTGCGTTGAGGCTTGCGTTTATGGTACGCTGGACTTTGTGGGATACCCTCGCTTTCCTGCTCCTGTTGAGTTTATTGCTGCCGTCATTGCTTATTATGTTCATCCCGTCAACATTCAAACGGCCTGTCTCATCATGGAAGGCGCTGAATTTACGGAAAACATTATTAATGGCGTCGAGCGTCCGGTTAAAGCCGCTGAATTGTTCGCGTTTACCTTGCGTGTACGCGCAGGAAACACTGACGTTCTTACTGACGCAGAAGAAAACGTGCGTCAAAAATTACGTGCGGAAGGAGTGATGTAATGTCTAAAGGTAAAAAACGTTCTGGCGCTCGCCCTGGTCGTCCGCAGCCGTTGCGAGGTACTAAAGGCAAGCGTAAAGGCGCTCGTCTTTGGTATGTAGGTGGTCAACAATTTTAATTGCAGGGGCTTCGGCCCCTTACTTGAGGATAAATTATGTCTAATATTCAAACTGGCGCCGAGCGTATGCCGCATGACCTTTCCCATCTTGGCTTCCTTGCTGGTCAGATTGGTCGTCTTATTACCATTTCAACTACTCCGGTTATCGCTGGCGACTCCTTCGAGATGGACGCCGTTGGCGCTCTCCGTCTTTCTCCATTGCGTCGTGGCCTTGCTATTGACTCTACTGTAGACATTTTTACTTTTTATGTCCCTCATCGTCACGTTTATGGTGAACAGTGGATTAAGTTCATGAAGGATGGTGTTAATGCCACTCCTCTCCCGACTGTTAACACTACTGGTTATATTGACCATGCCGCTTTTCTTGGCACGATTAACCCTGATACCAATAAAATCCCTAAGCATTTGTTTCAGGGTTATTTGAATATCTATAACAACTATTTTAAAGCGCCGTGGATGCCTGACCGTACCGAGGCTAACCCTAATGAGCTTAATCAAGATGATGCTCGTTATGGTTTCCGTTGCTGCCATCTCAAAAACATTTGGACTGCTCCGCTTCCTCCTGAGACTGAGCTTTCTCGCCAAATGACGACTTCTACCACATCTATTGACATTATGGGTCTGCAAGCTGCTTATGCTAATTTGCATACTGACCAAGAACGTGATTACTTCATGCAGCGTTACCATGATGTTATTTCTTCATTTGGAGGTAAAACCTCTTATGACGCTGACAACCGTCCTTTACTTGTCATGCGCTCTAATCTCTGGGCATCTGGCTATGATGTTGATGGAACTGACCAAACGTCGTTAGGCCAGTTTTCTGGTCGTGTTCAACAGACCTATAAACATTCTGTGCCGCGTTTCTTTGTTCCTGAGCATGGCACTATGTTTACTCTTGCGCTTGTTCGTTTTCCGCCTACTGCGACTAAAGAGATTCAGTACCTTAACGCTAAAGGTGCTTTGACTTATACCGATATTGCTGGCGACCCTGTTTTGTATGGCAACTTGCCGCCGCGTGAAATTTCTATGAAGGATGTTTTCCGTTCTGGTGATTCGTCTAAGAAGTTTAAGATTGCTGAGGGTCAGTGGTATCGTTATGCGCCTTCGTATGTTTCTCCTGCTTATCACCTTCTTGAAGGCTTCCCATTCATTCAGGAACCGCCTTCTGGTGATTTGCAAGAACGCGTACTTATTCGCCACCATGATTATGACCAGTGTTTCCAGTCCGTTCAGTTGTTGCAGTGGAATAGTCAGGTTAAATTTAATGT ACCGTTTATCGCAATCTGCCGACCACTCGCGATTCAATCATGACTTCGTGATAAAAGATTGA"

orf = findorfs(phi)[3]

GeneFinder._findrbs(orf)

6-element Vector{RBS}:
RBS(GAG, 90:92, :A, 13, STRAND_POS)
RBS(GGAG, 89:92, :B, 16, STRAND_POS)
RBS(AGG, 88:90, :B, 13, STRAND_POS)
RBS(GGA, 89:91, :B, 13, STRAND_POS)
RBS(GAG, 90:92, :B, 13, STRAND_POS)
RBS(AGGA, 88:91, :B, 16, STRAND_POS)

```

Now, following the scoring scheme mentioned above, we can calculate the RBS score for each motif. This criteria is implemented in the `orf_rbs_score` or simply aliased to `orbs` function:

```julia
orf_rbs_score(orf)
29
```
15 changes: 10 additions & 5 deletions src/GeneFinder.jl
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@ using BioSequences:
reverse_complement,
randdnaseq,
ncbi_trans_table,
translate
translate,

ExactSearchQuery,
iscompatible

using BioMarkovChains: BioMarkovChain, ECOLICDS, ECOLINOCDS, log_odds_ratio_score
using IterTools: takewhile, iterated
Expand All @@ -31,19 +34,21 @@ using GenomicFeatures: GenomicFeatures, AbstractGenomicInterval, Strand, summary
include("algorithms/naivefinder.jl")
include("algorithms/naivecollector.jl")

# Coding Criteria
include("criteria/lordr.jl")

# Main functions
include("types.jl")
include("findorfs.jl")
include("iscoding.jl")
include("io.jl")

# Utils and extended functions
include("utils.jl")
include("extended.jl")

# RBS Scoring
include("rbs.jl")

# Coding Criteria
include("criteria.jl")

# Precompiled workloads
include("workload.jl")

Expand Down
77 changes: 70 additions & 7 deletions src/criteria/lordr.jl → src/criteria.jl
Original file line number Diff line number Diff line change
@@ -1,4 +1,38 @@
export log_odds_ratio_decision_rule, lordr #lors
export iscoding,
log_odds_ratio_decision_rule, lordr,
ribsome_binding_site_decision_rule, rbsdr


@doc raw"""
iscoding(orf::ORFI{N,F}; criteria::Function = lordr, kwargs...) -> Bool
Check if the given DNA sequence of an ORF is likely to be coding based on a scoring scheme/function.
## Scoring Criteria/Functions
- `lordr`: Log-Odds Ratio Decision Rule
- `rbsdr`: Ribosome Binding Site Decision Rule
```
phi = dna"GTGTGAGGTTATAACGCCGAAGCGGTAAAAATTTTAAT...AGTGTTTCCAGTCCGTTCAGTTAATAGTCAGGTTAAAGATAAAAGATTGA"
orfs = findorfs(phi)
orf = orfs[2]
ORFI{NaiveFinder}(94:126, '-', 1)
iscoding(orf) # Returns: true
```
"""
function iscoding(
orf::ORFI{N,F};
criteria::Function = lordr, #rbsdr
kwargs...
) where {N,F<:GeneFinderMethod}
return criteria(orf; kwargs...)
end

### Actual criteria functions ###

## Log-Odds Ratio Decision Rule

@doc raw"""
log_odds_ratio_decision_rule(
Expand Down Expand Up @@ -41,15 +75,15 @@ iscoding(sequence) # Returns: true or false
```
"""
function lordr( #log_odds_ratio_decision, also lordr/cudr/kfdr/aadr
sequence::NucleicSeqOrView{DNAAlphabet{N}};
orf::ORFI{N,F};
modela::BioMarkovChain = ECOLICDS,
modelb::BioMarkovChain = ECOLINOCDS,
b::Number = 2,
η::Float64 = 5e-3
) where {N}

scorea = log_odds_ratio_score(sequence; modela=modela, b=b)
scoreb = log_odds_ratio_score(sequence; modela=modelb, b=b)
) where {N,F<:GeneFinderMethod}
orfseq = sequence(orf)
scorea = log_odds_ratio_score(orfseq; modela=modela, b=b)
scoreb = log_odds_ratio_score(orfseq; modela=modelb, b=b)

logodds = scorea / scoreb

Expand All @@ -60,4 +94,33 @@ function lordr( #log_odds_ratio_decision, also lordr/cudr/kfdr/aadr
end
end

const log_odds_ratio_decision_rule = lordr # criteria
const log_odds_ratio_decision_rule = lordr # criteria

## Ribosome Binding Site Decision Rule

"""
ribsome_binding_site_decision_rule(orf::ORFI{N,F}) where {N,F<:GeneFinderMethod} -> Bool
Evaluates if an Open Reading Frame (ORF) has a significant ribosome binding site (RBS).
The function uses the `orf_rbs_score` to calculate a score for the ORF's RBS region and returns
true if the score exceeds a threshold of 9, indicating the presence of at least one RBS.
# Arguments
- `orf::ORFI{N,F}`: An Open Reading Frame Interface (ORFI) object parameterized by N and F,
where F is a subtype of GeneFinderMethod
# Returns
- `Bool`: `true` if the RBS score is greater than 9, `false` otherwise
"""
function rbsdr(orf::ORFI{N,F}) where {N,F<:GeneFinderMethod}
scr = orf_rbs_score(orf)
if scr > 9 # at least one RBS...
return true
else
return false
end
end

const ribsome_binding_site_decision_rule = rbsdr
6 changes: 3 additions & 3 deletions src/extended.jl
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ import BioSequences: translate

## Methods from BioMarkovChains that expand their fuctions to this package structs
import BioMarkovChains: log_odds_ratio_score
export log_odds_ratio_score, lors
# export log_odds_ratio_score, lors

@inline log_odds_ratio_score(orf::ORFI{N,F}; kwargs...) where {N,F} = log_odds_ratio_score(sequence(orf); kwargs...)
@inline log_odds_ratio_decision_rule(orf::ORFI{N,F}; kwargs...) where {N,F} = log_odds_ratio_decision_rule(sequence(orf); kwargs)
# @inline log_odds_ratio_decision_rule(orf::ORFI{N,F}; kwargs...) where {N,F} = log_odds_ratio_decision_rule(sequence(orf); kwargs)

const lors = log_odds_ratio_score
# const lors = log_odds_ratio_score
31 changes: 0 additions & 31 deletions src/iscoding.jl

This file was deleted.

Loading

0 comments on commit 326b855

Please sign in to comment.