Skip to content

Introductory Git Repository for the Biophysics Research Group at BYU

Notifications You must be signed in to change notification settings

byu-biophysics/getting-started

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to the BYU Biophysics Group !

The BYU Biophysics research group studies fundamental processes of life. We model these processes on the computer and compare with cryo-EM images. Prokaryotic cells are our current focus because of the large database of tomograms that are available.

We use the julia programmming language, which provides a solution to the "two-language problem". By understanding basic life processes, our ultimate goal is to contribute to the general knowledge of human function and thus impact medical and preventitive treatment to improve human health.

Below you will find all the information you need to get started!

Getting Started with Biology

Here are some interesting papers and useful textbooks which will provide foundation to the sorts of questions and problebms we are working on.

Here are some wonderful lectures and prestantions about various topics in biophisycal modeling

Getting Started with GitHub

If you are unfamiliar with GitHub or how it works, in this section you will find helpful tips and terminal commands to be able to perform the basic git commands that will be necessary for us to share code and findings.

  • Check out this GitHub Tutorial Video for help understanding the basics. (One thing to note: the branch people used to call "master" is now typically called "main". In the video, replace "master"->"main".)
  • Branches: Around 27 mins in the tutorial video, there's a nice illustration of using different branches (and even later a nice illustration of resolving conflicting changes). After you're used to the basics of git, revisiting the latter part of the tutorial might be helpful.

Getting Started with learning Julia

As mentioned above we have chosen to work in the Julia programing language! In this section you will find helpful tips and tricks to get you started in working with this powerful language!

  • Check out this Julia tutorial for on help setting up Julia and VS code on your computer
  • Check out this Julia tutorial for a great introduction to the basic syntax
  • Check out this Julia tutorial to learn how plots work in Julia
  • Check out this helpful conversation thread on Kernel Density plotting in Julia
  • Check out this helpful conversation thread about plotting single density plots for tables
  • Random walk Julia tutorial

BYU Supercomputing

In order to run the simulation software we make use of the BYU supercomputing lab. You can find more information about that as well as apply for a supercomputing account here.

To get a basic understanding of what the supercomputer does and how to use it, check out this seminar put on by BYU's Supercomputer channel.

To learn how to setup a remote environment in VS Code, click here.

Getting Started with random walks

A random walk is a simple model of fundamental biological processes and is a great place to start doing biophysics simulations.

What is a random walk ?

  • Check out this amazing video which helps explains the context around and the importance of random walks
  • Check out this amazing video for an introduction to the diffusion equation

Problem # 1

  • Build a program using Julia which can simulate a random walk for t number of walkers each taking n number of steps. Plot the trajectory of the walkers in 1, 2 and 3 dimensions. Also see if you can plot the density distribution for each dimension! Feel free to compare your solution with Jack and Cayson's solutions.

Problem # 2

  • 2D Random walk problem from Jim Sethna's statistical mechanics book. This problem is insightful.

Problem # 3

  • Bicycle Motion (2.1) problem from Giordano's textbook, chapter 2 on realistic projectile motion. Helpful in beginning to understand the coding behind projectile motion.

Problem # 4

  • Cannonball Trajectory (2.2) problem 2.2 from Giordano's textbook. Helpful in learning the dynamics of projectile motion in multiple dimensions.

Problem # 5

  • Natural Pendulum (3.3) problem from Giordano's textbook. Helpful in beginning to learn about chaotic motion as well as realistic harmonic motion. Take a look at problem 3.1 and 3.2 before as well for an introduction into simple harmonic motion.

Problem # 6

  • Molecular Dynamics (9.1) problem from Giordano's textbook is the culmination of the coding exercises we have worked on up until this point. You will be coding a realistic simulation of gas molecules acting according to the Lennart-Jones Potential relationship. Do your best to work through it, and for an easier starting exercise you can try and work through the simulation with elastic boundaries instead of periodic boundary conditions as it is there most bugs develop.

Releases

No releases published

Packages

No packages published

Languages