存文本文件及其字符编码

网上也有许多关于纯文本的讨论,如果在搜索“乱码”,更是不尽其数。如果你开始命令行,开始编码,开始数据分析,开始操作中文,存文本及其字符编码便是最基础的东西。而往往基础的东西,真正弄懂更为不易,而或者你已经有了多年相关的经验,也不一定搞清楚了。

什么是存文本文件?

存文本由可打印字符组成,人可以直接阅读和理解其形式。

纯文本并非意味着文本是无结构的,HTML、SGML、XML等都是有良好结构定义的存文本,与直接的二进制编码相比,纯文本所处的层面往往更高。大多数二进制格式的问题在于,理解数据所必须的语境与数据本身是分离的,没有应用逻辑对其进行解释,这些数据绝对没有意义,但是通过存文本,可以获得自描述的、不依赖创建它的应用的数据流。对于大多数二进制文件,要成功的进行解析,你必须了解整个格式的所有细节。

缺点:

  • 与压缩的二进制格式相比,存储纯文本所需空间更多
  • 要解释与处理纯文本文件,计算上的代价可能更昂贵

优点:

漫谈web服务器

如果你是新手,要安装一个web应用或者创建一个网站,请接着读…

计算机中,有时候发现越是基础的东西发现越难讲清楚,网络为王的今天,生物信息也是身在其中,生物数据、工具、服务等都是以网络的形式存在的,而更为重要的是许多实验室、研究人员也开始筹建自己的网络服务。上网大家并不陌生,访问一个个网站,但是这些站点是如何提供服务的,网络技术飞速发展的今天,想必不是每个人都能说清楚。

要访问站点,离不开浏览器,浏览器现在也是五花八门,ie、chrome、firefox、safari、opera,国内更是360、遨游、世界之窗、QQ、淘宝,不过这些大都是基于别人的内核,就好比汽车发动机、制动系统都是进口的,只是外壳是自己的,但是访问的方法是相同的,就是通过http协议,也就是站点千差外别,但是前面都得加”http://”,而谁提供的http服务呢,就是这里我们要谈的web服务器,请区别于物理的服务器,这里说的web服务器指的是操作系统的一个服务,运行于后台,提供web服务。

web服务

目前的web服务器也有很多,apache、IIS、tomcat、lighttpd、nginx、liteSpeed等,基本原理就是浏览器输入网址,通过http协议,通过域名定位ip,通过ip地址找到到机器,通过端口找到服务(端口默认是80,没有看见端口号,就是默认的80),web服务器接受请求,将响应的结果以HTML格式返回到浏览器,浏览器解析HTML文件,就是用户看到的页面。 Continue reading

也谈统计分析

最近看到一篇博客《最新研究质疑RNA测序数据的统计分析》,Nature上一篇关于印记基因研究的文章的数据分析方法以及结论遭到质疑,其统计分析及其整体的数据分析不够仔细,导致数据的假阳性排除方面不够严格。激起我很强的共鸣,或者说触及到了我们这些生物方面做数据分析的软肋。同样的研究对象,不同的人,不同的处理方法,会得到不一样的数据;同样的数据,不同的人,不同的分析流程,不同的平台软件,会得到不同的结果。而之所以少有这样的结论,或许因为证明别人的结论不正确要远远的比自己得出一个结论难,况且还有面子和气,以及项目资助等等。

而国内更为深有感触,而目前的普遍的形式,公司流水线的程序,给出一套结果,然后是下面交给一个学生负责,包括数据分析、思路拟定,文章撰写。而预想的结果就是能有些数据,凑成文章,发表就可以了,而至于结果的正确性,只能听天意了,如果碰巧测序样本制备的很好,测序的质量很好,数据又没有特殊的偏好性,也符合目前的归一化的分析流程,结果OK,但是却无法证明这个结果OK,也没有精力或者能力去证明。

再反思,自己从前到后学活的统计学,分析过程中接触的统计学,研究结论中使用的统计学,也从来都是一种形式,学过的统计学有多少的统计方法,用这样的一组名词解释另一组的名词。而分析过程而完全依赖于软件,哦,这个值应该大于多少,统计学上才有意义,结论分析也同样,现成的别人的套路,这样的分析,就得到这样的结果,这样的结果就说明了这样的结论。没有压根搞明白,为什么?

