Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finish case scenarios + new devcontainer extension #14

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
"extensions": [
"julialang.language-julia",
"tamasfe.even-better-toml",
"eamodio.gitlens"
"eamodio.gitlens",
"stkb.rewrap",
]
}
},
Expand Down
2 changes: 1 addition & 1 deletion docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ makedocs(
],
],
# Showcase of Cool Examples
"What is BioJulia" => ["overview.md",
"What is BioJulia?" => ["overview.md",
]
]
)
Expand Down
Binary file added docs/src/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.
28 changes: 20 additions & 8 deletions docs/src/comparisons/bioconductor.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
# [Bioconductor (R)](@id bioconductor)

- [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
- 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
* [Bioconductor](https://www.bioconductor.org/) represents an ecosystem of
related genomics tools written in the R programming language
M-PERSIC marked this conversation as resolved.
Show resolved Hide resolved
* Tools written in other languages, such as C and Python, are also included with
R wrappers available
* 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:**

Expand Down Expand Up @@ -37,7 +41,15 @@
| 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
- Use [JuliaCall](https://cran.r-project.org/web/packages/JuliaCall/readme/README.html) to seamlessly integrate Julia code into your R project
- Check out the [Tidier.jl ecosystem](https://tidierorg.github.io/Tidier.jl/dev/) for packages similar to those commonly found in `tidyverse`
* 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
* Use
[JuliaCall](https://cran.r-project.org/web/packages/JuliaCall/readme/README.html)
to seamlessly integrate Julia code into your R project
* Check out the [Tidier.jl
ecosystem](https://tidierorg.github.io/Tidier.jl/dev/) for packages similar to
those commonly found in `tidyverse`

15 changes: 10 additions & 5 deletions docs/src/comparisons/biojava.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# [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
* [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:**

Expand Down Expand Up @@ -37,6 +39,9 @@
| 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
* 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

16 changes: 11 additions & 5 deletions docs/src/comparisons/bioperl.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
# [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
* [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:**

Expand Down Expand Up @@ -35,6 +38,9 @@
| 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
* 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

23 changes: 16 additions & 7 deletions docs/src/comparisons/biopython.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
# [Biopython (Python3)](@id biopython)

- [Biopython](https://biopython.org/) represents an ecosystem of related biology tools written in the Python3 programming language
- Unlike with BioJulia, Biopython tools are installed together as modules into a single `biopython` package
- Launched over two decades ago with major releases covering the Python2/3 transition
- Capabilities cover a number of molecular biology applications including sequence alignment, population genetics, and machine learning
* [Biopython](https://biopython.org/) represents an ecosystem of related biology
tools written in the Python3 programming language
* Unlike with BioJulia, Biopython tools are installed together as modules into a
single `biopython` package
* Launched over two decades ago with major releases covering the Python2/3
transition
* Capabilities cover a number of molecular biology applications including
sequence alignment, population genetics, and machine learning

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

Expand Down Expand Up @@ -40,7 +44,12 @@
| Arrays are column-major (columns are contiguous in memory) | (Numpy) arrays are row-major by default (rows are contiguous in memory) |

**To transition from Python3 to Julia:**
- See [Noteworthy differences from Python](https://docs.julialang.org/en/v1/manual/noteworthy-differences/#Noteworthy-differences-from-Python) in the Julia manual for a more in-depth comparison
- Use [PythonCall.jl](https://github.com/cjdoris/PythonCall.jl.git)/[CondaPkg.jl](https://github.com/JuliaPy/CondaPkg.jl.git) to seamlessly integrate Python3 code into your Julia project
- Use [juliacall](https://pypi.org/project/juliacall/) to seamlessly integrate Julia code into your Python3 project
* See [Noteworthy differences from
Python](https://docs.julialang.org/en/v1/manual/noteworthy-differences/#Noteworthy-differences-from-Python)
in the Julia manual for a more in-depth comparison
* Use
[PythonCall.jl](https://github.com/cjdoris/PythonCall.jl.git)/[CondaPkg.jl](https://github.com/JuliaPy/CondaPkg.jl.git)
to seamlessly integrate Python3 code into your Julia project
* Use [juliacall](https://pypi.org/project/juliacall/) to seamlessly integrate
Julia code into your Python3 project

18 changes: 12 additions & 6 deletions docs/src/comparisons/bioruby.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
# [BioRuby (Ruby)](@id bioruby)

- [BioRuby](http://bioruby.org/) represents an ecosystem of related biology tools written in the Ruby programming language
- Unlike with BioJulia, BioRuby tools are installed together as classes/modules into a single `bio` gem
- Launched in 2000 with two major releases covering the Ruby1/2/3 transitions
- Primarily composed of wrapper classes/modules for common bioinformatics, molecular biology applications
* [BioRuby](http://bioruby.org/) represents an ecosystem of related biology
tools written in the Ruby programming language
* Unlike with BioJulia, BioRuby tools are installed together as classes/modules
into a single `bio` gem
* Launched in 2000 with two major releases covering the Ruby1/2/3 transitions
* Primarily composed of wrapper classes/modules for common bioinformatics,
molecular biology applications

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

Expand Down Expand Up @@ -35,6 +38,9 @@
| Single implementation available (JuliaLang) | Multiple implementations available (TruffleRuby, mruby,...) |

**To transition from Ruby 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 Ruby scripts or other programs from 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 Ruby scripts or other programs from Julia

20 changes: 14 additions & 6 deletions docs/src/comparisons/scikitbio.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
# [scikit-bio (Python3)](@id scikitbio)

- [scikit-bio](http://scikit-bio.org/) represents a Python3 library providing data structures, algorithms, and additional bioinformatics resources
- Unlike with BioJulia, scikit-bio tools are installed together as modules into a single `skbio` package
- Launched in 2014 based on a BSD-relicensing of PyCogent and QIIME code and is currently in beta/maintenance mode
* [scikit-bio](http://scikit-bio.org/) represents a Python3 library providing
data structures, algorithms, and additional bioinformatics resources
* Unlike with BioJulia, scikit-bio tools are installed together as modules into
a single `skbio` package
* Launched in 2014 based on a BSD-relicensing of PyCogent and QIIME code and is
currently in beta/maintenance mode

**A few equivalent application tools between BioJulia and scikit-bio:**

Expand Down Expand Up @@ -38,7 +41,12 @@
| Arrays are column-major (columns are contiguous in memory) | (Numpy) arrays are row-major by default (rows are contiguous in memory) |

**To transition from Python3 to Julia:**
- See [Noteworthy differences from Python](https://docs.julialang.org/en/v1/manual/noteworthy-differences/#Noteworthy-differences-from-Python) in the Julia manual for a more in-depth comparison
- Use [PythonCall.jl](https://github.com/cjdoris/PythonCall.jl.git)/[CondaPkg.jl](https://github.com/JuliaPy/CondaPkg.jl.git) to seamlessly integrate Python3 code into your Julia project
- Use [juliacall](https://pypi.org/project/juliacall/) to seamlessly integrate Julia code into your Python3 project
* See [Noteworthy differences from
Python](https://docs.julialang.org/en/v1/manual/noteworthy-differences/#Noteworthy-differences-from-Python)
in the Julia manual for a more in-depth comparison
* Use
[PythonCall.jl](https://github.com/cjdoris/PythonCall.jl.git)/[CondaPkg.jl](https://github.com/JuliaPy/CondaPkg.jl.git)
to seamlessly integrate Python3 code into your Julia project
* Use [juliacall](https://pypi.org/project/juliacall/) to seamlessly integrate
Julia code into your Python3 project

78 changes: 45 additions & 33 deletions docs/src/getting_started/biojuliainstallation.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,26 @@

## Standard installation

As with any Julia package, you can easily install any BioJulia package with the help of the [official
package manager](https://pkgdocs.julialang.org/v1/) included by default with every Julia installation.
All you need to know is the name of the package of interest!
As with any Julia package, you can easily install any BioJulia package with the
help of the [official package manager](https://pkgdocs.julialang.org/v1/)
included by default with every Julia installation. All you need to know is the
name of the package of interest!

There are two standard methods to install a package:

!!! note
The Julia package manager, similarly to conda and others, organizes dependencies according to the "environment"
they are in, meaning in which directory the packages are installed to. The default Julia session adds packages
to a "global" environment, usually the .julia/environments/v1.x directory. When you are developing a package,
you must activate its project-specific environment by calling `activate MyProjectName` (see [Package development](@ref pkg-devel)
below) so that you can isolate your dependencies from the global environment and manage them independently. See
[Working with Environment](https://pkgdocs.julialang.org/v1/environments/) for more details.
!!! note
The Julia package manager, similarly to conda and others, organizes
dependencies according to the "environment" they are in, meaning in which
directory the packages are installed to. The default Julia session adds
packages to a "global" environment, usually the .julia/environments/v1.x
directory. When you are developing a package, you must activate its
project-specific environment by calling `activate MyProjectName` (see
[Package development](@ref pkg-devel) below) so that you can isolate your
dependencies from the global environment and manage them independently. See
[Working with Environment](https://pkgdocs.julialang.org/v1/environments/)
for more details.

- **The package manager (Pkg) module**
* **The package manager (Pkg) module**

```julia
julia> using Pkg
Expand All @@ -26,11 +31,12 @@ julia> Pkg.add("<name of package here>")
julia> using <name of package here>
```

!!! note
One excellent trick is that any Julia code with the `julia>` prompt included at the beginning of the
line can be copy/pasted as is into the REPL! See the [Julia REPL](@ref julia-repl) section for more.
!!! note
One excellent trick is that any Julia code with the `julia>` prompt
included at the beginning of the line can be copy/pasted as is into the
REPL! See the [Julia REPL](@ref julia-repl) section for more.

- **Pkg mode**
* **Pkg mode**

```julia
# Enter ]
Expand All @@ -41,31 +47,34 @@ julia> using <name of package here>
julia> using <name of package here>
```

!!! note
Just like with the previous method, you can copy/paste code with the `(@v1.x) pkg>` prompt included
and Julia will work correctly! You can even skip having to enter Pkg mode by just entering directly
`(@v1.x) pkg> add...`. You do not need to manually change the version number indicated in the
prompt if you have a different Julia version than that which is listed, it is all handled for you.
!!! note J
Just like with the previous method, you can copy/paste code with the
`(@v1.x) pkg>` prompt included and Julia will work correctly! You can even
skip having to enter Pkg mode by just entering directly `(@v1.x) pkg>
add...`. You do not need to manually change the version number indicated in
the prompt if you have a different Julia version than that which is listed,
it is all handled for you.

## [Package development](@id pkg-devel)

If you are interested in developing a new or existing BioJulia/Julia package, the package manager can also
help you by first cloning the package repository to your development machine. Pkg will then load the required
dependencies in a new dependency environment based on the package's `Project.toml` file. Thereafter, both the
direct and indirect dependencies can be locked using a generated `Manifest.toml` if needed and a pull request
can be submitted.
If you are interested in developing a new or existing BioJulia/Julia package,
the package manager can also help you by first cloning the package repository to
your development machine. Pkg will then load the required dependencies in a new
dependency environment based on the package's `Project.toml` file. Thereafter,
both the direct and indirect dependencies can be locked using a generated
`Manifest.toml` if needed and a pull request can be submitted.

There are two standard methods to set up Julia for developing a package:

- **The package manager (Pkg) module**
* **The package manager (Pkg) module**

```julia
julia> using Pkg
julia> Pkg.develop("<name of package here>")
julia> using <name of package here>
```

- **Pkg mode**
* **Pkg mode**

```julia
# Enter ]
Expand All @@ -83,11 +92,14 @@ julia> using <name of package here>
julia> using <name of package here>
```

!!! note
You can skip straight to `(@v1.9) pkg> activate ...` if you have already installed the package locally,
simply make sure to point Pkg to the right path as shown above.
!!! note
You can skip straight to `(@v1.9) pkg> activate ...` if you have
already installed the package locally, simply make sure to point Pkg to the
right path as shown above.

You can now change your source code and load them into the Julia session with `using <name of package here>`.
To test your code, run `(@v1.9) pkg> test` to run the package's test suite to ensure that everything works
correctly. When you are done developing the package, enter `(@v1.9) pkg> free` to stop tracking the package.
You can now change your source code and load them into the Julia session with
`using <name of package here>`. To test your code, run `(@v1.9) pkg> test` to
run the package's test suite to ensure that everything works correctly. When you
are done developing the package, enter `(@v1.9) pkg> free` to stop tracking the
package.

Loading
Loading