Tag Archives: 生物信息

GeneDock招收生物信息实习生

  GeneDock每天帮助客户处理TB级别基因组数据。基因数据工程师支撑这个行业最活跃的创新企业设计业务架构方案,使用Docker容器等各种数据技术帮助客户把NGS分析流程迁移到云端。

  我们正在招收生物信息实习生,具体岗位要求请参考 https://www.genedock.com/joinus/ 这里的“生物信息算法工程师”和“基因数据工程师”两个JD。实习工资比照互联网行业平均标准按天计费。要求全职实习至少3个月以上。转正offer可以在面试时一起谈掉,也可以实习期间再谈。

  简历发送到 hr at genedock dot com 。也欢迎推荐人才。老规矩,实习生转正或候选人入职过了试用期,推荐人送iPhone或大疆DJI无人机。

健康大数据创业团队诚邀您的加入

  我们是一个健康大数据创业团队,已经拿到百万美元天使投资。创始成员包括前阿里巴巴数据科学家、前阿里云数据产品经理,核心团队长期工作于阿里、百度等业界知名公司。我们怀揣用数据技术推动健康领域革新进步的梦想,期待您与我们结伴前行。
  我们在北京。
  如果你是一个Geek,和我们一样渴望用互联网和数据技术改善自己和他人的生活质量,请无视下面的职位描述,直接把简历砸向 igenedock@gmail.com ,我们会在第一时间跟你联系。

系统架构师
我们希望您擅长根据业务需求构建和优化可扩展的计算系统,对分布式存储/分布式计算/并行计算系统架构如数家珍,并热衷跟进前沿计算技术发展。
工作职责:设计系统架构,带领团队实现面向海量数据的可扩展计算系统。
要求:
  1. 深入了解Mesos/Yarn或其他分布式资源管理系统
  2. 熟悉分布式计算领域作业调度、元数据管理、数据质量监控等方面
  3. 熟悉Hadoop生态环境,有系统级开发经验
  4. 优秀的沟通能力和团队协调能力
其他
  1. 熟悉亚马逊AWS或阿里云等公有云服务优先
  2. 熟悉Docker或其他虚拟化容器技术优先
  3. 熟悉Spark/MPI等计算系统优先
  4. 参与过开源项目优先
  5. 有github和技术博客展示自己以往技术沉淀者优先

前端工程师
我们希望你热衷于前端技术,对浏览器加载方式理解深刻,渴望实现多样流畅的用户体验,
工作职责:设计并开发web前端页面,完善报表展现、数据操作等功能,并能使用缓存和按需加载方式优化页面性能。
任职要求:
  1. 熟悉W3C标准,熟悉MVC模式
  2. 熟练掌握HTML/JavaScripts/CSS/jQuery等前端技术
  3. 对用户交互设计有自己的理解
  4. 良好的沟通能力和合作精神
  5. 熟练使用git工具进行代码管理,熟悉基本的软件工程方法论和工具,例如单元测试、版本管理、Bug管理等
其他:
  1. 熟悉主流Web框架优先
  2. 有数据可视化经验优先
  3. 参与过开源项目优先
  4. 有github和技术博客展示自己以往技术沉淀者优先

后端系统工程师
我们希望你对业务系统开发有丰富经验,擅长设计简洁易用的RESTful API,热衷于提高系统性能和可扩展性。
工作职责:开发后端服务,包括权限控制、元数据管理、任务调度等功能
任职要求:
  1. 熟悉Python/Java编程
  2. 熟悉MongoDB,Redis,memcached等存储技术
  3. 对后端业务流程搭建有丰富经验
  4. 了解Nginx配置,使用过主流Web开发框架
  5. 熟练使用git工具进行代码管理,熟悉基本软件工程方法论和工具,例如单元测试、版本管理、Bug管理等
  6. 良好的沟通能力和团队合作精神
  其他:
  1. 了解亚马逊AWS或阿里云等公有云服务者优先
  2. 有Hadoop开发经验者优先
  3. 参与过开源项目优先
  4. 有github和技术博客展示自己以往技术沉淀者优先

