Skip to content

Commit

Permalink
Merge pull request #9 from BioJulia/dev
Browse files Browse the repository at this point in the history
Comparisons, Julia/BioJulia installation sections + devcontainer
  • Loading branch information
M-PERSIC authored Aug 9, 2023
2 parents bb36863 + 3ae67bb commit b276171
Show file tree
Hide file tree
Showing 16 changed files with 429 additions and 25 deletions.
18 changes: 18 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"features": {
"ghcr.io/julialang/devcontainer-features/julia:1": {
"channel": "lts"
}
},
"customizations": {
"vscode": {
"extensions": [
"julialang.language-julia",
"tamasfe.even-better-toml",
"eamodio.gitlens"
]
}
},
"onCreateCommand": "julia --project=docs -e 'using Pkg; Pkg.instantiate(); Pkg.precompile();'"
}

8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,14 @@ similar to [SciMLDocs](https://github.com/SciML/SciMLDocs) (see the production p

The rendered BioJuliaDocs site, for testing purposes, is published online using GitHub Pages at [biojulia.dev/BioJuliaDocs](https://biojulia.dev/BioJuliaDocs). A GitHub action rebuilds the site on every successful pull request.

To deploy the site locally:
```julia
# Make sure you are within or are pointing to the the docs/ folder
using Documenter, LiveServer
include("make.jl")
serve(dir="build")
```

## Contributing

We appreciate contributions from users/members of the BioJulia commmunity
Expand Down
1 change: 1 addition & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
DocumenterTools = "35a29f4d-8980-5a13-9543-d66fff28ecb8"
FASTX = "c2308a5c-f048-11e8-3e8a-31650f418d12"
FormatSpecimens = "3372ea36-2a1a-11e9-3eb7-996970b6ffbd"
GFF3 = "af1dc308-cb6b-11e8-32f0-31192efa90f6"
GenomicFeatures = "899a7d2d-5c61-547b-bef9-6698a8d05446"
Indexes = "4ffb77ac-cb80-11e8-1b35-4b78cc642f6d"
IntervalTrees = "524e6230-43b7-53ae-be76-1e9e4d08d11b"
Expand Down
Binary file added docs/assets/JuliaVSCodeExtension.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,14 @@ makedocs(
"getting_started/juliainstallation.md",
"getting_started/toolsinstallation.md",
"getting_started/biojuliainstallation.md",
"getting_started/casescenarios.md",
],
"Comparison With Other Packages/Ecosystems" => [
"comparisons/biopython.md",
"comparisons/scikitbio.md",
"comparisons/bioconductor.md",
"comparisons/bioperl.md",
"comparisons/biojava.md",
"comparisons/bioperl.md",
"comparisons/bioruby.md",
],
],
Expand Down
7 changes: 3 additions & 4 deletions docs/src/comparisons/bioconductor.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

- [Bioconductor](https://www.bioconductor.org/) represents an ecosystem of related genomics tools written in the R programming language
- Tools written in other languages, such as C and Python, are also included with R wrappers available
- Initially released over two decades ago, it now hosts over 2000 packages for bioinformatics and related fields
- Launched over two decades ago, it now hosts over 2000 packages for bioinformatics and related fields
- Packages cover a broard range of methods for the analysis and manipulation of genomic data

**A few equivalent applications between BioJulia and Bioconductor:**

| Application | BioJulia packages | Bioconductor packages |
|:--------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------|
Expand All @@ -25,18 +26,16 @@
| Numerical mathematics | [LinearAlgebra](https://docs.julialang.org/en/v1/stdlib/LinearAlgebra/), [IterativeSolvers](https://iterativesolvers.julialinearalgebra.org/dev/) | `Matrix`, `pracma`, `deSolve` |
| Web applications | [Genie](https://genieframework.com/), [Franklin](https://franklinjl.org/) | `shiny` |


**A few notable differences between Julia and R:**

| Julia | R |
|:-----------------------------------------------------------------------|:---------------------------------------------------------------------------------|
| High-level, general-purpose compiled language | High-level, interpreted language for statistical computing |
| Dynamically typed with multiple dispatch and optional type annotations | Dynamically typed without type annotations support |
| Built-in parallelism via threads, coroutines (Tasks) | Parallelism via external libraries (BLAS, parallel,...) |
| Built-in parallelism via threads, coroutines (Tasks) | Parallelism via external libraries (BLAS, `parallel`,...) |
| Extensive metaprogramming (Lisp-like macros, generated functions,...) | Less extensive metaprogramming (function factories, expression manipulation,...) |
| Single implementation available (JuliaLang) | Multiple implementations available (pqR, Renjin,...) |


**To transition from R to Julia:**
- See [Noteworthy differences from R](https://docs.julialang.org/en/v1/manual/noteworthy-differences/#Noteworthy-differences-from-R) in the Julia manual for a more in-depth comparison
- Use [RCall.jl](https://github.com/JuliaInterop/RCall.jl.git) to seamlessly integrate R code into your Julia project
Expand Down
40 changes: 40 additions & 0 deletions docs/src/comparisons/biojava.md
Original file line number Diff line number Diff line change
@@ -1 +1,41 @@
# [BioJava (Java)](@id biojava)

- [BioJava](https://biojava.org/index.html) is a biological data processing library written in the Java programming language
- BioJava tooling is distributed via multiple classes within the same `org.biojava` package
- Launched in 2002 with six major releases covering more than 11 Java releases

**A few equivalent applications between BioJulia and BioJava:**

| Application | BioJulia packages | BioJava modules |
|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------|
| Input/Output | [FASTX](https://biojulia.dev/FASTX.jl/stable/), [XAM](https://biojulia.dev/XAM.jl/stable/), [BigWig](https://biojulia.dev/BigWig.jl/dev/),... | `nbio.genome.io.fastq`, `nbio.ontology.obo`,... |
| Sequence alignment | [BioSequences](https://biojulia.dev/BioSequences.jl/stable/), [BioAlignments](https://biojulia.dev/BioAlignments.jl/stable/) | `nbio.sequence`, `nbio.alignment` |
| Macromolecular structures | [BioStructures](https://biojulia.dev/BioStructures.jl/stable/) | `nbio.structure` |

**A few package/ecosystem equivalents between Julia and Java:**

| Application | Julia | Java |
|:---------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------|
| Data manipulation/analysis | [DataFrames](https://dataframes.juliadata.org/stable/), [CSV](https://csv.juliadata.org/stable/), [Query](https://www.queryverse.org/Query.jl/stable/) | `Tablesaw` |
| Plotting/visualization | [Plots](https://docs.juliaplots.org/stable/), [Makie](https://docs.makie.org/stable/) | `JFreeChart`, `Jzy3d` |
| Statistical analysis | [Statistics](https://docs.julialang.org/en/v1/stdlib/Statistics/), [HypothesisTests](https://github.com/JuliaStats/HypothesisTests.jl) | `Statistics (Apache Commons)`, `NM Dev` |
| Machine learning | [Flux](https://fluxml.ai/Flux.jl/stable/), [SciML](https://sciml.ai/) | `Java-ML`, `Neuroph` |
| Numerical mathematics | [LinearAlgebra](https://docs.julialang.org/en/v1/stdlib/LinearAlgebra/) | `NM Dev` |
| Notebook/report generator | [IJulia](https://julialang.github.io/IJulia.jl/stable/), [Pluto](https://plutojl.org/) | `IJava` |
| Web applications | [Genie](https://genieframework.com/), [Franklin](https://franklinjl.org/) | `Grails`, `Javalin` |

**A few notable differences between Julia and Java:**

| Julia | Java |
|:-----------------------------------------------------------------------|:-----------------------------------------------------------------------------------------|
| High-level, general-purpose compiled language | High-level, object-oriented, two-step (compiled and interpreted) language |
| Expression-based (statements yield a value) | Statement-based (assignment as a statement) |
| Dynamically typed with multiple dispatch and optional type annotations | Statically typed with required type declarations |
| Built-in parallelism via threads, coroutines (Tasks) | Built-in parallelism via threads, streams, fibers (Project Loom) |
| Extensive metaprogramming (Lisp-like macros, homoiconicity,...) | Less extensive metaprogramming (reflection, annotations,...) |
| Included default package manager | No default package manager (dependency/build management tools include Maven, Gradle,...) |
| Single implementation available (JuliaLang) | Multiple implementations available (OpenJDK, GraalVM,...) |

**To transition from Java to Julia:**
- Use [JavaCall.jl](https://juliainterop.github.io/JavaCall.jl/) to seamlessly integrate Java code into your Julia project
- See [Running External Programs](https://docs.julialang.org/en/v1/manual/running-external-programs/) in the Julia manual for running Java scripts or other programs from Julia
40 changes: 39 additions & 1 deletion docs/src/comparisons/bioperl.md
Original file line number Diff line number Diff line change
@@ -1 +1,39 @@
# [BioPerl (Perl)](@id bioperl)
# [BioPerl (Perl5)](@id bioperl)

- [BioPerl](https://bioperl.org/) represents an ecosystem of related molecular biology modules written in the Perl5 programming language
- Supported by the Open Bioinformatics Foundation and includes additional utilities and interfaces for common bioinformatics applications
- Launched in 2002 and has contributed to major scientific achievements including the Human Genome Project

**A few equivalent application tools between BioJulia and BioPerl:**

| Application | BioJulia packages | BioPerl modules/objects |
|:--------------------|:----------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------|
| Input/Output | [FASTX](https://biojulia.dev/FASTX.jl/stable/), [XAM](https://biojulia.dev/XAM.jl/stable/), [BigWig](https://biojulia.dev/BigWig.jl/dev/),... | `SeqIO` |
| Sequence alignment | [BioSequences](https://biojulia.dev/BioSequences.jl/stable/), [BioAlignments](https://biojulia.dev/BioAlignments.jl/stable/) | `AlignIO`, `SimpleAlign` |
| Data structures | [Kmers](https://biojulia.dev/Kmers.jl/stable/), [IntervalTrees](https://biojulia.dev/IntervalTrees.jl/stable/) | `Bio::Kmer`, `Bio::Tree` |
| Population Genetics | [PopGen](https://biojulia.dev/PopGen.jl/) | `PopGen` |

**A few package/ecosystem equivalents between Julia and Perl5:**

| Application | Julia | Perl5 |
|:---------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------|
| Data manipulation/analysis | [DataFrames](https://dataframes.juliadata.org/stable/), [CSV](https://csv.juliadata.org/stable/), [Query](https://www.queryverse.org/Query.jl/stable/) | `PDL`, `Text-CSV` |
| Plotting/visualization | [Plots](https://docs.juliaplots.org/stable/), [Gadfly](http://gadflyjl.org/stable/), [Makie](https://docs.makie.org/stable/) | `GDGraph`, `Chart-GGPlot` |
| Statistical analysis | [Statistics](https://docs.julialang.org/en/v1/stdlib/Statistics/), [HypothesisTests](https://github.com/JuliaStats/HypothesisTests.jl), [GLM](https://github.com/JuliaStats/GLM.jl) | `Statistics-Descriptive`, `PDL-Stats` |
| Numerical mathematics | [LinearAlgebra](https://docs.julialang.org/en/v1/stdlib/LinearAlgebra/), [Symbolics](https://symbolics.juliasymbolics.org/stable/) | `PDL-LinearAlgebra`, `Math-Symbolic` |
| Notebook/report generator | [IJulia](https://julialang.github.io/IJulia.jl/stable/), [Pluto](https://plutojl.org/) | `Devel-IPerl` |
| Web applications | [Genie](https://genieframework.com/), [Franklin](https://franklinjl.org/) | `Catalyst`, `Mojolicious` |

**A few notable differences between Julia and Perl5:**

| Julia | Perl5 |
|:-----------------------------------------------------------------------|:--------------------------------------------------------------------------------|
| High-level, general-purpose compiled language | High-level, general-purpose interpreted language |
| Dynamically typed with multiple dispatch and optional type annotations | Dynamically typed without type annotations support |
| Built-in parallelism via threads, coroutines (Tasks) | Parallelism via threads, external modules (`Coro`, `Parallel`,...) |
| Lisp-inspired metaprogramming (S-expressions, homoiconicity,...) | Macro-less metaprogramming capabilities (eval, symbol table manipulation,...) |
| Single language implementation (JuliaLang) | Family of related languages/implementations (Perl5, Perl6/Raku, ActivePerl,...) |

**To transition from Perl5 to Julia:**
- Read the [Julia manual](https://docs.julialang.org/) for an in-depth look at its internals and features
- See [Running External Programs](https://docs.julialang.org/en/v1/manual/running-external-programs/) in the manual for running Perl scripts or other programs from Julia
Loading

0 comments on commit b276171

Please sign in to comment.