打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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

  • 熟练使用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://rosalind.info 里面去刷题目,比如说我在学Go的时候做的一道题目”Introduction to Protein Databases

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

已知给定一个uniprot id,可以通过链接 'http://www.uniprot.org/uniprot/uniprot_id.txt' 或 'http://www.uniprot.org/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.org/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. }

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Golang下进行字符集转换
基于golang的小爬虫,爬取QQ邮箱号和QQ号
golang中net/http包的简单使用
Go语言写Web 应用程序
golang 自更新DDNS脚本
go语言 实现 http服务端与客户端 通讯
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服