Giter Club home page Giter Club logo

lisancao / biocswirl Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 110 KB

BiocSwirl() aims to make learning bioinformatics interactive through highly technical and easily updateable terminal-style courses. You will be taken through an entire workflow using R/Bioconductor and learn the differences between file formats, good coding practices, and troubleshooting through feedback on your code. In Hackseq 2019 we focussed on scRNA-seq.

License: MIT License

R 29.30% Shell 70.70%

biocswirl's Introduction

THIS REPOSITORY IS NOW DEPRICATED. PLEASE SEE https://github.com/biocswirl-dev-team WHERE THE CONTINUED DEVELOPMENT OF THIS PROJECT, INCLCUDING CLEANED REPOSITORIES AND ISSUES HAVE MOVED.

BiocSwirl: Terminal based Bioconductor Courses

Keywords:

Tutorials, Communication, scRNA-seq, Workflow Design, Command Line

Package purpose:

There have been many resources available to interdisciplinary researchers for years now in the form of Rbookdown tutorials, in person workshops, and Youtube videos. However, each method of learning has its pros and cons - for blogpost and video type tutorials we have the inability to troubleshoot and raise our hands, for in-person workshops we have time limitations.

Bioinformatics has grown in adoption in many traditional non-computer science fields that lack the time and energy to go truly in depth past copying and pasting code found online. Swirlstats and terminal-based Python courses such as browser-based Codeacademy, have shown to be efficient course structures to teach data science and statistics to complete beginners.

BiocSwirl, inspired by such courses, aims to make learning bioinformatics concepts hands on through the development of course material that takes you through the common bioinformatics workflows.

Package details:

During a 3-day hackathon, we developed swirlify()-style console/terminal based courses for the purposes of teaching bioinformatics workflow steps and good coding practices. The philosophy is to keep the GUI use and application switching as minimal as possible but the content itself very rich and informative. Bioconductor, Radian, bioSyntax (shoutout to hackseq 2016!), are examples of some packages we use to teach workflow steps, file types, and concepts in R.

We also develop biovim: a powerful bioinformatics editor, and biocterm: a terminal environment for our course. BiocTerm is a standalone terminal application that acts as the ideal interface for those conducting bioinformatics as it integrates our custom editor, biovim (a vim installation bundled with bio plugins), radian (an r console), and tmux (our customized terminal wrapper) in a contained instance. Our interface supports R, Bash, and vim.

BiocSwirl is our R package and course installation client, used to deliver our interactive courses and can be run within console. Please refer here for the lesson plan. In this hackathon (hackseq19) we focus on scRNA-seq. For future projects, the plan is to add other courses (for example, whole-genome sequencing) and make lessons for other languages (for instance, Python).

The interface (BiocTerm) and R package (BiocSwirl) can be used independently of each other but are best used together for people who are interested in making the most of their learning experience.

Installation:

Please refer to the installation instructions for BiocSwirl setup details.

Biocterm:

Biovim:

BiocSwirl:

Examples of use (GSE71585 dataset):

  • Low Level Analyses
    a. Importing, raw data preprocessing
    b. Alignment
    c. Quality Control
    d. Normalization (with and without spike-ins)
    e. Dimensionality Reduction
    f. Correcting for batch effects
  • High Level Analyses
    a. Clustering methods, exploratory analyses
    b. Cell cycle phase classification from gene expression data
    c. HVG and marker gene identification
  • Visualizations for high-throughput data

Further reference:

Vignette - in progress

Team members:

Name GitHub ID Work done
Lisa N. Cao lisancao User Environment & Interface Development
Jackie Lu jql6 User Environment & Interface Development (tmux)
Jeremy Fan zhemingfan User Environment & Interface Development
Mariam Arab mariamarab User Environment & Installation
Kate Tyshchenko ktyshchenko Documentation, Course Material
Paaksum Wong paaksum Course Material (main)
Sourav Singh souravsingh Course Material

Details about hackseq19 project

Contributing

We are always looking for pull requests and active contributers, if you are interested in designing a course for us or have a feature in mind please submit an issue before doing a pull request. We are currently looking for help developing on Windows systems, bioinformatics workflows and concepts, and support for even more languages in BiocTerm.