回过头,想再补补课,深奥的统计学,什么时候可以真正变成自己的武器,而不是一个模子,变成一种思想,而不是一种形式。当然也希望这方面的高手多奉献些为什么的帖子。

生物信息之心态分析

每一个分析之旅,尽管分析千差外别,而那份感觉或者心情却有几份的相像,轻轻的,却能感觉到。人类基因组测序已经十多年了,而近几年随着测序技术的发展,测序的成本呈指数下降,而测序产生的数据量呈指数上升,数据分析的需求开始激增,这就是我们所处的这个行业这个时代。

常常看到关于2000年那轮互联网泡沫的描述,经历了一场泡沫,互联网还成就了许多著名的公司,真真切切的融入与影响着我们的生活。而生物领域,同样,我们更为真切的感觉到了分子生物学泡沫对我们一代或者几代人的影响,想当年分子生物学、生物工程专业是多么的热门,大学了纷纷增设相关专业或者现有的专业改名与之挂靠,而以至于现在生物学方面的硕士博士的泛滥,同样相对的待遇也是同样的低。“二十一世纪是生物学的时代”,多么响亮的口号,而目前就公司于行业产值,还丝毫没有看到这方面的影子。

基因、分子克隆,转基因,生物工程到如今基因组、蛋白质组、转录组等各种组学、以及二代测序、个性化医疗,更多的应用还属于科研领域。科研、课题、博导、文章、圈子以及种种的外围切割,就是那一滩水。对于病毒、癌症、生物发酵、育种等等,关于生命本身的认识,并没有因为数据的增加,而有什么本质的改变。而数据仅仅只是给了我们对于生命的另外一个层面的描述,就如同对于绿叶、红花、肌肉的描述一样。数据堆砌着,文章累计着,有人从时间推测着,百年了,该有所质的突破了。。。

铛铛…..,又有新数据了,从测序公司拿到或者网上下载到,期盼已久的数据,怀着无比的希望打开,开始迫不及待的进入分析之旅。使用各种工具,加载各种算法,机器轰鸣着,一番运行,似乎经过运算,我们就能读懂数据中的一切,而几天下来,给我们的确实相反的沮丧,心里或许开始抱怨糟糕的设计、糟糕的数据质量、糟糕的算法。。。和想想中的差之千里。而生活还得继续,带着沮丧之情,肩负着艰巨的使命,继续挖掘。

而几轮的沮丧之后,开始渐渐明白

一个混沌进入另一个混沌,而或许正因为太广,太容易目空一切

测序的物种多了,测序的数量多了,我们却没有看到突飞猛进,反而平添了几分忧愁。

信息本身的复杂性,看看研究最多的人类基因组,看看身披无数文章的模式生物

观察数据,也就是测序样本、测序数据本身的有限性

我们需要在两者中间取得一个平衡,得到一个可信的结论。

即便是突破也是层级式的,一层层,或许看到的还是那份混沌,最少你应该明白,那就是你所期望的。

告别沮丧,怀着敬畏,尝试着,不断寻找与尝试着挖掘

如果,测序如水,不在制约,有人说,分析将成为制约,制约则意味着价值,不知道价值变成现金的日子,还会不会太远。

2011年度终结

2011年即将结束,也切好有些空闲,对这一年进行些终结与反思。这一年,乔布斯走了,每个人的生命都是有限的, 生的意义都需要常常的反思。

前几年,学习中心一直在计算机方面,软件工程、团队管理、数据库、系统管理、编程语言、前端开发等等,以前想做的事情,现在都可以做了,而在具体的某个方面再向前突破,由于缺少一些环境,所以动力不足。

而今年给自己订的主题是“突围”,如何突围,当反思使命与归属的时候,必然又回到了生物信息领域本身。这些年也一直在做着各种生物信息方面的数据库应用系统的开发,而环顾我接触的方方面面,其实都可以和数据库应用系统发生关联,而目前飞速发展的测序产业,也必将带动数据库应用系统的开发,这些数据得到了,但是如何来管理,如何来应用?以及结合自身的特点,建立不同的主题数据库的需求也会很多,所以突破的方向,也就是我博客围绕的主题,数据库信息系统,当然数据分析流程、现有系统的集成、各种模块的学习都必然有所关联。 Continue reading

这个时代,生物信息,公司产业

