Learning golang for bioinformatics

agolangf · · 1414 次点击    
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
<p>I&#39;m about to start my honours year and the genomics lab I&#39;ll be working in uses Go, and as the only language I&#39;ve ever used is incredibly basic Fortran for population simulations. I&#39;ve been told to use the Rosalind problems to learn Go but I need to get my head around the basics first but the all the golang beginners guides are way above my level. Any hints as to where I should go to start learning Go as a programming beginner?</p> <hr/>**评论:**<br/><br/>thehaltingproblem1: <pre><p>The first thing I would do is ask your lab why they are using Golang. I work in a genomics lab and I&#39;ve never heard of Go being used for bioinformatics or computational biology. Genomics is largely statistical and you should be using python with pandas, R, bioconductor, cytoscape.js and the other tools that exist in our ecosystem. Golang is not the language to solve every problem with, and in the field you&#39;re going into, it&#39;s rarely ever the right tool because the goal isn&#39;t building robust software, it&#39;s studying data.</p></pre>the_khajiit_of_lies: <pre><p>That&#39;s exactly what I thought when I was told they use Golang, as all the other the similar labs at the uni use Python, R and a touch of C, and all my other friends doing dry lab genetics for honours are learning Python. I&#39;ll ask the guy who&#39;s head of the programming stuff and see why they use Golang.</p></pre>kaeshiwaza: <pre><p>Hope you will tell us why they choose it...</p></pre>the_khajiit_of_lies: <pre><p>I&#39;ll let you know when I see them in the new year. Until then its time to learn to program. </p></pre>kaeshiwaza: <pre><p>The Go Programming Language from Donovan &amp; Kernighan is a must to have a full understanding of Go if i can give you an advice.</p></pre>howeman: <pre><p>Come over and ask us on gonum-dev if you&#39;d like help with go and scientific programming</p></pre>egonelbre: <pre><p>It depends what the goal is. Go is not a good language for research, but of course you can choose worse. However it is an excellent language for writing robust cross-platform tools and utilities.</p> <p>I used Go to write my <a href="https://github.com/egonelbre/spexs2">MSc thesis</a> in bioinformatics. In the end it performed decently and ended up with a quite nice code-base... and due to improvements to Go runtime, it&#39;s getting faster by the year.</p></pre>sbinet: <pre><p>while it&#39;s true one can do good science with crappy tools, having a set of robust software tools does help and increases someone&#39;s (and the reviewer&#39;s) confidence in the results. Time-to-publish is an important quantity to minimize but...</p> <p>I myself would be very glad if my field (high energy physics) had a library like biogo to back it!</p></pre>Fwippy: <pre><p>Could be that their lab is the kind that writes the tools that do the heavy lifting, like assemblers, aligners, etc.</p> <p>Personally I&#39;ve used Go for a couple tasks in the lab; not for exploratory analysis of data, but for well-defined tasks in our production pipeline (mostly very parallel in nature).</p> <p>But we have a big lab, and the analysts with the math degrees are definitely more confident with R or python. We have a couple tools written in C or C++ that we&#39;ve published that would probably would have been good candidates for Go as well.</p></pre>vdemario: <pre><p>biogo has already been mentioned but it is indeed pretty good. There&#39;s also CloudForest if you&#39;re into ML and RandomForests. Python&#39;s scikit-learn is pretty much the gold standard these days but it&#39;s not like it is the only option.</p> <p>&lt;shameless self-promotion starts here&gt; I&#39;m from a genomics lab in Brazil (Mendelics) and we have been using a lot of Go for the past two years. Most of our work is closed source but we have released this: <a href="https://github.com/mendelics/vcf" rel="nofollow">https://github.com/mendelics/vcf</a>. I&#39;ve also done a (portuguese-only) presentation about it: <a href="https://docs.google.com/presentation/d/19Ph05Rn4BeMCTBIQMGwyYfW2ku-d599LwcMrD_Zkzrs/edit?usp=sharing" rel="nofollow">https://docs.google.com/presentation/d/19Ph05Rn4BeMCTBIQMGwyYfW2ku-d599LwcMrD_Zkzrs/edit?usp=sharing</a>. &lt;/self promotion&gt;</p> <p>I expect Go to spread a lot in bioinformatics the coming years. If you&#39;re starting now there&#39;s a chance you&#39;ll be well positioned.</p> <p>As for where to start, I second the recommendation for the Tour of Go. It is the best beginner focused introduction in my opinion. gobyexample.com can be very helpful as well.</p></pre>sbinet: <pre><p>have you tried <a href="https://tour.golang.org/" rel="nofollow">https://tour.golang.org/</a> ? it should get you going with Go in a few hours. (you talk about FORTRAN, but which one? the venerable F77 or the fancier F2008?)</p></pre>the_khajiit_of_lies: <pre><p>Thanks mate, I&#39;ll knuckle into it. I used FORTRAN 95 to write some relatively simple model populations for a population genetics research project which my supervisor has said (fingers crossed) he may be able to jazz up[ and publish. Entirely different field to what I want to get into, but hey, that&#39;s undergrad.</p></pre>babawere: <pre><p><a href="https://github.com/biogo/biogo" rel="nofollow">https://github.com/biogo/biogo</a> is a good way to start using bioinformatics in GO</p></pre>samuellampa: <pre><p>Apart from possibly the tour on golang.org, Caleb Doxey&#39;s little introductory Go book is the best resource I can think of. It&#39;s brief and very to the point: <a href="https://www.golang-book.com/books/intro" rel="nofollow">https://www.golang-book.com/books/intro</a> . I also had a great deal of help by gobyexample.com</p></pre>the_khajiit_of_lies: <pre><p>Thanks heaps, that book&#39;s exactly what someone mentioned me but I could remember its name.</p></pre>

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1414 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传