biocswirl's People

Contributors

ktyshchenko avatar lisancao avatar paaksum avatar mariamarab avatar zhemingfan avatar souravsingh avatar

Stargazers

Shaurita Hutchins avatar  avatar

Watchers

 avatar

biocswirl's Issues

[biocterm] [dev] [WIP] Biocterm config files

[biocterm] [dev] [WIP] Biocterm config files

Tasks

MARIAM
[x] create config file/command that installs/launches radian with nvim and biosyntax integration, with contained install directory and custom .vimrc that doesn't touch user's prexisting install
[ ] write custom tmux plugin

JACKIE:

[x] code colour scheme
[ ] add annotated features (e.g. lesson progress, custom headings, user info, etc)
[ ] add custom hotkeys (pane switching, launch, close, etc)

Resources

TBA

Tag can be

biocswirl(related to course material)
biocterm (interface changes)
dev      (developers only)
file     (changes to file and folder structuring) 
rpkg     (r package/usethis and CRAN documentation changes)
feat     (new feature)
fix      (bug fix)
refactor (refactoring code)
style    (formatting, missing semi colons, etc; no code change)
doc      (changes to documentation)
test     (adding or refactoring tests; no production code change)
version  (version bump/new release; no production code change)
dbg      (Changes in debugging code/frameworks; no production code change)
license  (Edits regarding licensing; no production code change)
hack     (Temporary fix to make things move forward; please avoid it)
WIP      (Work In Progress; for intermediate commits to keep patches reasonably sized)

Peer Review #2

  1. what you like about the README
    amazing improvement from yesterday!

  2. what you find confusing or don't understand

  • all confusing sections fixed from yesterday's comments
  1. what you think is missing
    the vignette but they already know that ;)

[biocswirl] [dev] [WIP] Biocswirl R package initialization

[biocswirl] [dev] [WIP] Biocwirl R package initialization

Tasks

[ ] make r package installable aand pass first CRAN check
[ ] create functions.R file with biocswirl functions and config including: install location, install certain courses, install course dataset, etc
[ ] CRAN documentation including: dependences/suggest/etc, and other relevant data
[ ] Integration of YAML files and follows swirlify()-like file structure, behaves like swirlify()

Resources

Tag can be

biocswirl(related to course material)
biocterm (interface changes)
dev      (developers only)
file     (changes to file and folder structuring) 
rpkg     (r package/usethis and CRAN documentation changes)
feat     (new feature)
fix      (bug fix)
refactor (refactoring code)
style    (formatting, missing semi colons, etc; no code change)
doc      (changes to documentation)
test     (adding or refactoring tests; no production code change)
version  (version bump/new release; no production code change)
dbg      (Changes in debugging code/frameworks; no production code change)
license  (Edits regarding licensing; no production code change)
hack     (Temporary fix to make things move forward; please avoid it)
WIP      (Work In Progress; for intermediate commits to keep patches reasonably sized)

[biocswirl][biocterm][dev][hack] Hackseq 2019 Demo + Presentation

[biocswirl][biocterm][dev][hack] Hackseq 2019 Demo + Presentation