数据工程师
我们希望你热爱数据和算法,熟悉计算任务的开发和调度过程,对分布式数据存储和计算流程的优化实现有自己的心得。
工作职责:开发ETL过程,优化存储方案,设计并实现分布式计算任务,搭建数据处理流程。
要求:
  1. 熟练掌握Java/Python/C++至少一门编程语言
  2. 熟悉Shell Script和Linux操作
  3. 熟悉常用数据结构和算法实现
  4. 了解分布式系统构成,有Hadoop开发经验
  5. 优秀的沟通能力和合作精神
其他
  1. 有生物信息学/机器学习背景优先
  2. 有Spark/MPI等计算系统开发经验优先
  3. 参与过开源项目优先
  4. 有github和技术博客展示自己以往技术沉淀者优先

我们提供:
  1. 有竞争力的薪资和员工福利
  2. 员工期权激励
  3. 宽松自由的工作环境、工作午餐和无限零食

感兴趣请尽快发简历到 igenedock@gmail.com ,如果有个人作品和项目,也可以一并附上。

谈谈ODPS商业化(五):华大基因在ODPS上做的试验

  这篇BLOG是ODPS商业化一系列文章之一,更多请点击这里……

  由于我正在着手做生物信息云计算方面的工作,很多信息不方便透露,这篇会很短。有兴趣的同学请找我线下交流。不过在阿里云上做基因测序创新的同学们不必担心,阿里云没有野心、也没有能力成为一个提供完整基因测序计算服务的公司。相反,ODPS等等产品一定是做底层通用平台该做的事,帮助生物信息应用上云更方便,和创业者们一起成长。

  回来开始说华大基因在ODPS做的试验。以前写过一篇博客提到过这件事。

  将基因测序仪输出的上亿条DNA片段拼接为基因组长序列,这个过程可以看作在一个超大规模的拓扑图上寻找欧拉路径。人类基因组包含30亿个碱基,目前基因测序一般会做30倍到50倍的扩增。利用典型的单机组装软件至少需要256GB的内存才可能完成基因组装,时间长达数天。

  ODPS Graph Task是面向迭代的拓扑图算法处理框架,提供类似Google Pregel的BSP并行编程模型。正适合支持一些超大规模拓扑图算法。

  去年10月5K项目测试期间,华大基因的生物信息专家基于ODPS Graph Task开发了一套基因拼接算法,在E.coli(大肠杆菌)、Bombus(熊蜂)和Yanhuang(人类)三个物种的测试集上均取得了非常高的加速比。

  此前一直关注Google在生物信息领域重兵投入。自从Google Genomics API推出,形势就更加明确了。另外一边,据称亚马逊AWS美国有1/4的客户来源于生物制药行业。生物信息显然是云计算的重要业务增长方向。随着全球第一张基因测序临床牌照的颁发,已经可以看到国内大量围绕基因测序的创业项目起来了。目前ODPS团队正在和多个生物信息领域的合作伙伴一起努力,把各种生物信息经典算法和数据处理流程搬到云上来。如果你正在做这方面的产品、创业,欢迎和我联系,阿里云会尽可能提供关键帮助。

  另外我刚刚在知乎和知因同时发起了问题:生物信息还需要云计算提供什么样的功能?生物信息应用上云,你碰到了哪些问题?现有的阿里云、亚马逊AWS云计算基础设施需要做哪些改进,为什么?目前你用的最多的云产品和Web Service API是哪些? 等待你的真知灼见:
  知乎:http://www.zhihu.com/question/24719395
  知因:http://www.knowgene.com/question/1639

  这篇BLOG是ODPS商业化一系列文章之一,更多请点击这里……