这两天在读乔布斯传,更多的了解了苹果,一条通向未来的光明大道展现在我眼前,改变世界,引领潮流,平凡的我们也应该做更多的反思。以科研为使命的研究人员,或者以服务为目的生物信息产业工人,无论是科研还是服务,其本质都是创造更多的价值,获得更多的物质或者精神上的财富。而在这个历史的洪流中,如何定位自己,如何能抓住机遇,成就一番事业。 Continue reading

有感于生命科学研究的中文资源

机构与委员会

批判、反思与创新

务实

教育与科研体制

科研项目

悲伤中带着点希望

谁在设计制度

数据挖掘或者注释结构,都是英文的,当然都是英文的,这个基因那个基因的,这个pathway那个代谢途径的,确实看不出个所以然,就是个迷茫,找不到点感觉,英文水平有限,专业英语水平更使有限,翻译几个,看看中文的解释,开朗许多,但是成千上万个,一个个去查,确实没有个精力,想搞个程序进行转换吧,搜索了一下,中文的资料少,不是一般的少,质量差,不是一般的差,系统难用,不是一般的难用。一番感叹呀,于是打个架子,准备发点牢骚,没想出差,把事情给耽搁下来,头是开了,没有啰嗦成,始终是个疙瘩。 Continue reading

生物信息为什么要使用linux?

许多朋友或许都是因为生物信息而认识了linux,因为许多软件都必须在linux下才能安装使用,于是linux,成为了从事生物信息分析分析人员必须得一个技能,在国内windows一统天下,或许linux又成为了一个门槛。

但是很少有人反思为什么必须使用linux,我想弄清这个问题,对于大家学习与认识linux是大有益处的,抓住关键,看清实质,相信你也一定能讲linux学好。 Continue reading

比较认可的生物信息学定义与分类

最近在读《结构生物信息学》,补充以及对于分子结构预测方面多些了解,其前言中,关于生物信息学的定义与分类,给我很深的印象,或者说形成了很强的共鸣,许多次交流,我都引用了其观点,但是意思好像没有完全说明白。这里就将其摘录下来。在给别人介绍起来,我是做什么的,就可以说,是做生物信息应用的,我的博客主题也是这个方面——应用。 Continue reading

生物信息数据库系统开发流程感想

dbDEPC 2.0终于开发完成上线了,是由需求方的一个工作人员和一名程序员协作完成,前前后后历时两个多月,经过几次更改终于完成,后来就这个项目让程序做了个总结报告,我也是有感而发,想站在软件工程的角度进行一下总结,像生物信息数据库系统类似的专业性非常强的系统应该采用什么样的开发流程,应该采取什么样的方法最大限度的降低开发风险,保证开发进度。

专业软件开发,当然最好是既懂专业又懂开发的人员进行开发,但是这样的综合的人才还是可遇不可求的,许多的情况下都是像dbDEPC项目类似,一名专业人员负责系统应该开发成什么样子,而程序员负责实现,如果没有任何干预,就会像这个项目所经历的那样,付出非常大的交流与更改成本。程序员编程了专业人员的画笔,而专业人员却不知道如何使用画笔,只有画了擦,擦了画,那边程序员系统还在开发着,这边专业人员已经将数据库改的面目全非,并且还认为这些改动不会对系统造成太大的影响。还有许多功能的实现上,由于专业人员对于软件开发的不熟悉,实现一个功能往往要绕好多的弯子。而将整个开发过程与软件工程中的软件开发流程去对应,根本找不到软件工程方面的影子,或许这就是最大的问题。

遵循已有的软件工程方面的知识,可以减少项目风险,提高开发效率,降低开发成本,那么面对专业软件我们应该如何做呢?

  • 从用户手中夺走画笔,取得主动权;
  • 引导用户提供软件开发所需要的材料、知识,比如原形、需求分析;
  • 对于用户提供的材料,形成文档,并且请该行业的专家对于该系统进行评审,评审通过后再进行下一步的工作;
  • 明确流程与阶段,对于需求分析与软件设计阶段投入更多的时间与精力

数据库系统不外乎是这样的一个过程,数据存储组织、业务处理、数据展示,所以对于这三者最好都精通,组织不好,会造成业务处理流程复杂,数据展示没有设计好,同样会影响业务处理以及数据存储组织。成为行业专家,同样是程序员一个很好的出路。