Tasks

  • environment finalization + install on demo computer
  • get biocswirl() to behave like swirlify ()
  • Presentation materials for print send off
  • communication diagram (biocterm > biovim > biocswirl // tmux (radian(biocswirl)/bash + vim (biosyntax))
  • features, screenshots?
  • team members and roles

[ ] Demo first run
[ ] Present

Resources

Tag can be

biocswirl(related to course material)
biocterm (interface changes)
dev      (developers only)
file     (changes to file and folder structuring) 
rpkg     (r package/usethis and CRAN documentation changes)
feat     (new feature)
fix      (bug fix)
refactor (refactoring code)
style    (formatting, missing semi colons, etc; no code change)
doc      (changes to documentation)
test     (adding or refactoring tests; no production code change)
version  (version bump/new release; no production code change)
dbg      (Changes in debugging code/frameworks; no production code change)
license  (Edits regarding licensing; no production code change)
hack     (Temporary fix to make things move forward; please avoid it)
WIP      (Work In Progress; for intermediate commits to keep patches reasonably sized)

[biocterm] [dev] [WIP] Biocterm backend

[biocterm] [dev] [WIP] Biocterm backend

Tasks

[ ] create output log
https://github.com/tmux-plugins/tmux-logging
[ ] session loading/restoration and lesson progress log + metadata
https://github.com/tmux-plugins/tmux-continuum
https://github.com/tmux-plugins/tmux-resurrect

[ ] config pointers + file structure for contained installation
https://github.com/tmux-plugins/tpm/blob/master/docs/changing_plugins_install_dir.md

[ ] bash scripting for: install, r-vim, bash-r communication config, pulling system data, .ini files

Resources

tmux plugin manager: https://github.com/tmux-plugins/tpm

[other usability]
https://github.com/tmux-plugins/tmux-pain-control
https://github.com/tmux-plugins/tmux-yank


Tag can be

biocswirl(related to course material)
biocterm (interface changes)
dev      (developers only)
file     (changes to file and folder structuring) 
rpkg     (r package/usethis and CRAN documentation changes)
feat     (new feature)
fix      (bug fix)
refactor (refactoring code)
style    (formatting, missing semi colons, etc; no code change)
doc      (changes to documentation)
test     (adding or refactoring tests; no production code change)
version  (version bump/new release; no production code change)
dbg      (Changes in debugging code/frameworks; no production code change)
license  (Edits regarding licensing; no production code change)
hack     (Temporary fix to make things move forward; please avoid it)
WIP      (Work In Progress; for intermediate commits to keep patches reasonably sized)

[biocterm] [dev] [WIP] VIM all-in-one interface

[biocterm] [dev] [WIP] VIM all-in-one interface

Tasks

[x] configure radian to natively display files in vim and switch to bash for a more seamless and integrated biocterminal experience

Resources

Tag can be

biocswirl(related to course material)
biocterm (interface changes)
dev      (developers only)
file     (changes to file and folder structuring) 
rpkg     (r package/usethis and CRAN documentation changes)
feat     (new feature)
fix      (bug fix)
refactor (refactoring code)
style    (formatting, missing semi colons, etc; no code change)
doc      (changes to documentation)
test     (adding or refactoring tests; no production code change)
version  (version bump/new release; no production code change)
dbg      (Changes in debugging code/frameworks; no production code change)
license  (Edits regarding licensing; no production code change)
hack     (Temporary fix to make things move forward; please avoid it)
WIP      (Work In Progress; for intermediate commits to keep patches reasonably sized)

[biocswirl] [biocterm] [dev] [doc] Hackseq second README check

[biocswirl] [biocterm] [dev] [doc] Hackseq second README check

Tasks

[x] Include names & git usernames of ALL your team members
Depending on your project status:
Standing prototype:
[x] README targets end users
[x] Should have clear installation/usage instructions
Ongoing work:
[ ] README targets potential developers
[ ] Should have clear descriptions of the different files/scripts, their relation to each other, and how they should fit together
Other:
[x] README targets people interested in hackseq in general
[x] Should have a description of the task distribution, the work done, and the experience overall
Due 3PM, get feedback by 5PM

Resources

Tag can be

biocswirl(related to course material)
biocterm (interface changes)
dev      (developers only)
file     (changes to file and folder structuring) 
rpkg     (r package/usethis and CRAN documentation changes)
feat     (new feature)
fix      (bug fix)
refactor (refactoring code)
style    (formatting, missing semi colons, etc; no code change)
doc      (changes to documentation)
test     (adding or refactoring tests; no production code change)
version  (version bump/new release; no production code change)
dbg      (Changes in debugging code/frameworks; no production code change)
license  (Edits regarding licensing; no production code change)
hack     (Temporary fix to make things move forward; please avoid it)
WIP      (Work In Progress; for intermediate commits to keep patches reasonably sized)

Peer review #1

  1. what you like about the README
  • Excited to see this project come together! It looks very exciting :)
  1. what you find confusing or don't understand
  • Formatting the purpose so that it isn't one large paragraph might help it being clearer
  1. what you think is missing
  • clarify what you mean by low level and high level analyses
  • but overall it is very comprehensive!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.