这一期《程序员》杂志……

  这一期《程序员》杂志是大数据专题,俺们alidata部门同学的文章好多呀。关于数据产品的那篇文章里,用淘宝指数举例:“周大福钻石搜索人群68%都是女性,而成交人群100%是男性。”

  悲剧的是,在华大基因的陈钢和余昶两位牛人写的《生命科学中的大数据》中,居然看到了俺的名字。实在愧不敢当。只是一个跳槽的小兵。影响不到行业大势。我目前在阿里数据的ODPS团队,近期的业务方向与生物信息基本无关。

  据说我面试时,以前的工作背景的确加了一点分。阿里关注生物信息领域对云计算技术的需求也很正常。Google对DNAnexus投资是风向标。但目前国内的生物医疗大数据的市场产业化尚处于萌芽期,要说“布局”可能为时尚早。

  这篇文章最后的描述是真的:目前生命科学和计算机两个专业的就业情况是“冰火两重天”,尚在产业化前期的生物信息公司招募人才遇到很大麻烦。但也像他们说的:“市场正在打开,资金正在进入,人才还是很缺乏,这似乎是个好消息。”

  上次说过,华大基因近期势如破竹,收购Complete Genomics成功,上市的进程丝毫没受金融市场的坏天气影响。这是一家值得尊敬的中国创新公司,基因组学领域的华为。

  说起来,最近有一篇吐槽生物信息的BLOG很热。是这篇A farewell to bioinformatics,对此news.ycombinator.com上讨论得很热闹。我仔细看了看这篇BLOG,很多对生物信息的吐槽其实挺中肯的。但生物信息仅是生物学家的工具之一。从孟德尔种豆子起,生物学就是一门面临复杂背景噪音的学科,要证明一个假设,往往需要综合各种手段相互验证。对生物学家而言,生物信息学不一定100%可信,但也绝不是最差选择。

  找个机会和生物信息领域的朋友们深入交流一下。

华大基因收购Complete Genomics

  美国基因测序公司Complete Genomics周一宣布,已同意接受世界最大的基因测序公司深圳华大基因价值1.18亿美元的收购要约。

  华大基因威武呀!这么坏的外部环境下,上市的脚步依然没有停。这次收购的财务顾问是花旗,应该是打算海外上市。

  搜索到了Complete Genomics上个季度的财报,销售八百七十万美金,亏损一千八百万。果然是撑不下去了。

  另外华大基因宣称明年花6000元人民币就可做全基因组检测。这个价格已经降到可以进入医院了。想当年人类基因组计划,多个国家科学家联合工作,耗资几十亿,才测出了一个人的基因组。这十年间基因组技术的进展,可比摩尔定律快多了。

  替各路“云”着急,只顾着价格战口水战,一点都不懂抬头看路。华大基因一家租用计算和存储的胃口,就能把国内云计算市场的座次完全颠覆。

yb和emily的论文发表了

  刚收到DMQ教授的邮件,yb和emily的学术论文An Integrated Workflow for Identification of Cross-linked Peptides from Complex Samples很快就要发表在Nature Methods上了。

  强烈祝贺。然后写点回忆,这是一个很长的故事。

  第一次见到yb是搬着服务器去BPRC测试的时候。他还是实验室里的一个低薪临时工,干着不擅长不喜欢的边缘工作。但jw和lz评价说:“yb这家伙的坚定理想就是献身科学”。后来DMQ教授回国,四处求贤,yb就成了最早一批加入dong lab的员工,拥有了至关重要的平台。

  yb想做cross link,最初周围反应不算积极。这是真正的重大创新。他的技术方案是把两个肽段粘在一起送进质谱。单肽运算量尚且很大,两个肽段的计算规模又变成了N*N,这自然涉及到大规模数据处理,于是国内唯一拥有自主蛋白质搜索引擎的pFind组就成了他的合作伙伴。具体负责pFind cross link版的程序员是宇宙超级无敌代码美少女emily。

  然后就是死磕,死磕,死磕……这个BLOG的大部分读者大概对技术细节不感兴趣,内幕很可怕,不细说。要想看整体,可以读yb的论文;想了解并行计算负载均衡调度有关的部分,可以看我的论文和专利

  这事做了很多年。yb孩子出生那几个月,还每天在实验室里熬夜。pFind组也付出了艰辛努力。发一篇影响因子超过20的顶级国际期刊,经过各国领军的同行评审并同意发表,哪有那么容易。投稿被拒不止一次。试验数据不断补充,最后增加到存储和传输都成了问题(中国没有亚马逊在美国的数据迁移物流服务,把一整卡车的硬盘安全送到另外一个州,且保证数据不损坏)。

  这事做了很多年。我和yb逐渐成了好朋友。我们两个年龄差不多,经历也很像,都曾经是实验室里打杂的二等员工,最后作出一些让旁人跌碎眼镜的成果。苦闷的时候,在一起喝酒。他说,有勇气的理想主义者不多。

  这事做了很多年。做到最后,emily写完所有代码,把所有能想到的东西都整理成文档,把自己曾经遇到过的坑都仔细说给接手人之后,就到上海当大摩金融女去了。最后的最后,因为pFind团队放弃创业,我也跳槽到阿里云来搞ODPS了。走前做的最后一次超级计算机上的大规模数据试验,就包括pFind cross link版的测试,确保几百核CPU的机器上加速效率依然超过80%(嗯,我那个负载均衡算法目前依然是世界第一,大大领先于美国同行)。

  我走的时候,好多人给我打很长的电话,yb也是其中之一。

  留下来把事彻底干完的yb,再见面气场肯定占优势。这个世界最棒的特点就是,能长久持续的幸福感都与物欲无关。我得抓紧时间让yb请吃饭。这家伙快去美国了,学术生涯的第一篇论文,起点真tmd高。

