diff --git a/.gitignore b/.gitignore index 3476f27..7b8911e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /.quarto/ -/docs/ \ No newline at end of file +/docs/ +**/*.quarto_ipynb diff --git a/_quarto.yml b/_quarto.yml index 29e28fa..edb3ad0 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -7,12 +7,17 @@ book: author: "Arash B. Abadi" date: last-modified cover-image: images/patoq_cover_t.png + repo-url: https://github.com/arashabadi/patoq + repo-actions: [edit, issue] + chapters: - index.qmd - - part: "Prerequisites" - chapters: - - prerequisites.qmd - - part: "Main Sections" + - part: prerequisites.qmd + chapters: + - biology_fundamentals.qmd + - mathematics_fundamentals.qmd + - computer_science_fundamentals.qmd + - part: "Special topics" chapters: - omics-data.qmd - modeling-simulation.qmd diff --git a/biology_fundamentals.qmd b/biology_fundamentals.qmd new file mode 100644 index 0000000..4c92c45 --- /dev/null +++ b/biology_fundamentals.qmd @@ -0,0 +1,19 @@ +# Biology fundamentals and resources + +## Key Concepts In Biology +- Molecular Biology: DNA, RNA, proteins, gene expression +- Cell Biology: Cell structure, organelles, and functions +- Genetics: Inheritance, genetic variation, genomics +- Biochemistry: Metabolic pathways, enzyme kinetics +- Biophysics: Physical principles in biological systems + +## Recommended Resources +- **Books**: + - *Molecular Biology of the Cell* by Bruce Alberts + - *Lewin's Genes* by Jocelyn E. Krebs et al. + - *Lehninger Principles of Biochemistry* by Nelson and Cox + - *Physical Biology of the Cell* by Rob Phillips + +- **Online Courses**: + - [Introduction to Biology: The Secret of Life](https://www.edx.org/course/introduction-to-biology-the-secret-of-life) on edX + - [MIT OpenCourseWare: Introduction to Biology](https://ocw.mit.edu/courses/7-01sc-fundamentals-of-biology-fall-2011/) \ No newline at end of file diff --git a/computer_science_fundamentals.qmd b/computer_science_fundamentals.qmd new file mode 100644 index 0000000..b76e117 --- /dev/null +++ b/computer_science_fundamentals.qmd @@ -0,0 +1,191 @@ +# Computer science fundamentals and resources + + - *Bioinformatics Data Skills* by Vince Buffalo + + + +# Operating system Linux +## Linux basic resources +### Books +### Online courses + +## Linux advanced resources +### Books +### Online courses + +## Linux persian reources + +## Linux fast tutorial + + +# Git and Github + +## Git basic resources + +### Books +- [head first git](https://i-love-git.com/) + +### Online courses +- [git - the simple guide - no deep shit!](https://rogerdudler.github.io/git-guide/) +- [Git Tutorial - Medium by Jaaeehoonkim](https://medium.com/@jaaeehoonkim/git-tutorial-1-31d0b1db1940) + +## Git advanced resources +### Books +- The best and most reliable: [Free book of Pro Git](https://git-scm.com/book/en/v2) +- [Happy Git and GitHub for the useR](https://happygitwithr.com/) + +### Online courses +- [Introduction to Git and GitHub](https://www.coursera.org/learn/introduction-git-github) on Coursera + +## Git persian reources +- [ دوره رایگان، جذاب و خیلییی کوتاه گیت جادی تو فرادرس](https://faradars.org/courses/fvgit9609-git-github-gitlab) +- [Milad Bahrami youtube playlist](https://www.youtube.com/playlist?list=PLhpS3tgUDZcpamFNTdjXyRKzFGaBAkcLq) +- [Ashkan Rahmani youtube playlist](https://www.youtube.com/playlist?list=PLG-hncsy5aQ4keIG-pNoGj-zzU7TpFNPR) +- [Git mag youtube playlist](https://www.youtube.com/playlist?list=PL1xdRbCBrpofX93iVIkyujskR4cCy261S) +- [Salar Hagh youtube playlist](https://www.youtube.com/playlist?list=PLprvbQiR3cN9M3g22ui3MiEFkqLpVubAU) +- [neolearn youtube video](https://www.youtube.com/watch?v=TEx_mRpIDkA) +- [Sarvin Style Coding youtube video](https://www.youtube.com/watch?v=xDdal3QSypE) + + +## Git fast tutorial +
+![Source: Google Images](./images/git/git_finalfinal.jpg){.image width="700px"} +
+ +### What is Version Control? + +Imagine you're writing a research paper. You make changes, save different versions, and sometimes want to go back to previous versions. Version control is like having a time machine for your files - it helps you track changes, collaborate with others, and maintain a history of your work. + +Git was made by Linus Torvalds, the same person who made Linux! It is like a super-powered save system. Instead of saving files with names like `paper_FINAL_final_UPDATED_NEW.docx` or `proj_NEW_LASTEST.R`, Git keeps track of all changes automatically. + +### Basic Git Concepts & Commands + +- **Repository (Repo)**: Think of it as a project folder that Git watches. Like a photo album that keeps track of all your project's versions. **Local repo** is a copy of the remote repo on your computer. **Remote repo** can be the version stored on GitHub or GitLab. + +- **Commit**: Like taking a snapshot of your work. Each commit is a saved point you can return to. Like saving a checkpoint in a video game or giving your file a name/version. + +
+![Git in a nutshell - [Source](https://medium.com/@jaaeehoonkim/git-tutorial-1-31d0b1db1940)](./images/git/git-medium.png){.image width="600px"} +
+ +- **Branch**: Like creating a parallel universe for your work. You can experiment without affecting the main project. Like writing a draft of your paper without changing the original. Also can be used to collaborate with others, simultaneously working on the same project! You can **Merge** your changes back to the main branch after you are done. Master/Main branch is the main branch of the repo. + +
+![Git Branches - [Source](https://www.nobledesktop.com/learn/git/git-branches)](./images/git/git-branches-merge.png){.image width="500px"} +
+ +```bash +# Start a new project (create a new repository) +git init + +# Check the status of your files +git status + +# Add files to be saved (staging) +git add filename.txt # Add specific file +git add . # Add all files + +# Save your changes (commit) +git commit -m "Description of changes" + +# See your project history +git log + +# Reset your branch to the latest commit +git reset --hard +``` + +### GitHub: Your Project's Home on the Internet + +![GitHub vs Bitbucket vs GitLab](./images/git/github.jpg) + +GitHub is like a social network for your code. It's where you can store your projects online, collaborate with others and share your work with the world. GitHub has **Repository Hosting** - a cloud storage specifically for code, **Issue Tracking** - a to-do list for your project and bug reporting, **Pull Requests** - suggesting changes to someone else's work or requesting changes to your own work, **Code Review** - peer review process for your code, and **CI/CD** features. +Common workflows in GitHub: **Fork a Repository**: Like making a copy of someone else's project. You can modify it without affecting the original. **Push Changes**: Like uploading your changes to GitHub. **Clone a Repository**: Like downloading a project to your computer. + +```bash +# Clone a repository +git clone https://github.com/username/repository.git + +# Get updates from remote repository +git pull + +# Send your changes to remote repository +git push + +``` + +### Common Scenarios and Best Practices + +When working with Git, follow these key practices: write short & clear commit messages to document changes, create feature branches for new work, keep your local copy updated regularly, and review changes before committing. For beginners, **start with basic commands and simple projects**, you can utilize visual tools like GitHub Desktop or VS Code's Git integration but I prefer to use the command line (more straightforward), learn from mistakes. Git maintains history so you can always revert!! + +What usually happens daily: + +1. **Starting a New Project** + ```bash + git init + git add . + git commit -m "Initial commit" + ``` +* **Note**: I prefer to initialize a new repository in GitHub with a README file and LICENSE, and then clone it to my local machine. + +2. **Updating Your Work** + ```bash + git pull + # Make changes + git add . + git commit -m "Description of changes" + git push + ``` + +3. **Working with Branches** + ```bash + git checkout -b new-branch-name + # Make changes + git add . + git commit -m "Description of changes" + git push + git checkout main + git merge new-branch-name + ``` + +
+![Git and B Cell Analogy!](./images/git/git-bcell-r.png){.image width="500px"} +
+ + +# R +## Link to fast tutorial + +## R basic resources + +### Books + +### Online courses + +## R advanced resources + +### Books + +### Online courses + +## R persian reources + - *R for Data Science* by Hadley Wickham + - [R Programming](https://www.coursera.org/learn/r-programming) on Coursera + +## R fast tutorial + +# Python + +## Python basic resources +### Books + - *Python for Biologists* by Martin Jones +### Online courses + +## Python advanced resources +### Books +### Online courses + - [Python for Data Science and AI](https://www.coursera.org/learn/python-for-applied-data-science-ai) on Coursera + +## Python persian reources + +## Python fast tutorial diff --git a/images/bioinformatics_ven_diagram.jpg b/images/bioinformatics_ven_diagram.jpg new file mode 100644 index 0000000..07ea184 Binary files /dev/null and b/images/bioinformatics_ven_diagram.jpg differ diff --git a/index.qmd b/index.qmd index 3ee9f1f..c9db2ed 100644 --- a/index.qmd +++ b/index.qmd @@ -1,67 +1,11 @@ -## Welcome +# Welcome {.unnumbered} -PATOQ (پاتوق) is a curated collection of resources & quick tutorials around Bioinformatics, Data Science, ML, etc. The term "Patoq" is a Persian (Farsi) word that means "gathering place" or "social hangout". PATOQ is a gathering place where individuals interested in bioinformatics, computational biology, data science, machine learning, and related fields can find valuable information and stay current with the latest advancements. +PATOQ (پاتوق) is a curated collection of resources & quick tutorials around Bioinformatics, Data Science, ML, etc. -## Table of Contents +The term "Patoq" is a Persian (Farsi) word that means "gathering place" or "social hangout". -- Prerequisites - - Biology Fundamentals - - Programming Fundamentals - - Mathematics Fundamentals - - Statistics and Probability Fundamentals - - Project Management and Communication Skills - - Case Studies and Practical Applications +PATOQ is a gathering place where individuals interested in bioinformatics, computational biology, data science, machine learning, and related fields can find valuable information and stay current with the latest advancements. -- Main Sections - - Omics Data Analysis and Interpretation - - Genomics - - Transcriptomics - - Proteomics - - Metabolomics - - Epigenomics - - Metagenomics - - Network and Pathway Analysis - - Modeling and Simulation - - Molecular Modeling and Dynamics - - Systems Biology - - Computational Ecology, Evolution and Phylogenetics - - Computational Pharmacology and Drug Design - - Mathematical Modeling of Biological Systems - - Integrated Platforms, Tools, and Technologies - - Version Control: Git & GitHub - - SaaS Platforms - - Cloud Computing and Data Management - - High-Performance Computing (HPC) - - Collaborative Research Tools - - Data Visualization Techniques - - Big Data Analysis - - Specialized Topics - - Artificial Intelligence - - Clinical Bioinformatics - - Agricultural Bioinformatics - - Synthetic Biology - - Personalized Medicine - - Environmental Bioinformatics & Epidemiology - - Biomolecular Engineering - - Genetic Engineering - -- Additional Resources - - YouTube Channels - - Persian Resources (بنمایگان پارسی) - - Open-Source Projects and Repositories - - Courses - - Books - - Scientific Journals & Publications - - Vignettes & Websites - - R packages - - Miscellaneous - - Topic Based - - Conferences, Workshops, and Webinars - - Career Guidance and Job Opportunities - - Networking and Collaboration - - Regular Updates - - This book is a Quarto-based online HTML book for the PATOQ project. See [CONTRIBUTING.md](https://github.com/arashabadi/patoq/blob/main/CONTRIBUTING.md) for more information. diff --git a/mathematics_fundamentals.qmd b/mathematics_fundamentals.qmd new file mode 100644 index 0000000..aa3109e --- /dev/null +++ b/mathematics_fundamentals.qmd @@ -0,0 +1,37 @@ +# Mathematics fundamentals and resources + +## Key Concepts +- Linear Algebra: Vectors, matrices, and their applications +- Calculus: Differential and integral calculus +- Discrete Mathematics: Combinatorics, graph theory +- Algorithms and Data Structures +- Numerical Methods + +## Recommended Resources +- **Books**: + - *Introduction to Linear Algebra* by Gilbert Strang + - *Discrete Mathematics and Its Applications* by Kenneth H. Rosen + - *Numerical Recipes* by William H. Press et al. + +- **Online Courses**: + - [Linear Algebra](https://www.edx.org/course/linear-algebra-foundations-to-frontiers) on edX + - [Calculus 1A: Differentiation](https://www.edx.org/course/calculus-1a-differentiation) on edX + +# Statistics fundamentals and resources + +## Key Concepts +- Probability Theory: Distributions, random variables +- Statistical Inference: Hypothesis testing, confidence intervals +- Regression Analysis: Linear and non-linear models +- Multivariate Statistics +- Machine Learning Basics + +## Recommended Resources +- **Books**: + - *The Elements of Statistical Learning* by Trevor Hastie et al. + - *Applied Multivariate Statistical Analysis* by Richard A. Johnson + - *Statistical Inference* by George Casella and Roger L. Berger + +- **Online Courses**: + - [Statistics and Data Science](https://www.edx.org/professional-certificate/mitx-statistics-and-data-science) on edX + - [Probability and Statistics](https://www.coursera.org/learn/probability-intro) on Coursera \ No newline at end of file diff --git a/prerequisites.qmd b/prerequisites.qmd index 925d6ee..dd56df8 100644 --- a/prerequisites.qmd +++ b/prerequisites.qmd @@ -1,121 +1,15 @@ -# Prerequisites +# Prerequisites {.unnumbered} -### Don't know where to start? -Checkout [PATOQ Wiki](https://github.com/arashabadi/patoq/wiki) for the Bioinformatics and Computational Biology Learning Roadmap! +> "You can't build a great building on a weak foundation. You must have a solid foundation if you're going to have a strong superstructure." --- Gordon B. Hinckley -![Learning Journey](./images/puzzle.png){.image width="300px"} +> "Success is neither magical nor mysterious. Success is the natural consequence of consistently applying the basic fundamentals." --- Jim Rohn -## Biology Fundamentals +> "Get the fundamentals down and the level of everything you do will rise." --- Michael Jordan -### Key Concepts -- Molecular Biology: DNA, RNA, proteins, gene expression -- Cell Biology: Cell structure, organelles, and functions -- Genetics: Inheritance, genetic variation, genomics -- Biochemistry: Metabolic pathways, enzyme kinetics -- Biophysics: Physical principles in biological systems +> "If you have built castles in the air, your work need not be lost; that is where they should be. Now put the foundations under them." --- Henry David Thoreau -### Recommended Resources -- **Books**: - - *Molecular Biology of the Cell* by Bruce Alberts - - *Lewin's Genes* by Jocelyn E. Krebs et al. - - *Lehninger Principles of Biochemistry* by Nelson and Cox - - *Physical Biology of the Cell* by Rob Phillips -- **Online Courses**: - - [Introduction to Biology: The Secret of Life](https://www.edx.org/course/introduction-to-biology-the-secret-of-life) on edX - - [MIT OpenCourseWare: Introduction to Biology](https://ocw.mit.edu/courses/7-01sc-fundamentals-of-biology-fall-2011/) -## Programming Fundamentals +Bioinformatics is a multidisciplinary field of study. Based on your goals and backgrounds, you will choose different paths. You can go through each chapter and explore resources for yourself. We recommend you to learn the basic level of each fundamental, and then start to delve into advanced resources and special topics. -### Key Concepts -- Python Programming: Syntax, data structures, scripting -- R Programming: Statistical computing and data analysis -- Bash Scripting: Command-line basics in Unix/Linux -- Version Control: Git and GitHub -- Best Practices in Coding - -### Recommended Resources -- **Books**: - - *Python for Biologists* by Martin Jones - - *R for Data Science* by Hadley Wickham - - *Bioinformatics Data Skills* by Vince Buffalo - -- **Online Courses**: - - [Python for Data Science and AI](https://www.coursera.org/learn/python-for-applied-data-science-ai) on Coursera - - [R Programming](https://www.coursera.org/learn/r-programming) on Coursera - - [Introduction to Git and GitHub](https://www.coursera.org/learn/introduction-git-github) on Coursera - -## Mathematics Fundamentals - -### Key Concepts -- Linear Algebra: Vectors, matrices, and their applications -- Calculus: Differential and integral calculus -- Discrete Mathematics: Combinatorics, graph theory -- Algorithms and Data Structures -- Numerical Methods - -### Recommended Resources -- **Books**: - - *Introduction to Linear Algebra* by Gilbert Strang - - *Discrete Mathematics and Its Applications* by Kenneth H. Rosen - - *Numerical Recipes* by William H. Press et al. - -- **Online Courses**: - - [Linear Algebra](https://www.edx.org/course/linear-algebra-foundations-to-frontiers) on edX - - [Calculus 1A: Differentiation](https://www.edx.org/course/calculus-1a-differentiation) on edX - -## Statistics and Probability Fundamentals - -### Key Concepts -- Probability Theory: Distributions, random variables -- Statistical Inference: Hypothesis testing, confidence intervals -- Regression Analysis: Linear and non-linear models -- Multivariate Statistics -- Machine Learning Basics - -### Recommended Resources -- **Books**: - - *The Elements of Statistical Learning* by Trevor Hastie et al. - - *Applied Multivariate Statistical Analysis* by Richard A. Johnson - - *Statistical Inference* by George Casella and Roger L. Berger - -- **Online Courses**: - - [Statistics and Data Science](https://www.edx.org/professional-certificate/mitx-statistics-and-data-science) on edX - - [Probability and Statistics](https://www.coursera.org/learn/probability-intro) on Coursera - -## Project Management and Communication Skills - -### Key Concepts -- Scientific Writing and Communication -- Project Planning and Management -- Collaboration with Multidisciplinary Teams -- Data Management and Documentation -- Research Ethics and Reproducibility - -### Recommended Resources -- **Books**: - - *The Craft of Scientific Writing* by Michael Alley - - *Project Management for Scientists* by Christopher L. Cummings - -- **Online Courses**: - - [Scientific Writing and Communication](https://www.coursera.org/learn/sciwrite) on Coursera - - [Project Management Principles and Practices](https://www.coursera.org/learn/project-management) on Coursera - -## Case Studies and Practical Applications - -### Key Concepts -- Real-World Bioinformatics Projects -- Data Analysis Workflows -- Best Practices in Computational Biology -- Reproducible Research -- Open Science Principles - -### Recommended Resources -- **Hands-on Projects**: - - [Galaxy Project](https://galaxyproject.org/) - Web-based platform for data analysis - - [Rosalind](http://rosalind.info/) - Platform for learning bioinformatics through problem solving - - [NCBI Datasets](https://www.ncbi.nlm.nih.gov/datasets/) - Public datasets for practice - -- **Case Studies**: - - [Bioinformatics.ca](https://bioinformatics.ca/) - Workshops and case studies - - [Harvard Chan Bioinformatics Core](https://hbctraining.github.io/main/) - Training materials and case studies \ No newline at end of file +![Fundamental of bioinformatics](images/bioinformatics_ven_diagram.jpg) \ No newline at end of file