作为一名合格的生信工作者,至少都要符合以下几个条件 熟练使用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循环提取出目标区段。 package main
import (
'net/http'
'fmt'
'os'
'log'
'io/ioutil'
'regexp'
)
func main(){
id := os.Args[1]
link := 'http://www./uniprot/' + id + '.txt'
resp, err := http.Get(link)
if err != nil{
log.Fatal(err)
}
content, err := ioutil.ReadAll(resp.Body)
resp.Body.Close()
if err != nil{
log.Fatal(err)
}
re := regexp.MustCompile('P:(.*?);')
BP := re.FindAllStringSubmatch(string(content[:]),-1)
for i,n := 0, len(BP); in; i++{
fmt.Println(BP[i][1])
}
}
程序员面试的时候靠刷题,我们也算半个程序员了,算法题刷不了,生信题还可以考虑的
|