交流多,创新就多

  转产品经理之后,能广泛接触整条业务链。好玩的事很多。

  例如旁听售前售后的同学打电话,体会如何控制情绪和语言,如何倾听。当她们成功地让一个犹豫不决的访问者下单时,我就忍不住欢呼起来。

  再例如与运营推广的同学合作,理解如何调动资源,策划活动。当她们分析抽样目标的追踪数据,挖掘出被忽略的事实时,我恨不得顶礼膜拜。

  当然,还是最擅长和技术团队打交道。满怀敬佩地看他们把一个巨大的航母造出来。在大家连续开会12小时筋疲力尽之后,给他们讲讲我以前陷入绝境时的这个故事

  此前的职业生涯,我从事生物信息这种交叉学科的应用软件开发。这是一件幸运的事。大多数程序员没机会和生物学家一起杀老鼠做实验(最早记录的BLOG是这一篇这一篇,后面还有很多了)。程序员喜欢演绎,而生物学家则擅长归纳(与此相关的笑话)。同时,词汇表或者说隐喻,是跨领域交流时必须注意的重要问题

  从这段经历体会到,与不同领域的人进行交流,可能是最快的创新方式(最早是dmq教授向我明确描述出这个道理的)。有段TED视频也是在说这个道理。大多数惊为天人的创新,其实是一点点借鉴完善出来的。早期的汽车方向控制器的产品形式,试过马车的缰绳、自行车的横把、飞机的拉杆,最后终于发现轮船的舵轮是最合适的模式。

腾讯的DNA搜索引擎

  腾讯研究院刚刚推出了实验性的DNA搜索引擎,去年他们发表过一篇学术论文How to build a DNA search engine like Google?,还申请了与此相关的专利。当时引起了国内外很多科技媒体的关注

  关于这个DNA搜索引擎,扬子江@42qu刚刚发表的这篇文章里面有更详细的介绍。

  先简单介绍一下这篇论文的思路。现代搜索引擎的一个常规预处理环节,是对文档进行分词然后创建倒排索引。中英文在分词这个环节上有很大差别,英文单词天然被空格隔开,中文句子里的词汇都是连在一起的,所以更加难以划分,例如“南京市长江大桥”,分词算法一不小心就切成了这样:南京/市长/江/大桥。因此最常见的处理,是开一个移动窗口,不断扫描连续几个字形成的子串,创建倒排索引,当然最终只会保留频率较高的串。考虑到基因串搜索的特点与此很类似,所以现有中文搜索引擎的技术可以应用到生物基因搜索里去。

  如果对分词算法更感兴趣的话,可以参考《算法导论》里“动态规划”那一章的计算字符串最小距离的那个例题,书里还特别提示了一句:这个模型被应用于基因比对领域。进一步,还可以Google更专业经典的生物信息算法,例如BLAST(我记得IBM开发社区有过一篇BLAST算法的介绍写得很好)。

