-
Notifications
You must be signed in to change notification settings - Fork 0
/
how-to-learn-bioinformatics.html
154 lines (135 loc) · 9.87 KB
/
how-to-learn-bioinformatics.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title> How-to: Learn Bioinformatics | Computational Approaches to Biological Problems
</title>
<link rel="canonical" href="./how-to-learn-bioinformatics.html">
<link rel="stylesheet" href="./theme/css/bootstrap.min.css">
<link rel="stylesheet" href="./theme/css/fontawesome.min.css">
<link rel="stylesheet" href="./theme/css/pygments/default.min.css">
<link rel="stylesheet" href="./theme/css/theme.css">
<meta name="description" content="Throughout my time in bioinformatics, I've found that many people are interested in learning it but don't know how to get started. First, you need to know a few things. You can learn a lot on your own. Just like you can learn a lot about frogs and salamanders without …">
</head>
<body>
<header class="header">
<div class="container">
<div class="row">
<div class="col-sm-4">
<a href="./">
<img class="img-fluid rounded" src=./images/LucasBoatwrightHeadShot-161x215.jpeg alt="Computational Approaches to Biological Problems">
</a>
</div>
<div class="col-sm-8">
<h1 class="title"><a href="./">Computational Approaches to Biological Problems</a></h1>
<p class="text-muted">and other biological inklings</p>
<ul class="list-inline">
<li class="list-inline-item"><a href="./index.html">Home</a></li>
<li class="list-inline-item"><a href="./archives.html">posts</a></li>
<li class="list-inline-item"><a href="https://github.com/jlboat">GitHub</a></li>
<li class="list-inline-item"><a href="https://scholar.google.com/citations?hl=en&user=q5G2bJEAAAAJ&view_op=list_works&gmla=AJsN-F4gfKvkjBIT6Nv8Xy97IIUHuhFi9jF8x5ntZveyPGo_xO2ws-_5NjCw-_9z9CD2mWJnlbL1DeMd-0l-IUNYPsQ1NR4wu8s_l6YjZYlsb9mTQ1d8TX8">Pubs</a></li>
<li class="list-inline-item text-muted">|</li>
<li class="list-inline-item"><a href="./pages/about-me.html">About me</a></li>
</ul>
</div>
</div> </div>
</header>
<div class="main">
<div class="container">
<h1> How-to: Learn Bioinformatics
</h1>
<hr>
<article class="article">
<header>
<ul class="list-inline">
<li class="list-inline-item text-muted" title="2018-08-28T00:00:00-05:00">
<i class="fas fa-clock"></i>
Tue 28 August 2018
</li>
<li class="list-inline-item">
<i class="fas fa-folder-open"></i>
<a href="./category/how-to.html">How-to</a>
</li>
<li class="list-inline-item">
<i class="fas fa-user"></i>
<a href="./author/j-lucas-boatwright.html">J. Lucas Boatwright</a> </li>
<li class="list-inline-item">
<i class="fas fa-tag"></i>
<a href="./tag/bioinformatics.html">#bioinformatics</a>, <a href="./tag/education.html">#education</a> </li>
</ul>
</header>
<div class="content">
<p>Throughout my time in bioinformatics, I've found that many people are interested in learning it but don't know how to get started.</p>
<p>First, you need to know a few things. </p>
<ol>
<li>
<p>You can learn a lot on your own. Just like you can learn a lot about frogs and salamanders without having a degree in herpetology, you can pick up the basics of bioinformatics if you're just willing to sit down and do it.</p>
</li>
<li>
<p>You need to be willing to learn programming (probably in several languages but start with one). You don't have to be an expert programmer but you should be relatively comfortable in at least one language.</p>
</li>
<li>
<p>A basic understanding of genetics is required. If you haven't taken a genetics class, there are plenty of videos on YouTube.</p>
</li>
<li>
<p>If you really want to excel in bioinformatics, it's a good idea to work on your mathematics (like linear algebra) and statistics.</p>
</li>
<li>
<p>Bioinformatics is just like every other field of research. I point this out because just like other fields, it takes years of experience to be an expert. Bioinformatics is much more than just plugging the appropriate files into a program and getting results.</p>
</li>
</ol>
<p>Okay, so I'm going to assume that you have basically zero experience. So, your first step should be to become extremely familiar with the terminal (on Unix, Linux, or a Mac). If you don't own a computer with any of these operating systems, download a virtual machine monitor (like <a href="https://www.virtualbox.org/">VirtualBox</a>) and one of the many Linux ISOs (like <a href="https://www.ubuntu.com/download/desktop">Ubuntu</a>).</p>
<p>I recommend you try to learn how to do <em>everything</em> from the terminal. Need to make a file? Do it in terminal. Look through folders? Terminal. Kill a frozen program? You guessed it, terminal. Keyboard shortcuts are also nice to learn, but those can come later.</p>
<p>Since you're going to be spending a lot of time in the terminal, you're going to need a way to write and edit files. There are plenty of good text editors out there with many reasons to prefer one over another. I'm going to leave the decision up to you, but here are some options.</p>
<ul>
<li><a href="https://www.nano-editor.org/">nano</a> - an easy-to-use text editor with simple functions (used to be my preferred editor)</li>
<li><a href="https://www.vim.org/">vim</a> - a text editor (and more) with many functions, configurations, and potential add-ons. Steep learning curve but comes with a tutorial (vimtutor). This is my new preferred editor.</li>
<li><a href="https://www.gnu.org/software/emacs/">emacs</a> - According to their webpage, "At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing." Like vim, it's a very powerful text editor, but it's also more than just an editor.</li>
</ul>
<p>If you're going to take learning bioinformatics seriously, you should learn either vim or emacs (eventually). That being said, nano is a good place to start.</p>
<p>Next, you'll need a good programming language. Historically, Perl has been a popular choice for bioinformatics. More recently, Python has become a primary contended. In certain circles, R is the primary choice. C and C++ are good choices if you're planning on a strong programming focus. I've heard of a few other labs that prefer Java, Ruby, SAS, AWK, or even Lisp. My recommendation is that you choose a language used by others in your primary area of interest. If you don't know that, a well-established language is probably your best choice. There are the well-supported BioPerl, Biopython, and BioJava packages that give a great starting point for any bioinformatics enthusiast (there's also BioRuby, but I've never used it nor heard of anyone that does). As such, I would prioritize one of those languages or R.</p>
<p>If you choose Python, which I highly recommend, installing the <a href="https://www.anaconda.com/">Anaconda distribution</a> is probably the easiest way to go. It will keep you from manually installing a lot of packages (pre-written programs that ease your workload). </p>
<p>After that, you can go to the terminal and interactively use python:</p>
<div class="highlight"><pre><span></span><code>ipython
Python <span class="m">3</span>.6.5 <span class="p">|</span>Anaconda, Inc.<span class="p">|</span> <span class="o">(</span>default, Apr <span class="m">29</span> <span class="m">2018</span>, <span class="m">16</span>:14:56<span class="o">)</span>
Type <span class="s1">'copyright'</span>, <span class="s1">'credits'</span> or <span class="s1">'license'</span> <span class="k">for</span> more information
IPython <span class="m">6</span>.4.0 -- An enhanced Interactive Python. Type <span class="s1">'?'</span> <span class="k">for</span> help.
In <span class="o">[</span><span class="m">1</span><span class="o">]</span>:
</code></pre></div>
<p>This environment allows for REPL (read-evaluate-print loop), which lets you see the output of a command immediately. This sort of environment is a great way to learn and also available in other languages (in Java it's jshell).</p>
<div class="highlight"><pre><span></span><code>jshell
<span class="p">|</span> Welcome to JShell -- Version <span class="m">10</span>.0.2
<span class="p">|</span> For an introduction type: /help intro
jshell>
</code></pre></div>
<p>Now, you need some problems to practice. And when I say practice, I mean <strong>actually do them</strong>. Like the vimtutor says:</p>
<blockquote>
<p>It is important to remember that this tutor is set up to teach by
use. That means that you need to execute the commands to learn them
properly. If you only read the text, you will forget the commands!</p>
</blockquote>
<p>This statements holds true for all of programming/bioinformatics. Use it or lose it! </p>
<p>I highly recommend visiting <a href="http://rosalind.info/problems/locations/">Rosalind</a>. While the site assumes you'll be using Python, you can solve the problems however you like. Once you begin to feel confident with your abilities,you may even attempt to reproduce works from publications. Good luck!</p>
</div>
</article>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="row">
<ul class="col-sm-6 list-inline">
<li class="list-inline-item"><a href="./authors.html">Authors</a></li>
<li class="list-inline-item"><a href="./archives.html">Archives</a></li>
<li class="list-inline-item"><a href="./categories.html">Categories</a></li>
<li class="list-inline-item"><a href="./tags.html">Tags</a></li>
</ul>
<p class="col-sm-6 text-sm-right text-muted">
Generated by <a href="https://github.com/getpelican/pelican" target="_blank">Pelican</a>
/ <a href="https://github.com/nairobilug/pelican-alchemy" target="_blank">✨</a>
</p>
</div> </div>
</footer>
</body>
</html>