分享

入门生信一定要学的一门编程语言,你觉得是啥

 微笑如酒 2018-03-28

作为一名合格的生信工作者,至少都要符合以下几个条件

  • 熟练使用Linux

  • 熟练使用高通量分析工具,如BWA, SAMtools等

  • 至少熟练使用一门编程语言,C/C++, Python, Perl, Go

  • 熟练使用一门统计工具且有着良好的统计素养,如R

  • 生物学基础扎实

  • 有自己对生物学问题的见解


这是我在生信技能树写了好多篇招聘工作发现一些共同点。学习Linux其实是理解一种哲学思想,分解任务各个击破,所以我写了为什么生信入门一定要熟悉Linux。 当你学会了Linux之后,那你就开始在命令行下使用Bwa, samtools这些已有的命令行工具, 这样子你已经可以走标准化流程了。

那么你该学习哪一门编程语言呢?那么给你一些条件语句,你判断一下

  • 先看你实验室传统,他们用什么语言,你就用什么,刚开始的时候不要标新立异,不然出现了问题并且困扰你好几天的话,可能对你的自信心是巨大的打击。当然杀不死你的会让你更强大,也有可能进步飞快。

  • 如果你是实验室里第一个折腾生信的学生,那么优先学Python。别跟我说Perl不Perl,目前网上资源最多的就是Python了,各种版本的入门文章还有漫画,要是太小白,还能看视频如何“开始”学Python

  • 在学会了第一门编程语言后,开始学习第二门,比如说Perl。编程语言都是解决问题的工具,每个工具都有其不同的使用范围,多学一门总是好的。并且学习N+1门的所需要的时间是学习N门的1/2。没事就学一门新的编程,回字有四种写法,Hello World可就多了去了。


假设你已经决定好用什么编程语言了,那么下一个问题就是该怎么学,是不是先买个十几本书,系统的了解一下这个编程语言的方方面面。

当然不是,难道你学习中文的时候,还得看各种语法,思考每一句用什么词最合适嘛?谁不是学会了几个最基本的结构,然后就开始去啃书,拿着本字典,看啥不会就去翻嘛?

因此,我推荐你去 http:// 里面去刷题目,比如说我在学Go的时候做的一道题目”Introduction to Protein Databases

蛋白质数据库中心UniProt提供了蛋白详细的注释,如功能描述,功能与结构,翻译后修饰。它还支持蛋白相似性搜索,分类分析和文献引用等。

已知给定一个uniprot id,可以通过链接 'http://www./uniprot/uniprot_id.txt' 或 'http://www./uniprot/uniprot_id' 获取关于该编号的详细描述。 通过编程的方式根据一个uniprot ID获取其参与的生物学进程(biological processes)

我使用Go的os.Args读取命令行参数中的编号,使用'net/http'获取响应, 使用'ioutil.ReadAll'获取响应中主体,返回字符数组。利用正则表达式进行解析,然后使用for循环提取出目标区段。

  1. package main

  2. import (

  3. 'net/http'

  4. 'fmt'

  5. 'os'

  6. 'log'

  7. 'io/ioutil'

  8. 'regexp'

  9. )

  10. func main(){

  11. id := os.Args[1]

  12. link := 'http://www./uniprot/' + id + '.txt'

  13. resp, err := http.Get(link)

  14. if err != nil{

  15. log.Fatal(err)

  16. }

  17. content, err := ioutil.ReadAll(resp.Body)

  18. resp.Body.Close()

  19. if err != nil{

  20. log.Fatal(err)

  21. }

  22. re := regexp.MustCompile('P:(.*?);')

  23. BP := re.FindAllStringSubmatch(string(content[:]),-1)

  24. for i,:= 0, len(BP); in; i++{

  25. fmt.Println(BP[i][1])

  26. }

  27. }

程序员面试的时候靠刷题,我们也算半个程序员了,算法题刷不了,生信题还可以考虑的

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多