算法导论

  文本信息检索和基因分析两个领域之间有很多故事。

  在本领域的超大规模序列匹配算法和软件尚未成熟之前,早期的生物信息学者就曾经试图借助过Google协助自己的研究。他们的办法是把基因数据放到Web上,然后吸引Google的爬虫过来抓取,最后再用Google搜索自己想要的序列片段。不过由于人类基因字符串长达三十万,Google对匹配模式的长度有上限,所以这种方法的结果并不是特别精确。按说号称更懂中文的百度应该能派上用场……悲剧的是……百度限制更多……嗯……我记得……那时候搜索内容不能超过32个汉字(或64个字母)。

  当BLAST等经典基因比对算法出现以后,又反过来被信息检索领域应用,在某些特殊的场合(例如版本比对、谣言分析、抄袭判断等领域)发挥了重大作用,很多人大概都听说过分析“赶快把这封邮件抄送给十个朋友,否则……”这类蠕虫email内容几十年演变过程的那篇著名论文。

  稍微了解领域知识的生物信息人员都会明白,腾讯的这个引擎还只是一个演示性的玩具。真正常规的工业级基因深度测序数据处理,是要对多达几T的测序数据进行拼接和匹配,然后再搜索基因库,寻找突变点。不过俺个人看法是,如果有一天网络巨头真把目光投向生物信息领域了,这个行业就该重新洗牌了。目前看,还是产业规模和利润兴趣的问题,而具体的技术能力并不会形成太大的壁垒,就算有,在高薪挖墙角的人才战面前也是浮云。

  说到这里,LinkedIn上面的Bio-IT World: Bioinformatics小组里刚有过一个有趣的讨论:So why hasn’t the Bioinformatics industry rocketed to success? (为什么生物信息产业始终不温不火,没有出现爆炸性发展?)

生物数据处理和分布式并行计算

  写一点我对生物信息云计算的粗浅认识。首先,所谓云计算是一个商业模式的概念,其内涵里Saas占很大比重,网络服务代替软件产品。另一方面,技术角度的个人观点,一个Web服务的后台涉及到了大规模分布式并行的基础设施,才有资格被称为“云计算”(当然,这一定义有争议)。这篇Blog先写技术观点,后面再加关于用户和服务的讨论。

  技术上,大规模分布式并行计算被分为计算密集型和数据密集型两类。

  很多物理、地质和气象等领域的科学计算都是典型的计算密集型问题,CPU是瓶颈,涉及到外存I/O量相对不高。对这类问题的解决思路就是传统的“数据找CPU”。具体一点说,目前编程实现的工业标准是MPI,利用MPI提供的Master/Slave模式启动和调度集群上各个节点上的进程,数据传输共享常利用NFS,底层可以用硬件手段提高数据I/O性能。像Fold@home这一类志愿计算项目,往往本质上也是计算密集型的,当然软件架构有所不同。

  而Web领域的计算问题,例如搜索引擎的信息检索,主要是数据密集型问题(或者也称为IO密集型问题),这种情况下,CPU不再稀缺,海量数据的内外存交换的性能成了的焦点。对此MapReduce模式给出了很有效的解决思路,也就是所谓“CPU找数据”。具体来说,Hadoop是目前最热门的主流框架,先对查询对象进行索引,通过分布式文件系统备份到集群各处,再调度相对轻量的进程,分阶段执行查找和归并操作。

  那么有没有这样的需求:输入输出的数据很海量,其处理过程的算法复杂性又很高,很占CPU。有的,例如现代天文学需要对成T甚至成P的哈勃望远镜图片进行搜索过滤……面对这一类的问题,MapReduce模型就不一定适用,其瓶颈出现在海量数据的传输性能上(Web搜索模型里,尽管是数据密集型应用,但被检索的关键词和输出结果是相对很小的,而在很多科学应用里,往集群提交的待查询本身就是海量数据)。Secter/Sphere在其论文和技术报告里总结,它对Hadoop有明显性能优势的原因之一,就是专门开发的底层传输协议UDT比后者使用的通用TCP/IP要高效。

  对Hadoop这个特定产品来说,由于它是Java实现的,相对于C/C++有性能劣势,这个短板对CPU耗费型的应用来说很要命(这也是Secter/Sphere快的另一个原因)。有很多解决方案,例如Yahoo!开发了MPI on Hadoop,用MPI具体负责干活,Hadoop包裹在上层负责宏观调度和容错;而百度实现了Hadoop C++ Extension,把Hadoop里面的关键瓶颈部件都换成了C++的;前不久刚刚发布的Hadoop下一个版本的Roadmap里,也宣布要进行彻底重构,重点解决性能问题。

  生物信息领域,无论是基因测序还是质谱鉴定蛋白,产生出来的数据量巨大,其处理运算又吃CPU。对现有的分布式计算模型是个挑战。其实分布式计算领域,从来都是应用拖着技术走的。例如是物理学家发明了集群运算,是信息检索工业逼出了MapReduce模式。所以,生物领域的挑战也许可以反过来给计算领域一个发展的机会。