写好的程序,就像写一个好书法。写字追求一个韵味;书法却讲求简洁和高效。
程序书法为的就是:让看你程序的人,能看懂,乐于看。
程序书法涉及以下几个方面:
1、空格。
2、空行和代码行。
3、对齐。
4、长行拆分。
5、修饰符位置——避免误解。
6、注释。
7、类的结构。
8、命名规则。
下面逐个进行学习分析。
一、空行与代码行。
空行起着分隔程序段落的作用。因此,合理利用空行,能够让程序结构清晰。
【规则2-1-1】在每个类声明之后、每个函数定义结束之后都要加空行。
【规则2-1-2】在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。
简而言之,当一个比较完整的个体开始/完成的时候,最好添加空行分割开来。
代码行:
【规则2-1-3】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。
【规则2-1-4】if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。
【建议】尽可能在定义变量的同时初始化该变量(就近原则)。
int width = 10; // 定义并初绐化width
int height = 10; // 定义并初绐化height
int depth = 10; // 定义并初绐化depth
x = a + b;
y = c + d;
z = e + f;
if (width < height)
{
dosomething();
}
for (initialization; condition; update)
{
dosomething();
}
// 空行
other();
示例 风格良好的代码行
二、空格
【规则2-2-1】关键字之后要留空格。象const、virtual、inline、case 等关键字之后至少要留一个空格,否则无法辨析关键字。象if、for、while等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。——突出关键字。
【规则2-2-2】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。
【规则2-2-3】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。
【规则2-2-4】‘,’之后要留空格,如Function(x, y, z)。如果‘;’不是一行的结束符号,其后要留空格,如for (initialization; condition; update)。
【规则2-2-5】赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“”、“<<”,“^”等二元操作符的前后应当加空格。
【规则2-2-6】一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格。
【规则2-2-7】象“[]”、“.”、“->”这类操作符前后不加空格。
【建议】对于表达式比较长的for语句和if语句,为了紧凑起见可以适当地去掉一些空格。
for (i=0; i<10; i++)和if ((a<=b) && (c<=d))
三、对齐
【规则2-3-1】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。
【规则2-3-2】{ }之内的代码块在‘{’右边数格处左对齐。
四、长行拆分
【规则2-4-1】代码行最大长度宜控制在70至80个字符以内。代码行不要过长,否则眼睛看不过来,也不便于打印。
【规则2-4-2】长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。
if ((very_longer_variable1 >= very_longer_variable12)
&& (very_longer_variable3 <= very_longer_variable14)
&& (very_longer_variable5 <= very_longer_variable16))
{
dosomething();
}
五、修饰符位置
修饰符 * 和 & 应该靠近数据类型还是该靠近变量名,是个有争议的活题。
若将修饰符 * 靠近数据类型,例如:int* x; 从语义上讲此写法比较直观,即x是int 类型的指针。
上述写法的弊端是容易引起误解,例如:int* x, y; 此处y容易被误解为指针变量。虽然将x和y分行定义可以避免误解,但并不是人人都愿意这样做。
【规则2-5-1】应当将修饰符 * 和 & 紧靠变量名
例如:
char *name;
int *x, y; // 此处y不会被误解为指针
六、注释
C++语言中,程序块的注释常采用“/*…*/”,行注释一般采用“//…”。注释通常用于:
(1)版本、版权声明;
(2)函数接口说明;
(3)重要的代码行或段落提示。
虽然注释有助于理解代码,但注意不可过多地使用注释。
【规则2-6-1】边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。
【规则2-6-2】注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。
七、类的版式
类可以将数据和函数封装在一起,其中函数表示了类的行为(或称服务)。
类提供关键字public、protected和private,分别用于声明哪些数据和函数是公有的、受保护的或者是私有的。这样可以达到信息隐藏的目的,即让类仅仅公开必须要让外界知道的内容,而隐藏其它一切内容。
类的版式主要有两种方式:
(1)将private类型的数据写在前面,而将public类型的函数写在后面,如示例8-3(a)。采用这种版式的程序员主张类的设计“以数据为中心”,重点关注类的内部结构。
(2)将public类型的函数写在前面,而将private类型的数据写在后面,如示例8.3(b)采用这种版式的程序员主张类的设计“以行为为中心”,重点关注的是类应该提供什么样的接口(或服务)。
建议采用“以行为为中心”的书写方式,即首先考虑类应该提供什么样的函数。这是很多人的经验——“这样做不仅让自己在设计类时思路清晰,而且方便别人阅读。因为用户最关心的是接口,谁愿意先看到一堆私有数据成员!”
八、命名规则
(一)共性规则
【规则2-8-1】标识符应当直观且可以拼读,可望文知意,不必进行“解码”。切忌使用汉语拼音来命名。
【规则2-8-2】标识符的长度应当符合“min-length && max-information”原则。——适度把握,区别就行。
【规则2-8-3】命名规则尽量与所采用的操作系统或开发工具的风格保持一致。
Windows应用程序的标识符通常采用“大小写”混排的方式,如AddChild。
Unix应用程序的标识符通常采用“小写加下划线”的方式,如add_child。
别把这两类风格混在一起用。
【规则2-8-4】程序中不要出现仅靠大小写区分的相似的标识符。
【规则2-8-5】程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但会使人误解。
【规则2-8-6】变量的名字应当使用“名词”或者“形容词+名词”。float newValue;
【规则2-8-7】全局函数的名字应当使用“动词”或者“动词+名词”(动宾词组)。类的成员函数应当只使用“动词”,被省略掉的名词就是对象本身。
例如:
DrawBox(); // 全局函数
box->Draw(); // 类的成员函数
【规则2-8-8】用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。
【建议】尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号。这是为了防止程序员偷懒,不肯为命名动脑筋而导致产生无意义的名字(因为用数字编号最省事)。
(二)Windows下命名规则:
【规则2-8-9】类名和函数名用大写字母开头的单词组合而成。
【规则2-8-10】变量和参数用小写字母开头的单词组合而成。
【规则2-8-11】常量全用大写的字母,用下划线分割单词。
【规则2-8-12】静态变量加前缀s_(表示static)。
【规则2-8-13】如果不得已需要全局变量,则使全局变量加前缀g_(表示global)。
【规则2-8-14】类的数据成员加前缀m_(表示member),这样可以避免数据成员与成员函数的参数同名。
void Object::SetValue(int width, int height)
{
m_width = width;
m_height = height;
}
【规则2-8-15】为了防止某一软件库中的一些标识符和其它软件库中的冲突,可以为各种标识符加上能反映软件性质的前缀。例如三维图形标准OpenGL的所有库函数均以gl开头,所有常量(或宏定义)均以GL开头。
2008年11月24日星期一
2008年11月22日星期六
Ubuntu下geany 配置
Get geany in website.
then write the first C++ program,but mostly you can't run it ritht now.
1、geany依赖于gcc and g++,他们是 GNU工程的C和C++编译器。
- gcc
- 认为预处理后的文件(.i)是C文件,并且设定C形式的连接.
- g++
- 认为预处理后的文件(.i)是C++文件,并且设定C++形式的连接.
刚装好的GCC什么都不能编译,因为没有一些必须的头文件,所以要安装build-essential,安装了这个包会安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1-dev等好多必须的软件和头文件。
代码:
sudo apt-get install build-essential
2. gtk
安装GTK环境只要安装一个gnome-core-devel就可以了,里面集成了很多其他的包。除此之外还要转一些其他的东西,如libglib2.0 -doc、libgtk2.0-doc帮助文档,devhelp帮助文档查看,glade-gnome、glade-common、glade-doc图 形界面设计等。
代码:
sudo apt-get install gnome-devel——用此命令足矣。
sudo apt-get install gnome-core-devel
sudo apt-get install libglib2.0-doc libgtk2.0-doc
sudo apt-get install devhelp
sudo apt-get install glade-gnome glade-common glade-doc
问题:
虚拟终端无法连接:
是因为文件夹没有创建或者说生成,因此不用点击编译,直接点生成,然后在执行即可。
至此,Linux下C++编程环境已经搞定。
目前网上有人推荐code block,一个好处就是可以夸平台运行:既可在windows,也可在Linux。有兴趣的话,可以尝试一下。
2008年10月31日星期五
回归I——基因测序相关问题
一、作用
现在基因测序越来越火,但还是得提醒一下:认清形势,务必注意高科技骗子。
基因与疾病密切相关,但大多数病是多基因病,只有很少一部分病是直接能够被基因决定性影响的。在关注自身健康的同时,基因检测是必须的,但是更重要的还在于自己的生活习惯,好的生活习惯加上比较健康的基因状态是身体长期健康的前提。
当然,必须的承认,癌症越来越多的威胁着人类健康。而且基因状态对于癌症的发生关系密切,但是,需要提出的是,诱因很大一个程度来自于环境。如果患了癌症,监控基因状态,进行基因治疗是一个非常好的思路;然而预防癌症,更要关注环境和生活习惯,资金充足的可以间隔一段时间进行基因体检,这也是比较好的选择。
因为基因在某种程度上参与这各种疾病,因此人类基因组测序必须完成,很高兴的是,已经结束了。但是,仍然有很多物种的基因组测序尚待完成。为了理解进化,理解物种多样性和理解基因的性格,我们需要检测各种物种的基因组,这也是生物多样性所要求的。
二、测序方法学
1、技术。从技术发展上来讲,如果明知技术发展有限,而且后续技术肯定有跨越式发展时,请不要做太多傻事。可能你很辛苦的做了大量工作,最后,技术改进了,发现你的结果都不能用的时候,你能坐在那里哭吗?生物技术,向来都是后来者居上,谁有最先进的技术,谁就走在最前沿,没有永恒的前沿。
2、测序方法:
链终止法测序——非常精妙而不利于大型操作的技术。
化学降解法测序——同上,剧毒物比较多。
自动化测序——加荧光标记,人类更轻松,仪器更繁忙,时间的问题。
非常规DNA测序
3、测序策略:
随机测序——鸟枪法。测序小片段,依重叠区域重建序列。
限制测序——水稻基因组测序所选策略。先进行各个BAC克隆的随机测序,再进行序列组装。
指导测序——构建基因组质粒文库,利用分子标记将大片段排成重叠的克隆群(Contig), 分别小片段测序后拼装.
重要区域优先测序,EST测序(mRNA-cDNA文库测序)等。
三、对序列的认识:
1、重复性。有单一序列,也有中度重复序列和高度重复序列,如何分析其重复的价值有待分别考量。
2、内含子与外显子。EST测序可以检测表达的基因序列,而内含子序列的测定及其价值的考量也是问题。
对于基因:
1、相似基因。功能相同或可以相互替代时,成为基因家族(一群具有一致的或相似顺序的基因,有的还担负类似的生物学功能, 可以相互补偿)。分析此类基因,需要将序列变为矩阵。功能丧失或者完全改变时,称为假基因,可能因为某些核苷酸或片段重复、某些修饰或残缺而导致。
2、重叠基因。两个基因有重叠区域或者重叠序列。可以一个基因包含另一个,也可以交叉部分序列,即重叠部分有两个蛋白的信息。
四:序列问题
1、序列拼接问题。
全基因族鸟枪法测序带来的问题:数据量极大,大量重复序列造成拼接途径的不确定。
对新算法、软件的需求:
能充分利用正反向测序的配对信息, 避免重复序列造成的错误拼接。
能处理数以百万甚至千万计的数据:程序并行化,高效率比对,能逐步拼接。
数学问题:
消除测序错误。
识别重复序列——覆盖深度模型。
识别重叠区域以及拼接——图论等。
2、序列诠释问题。
1)基因识别——寻找基因。
(1)根据开放读码框预测基因:ORF预测软件
起始密码子ATG
Kozak规则:第一个ATG侧翼序列的碱基分布所满足的统计规律。
定义:A 1,T2,G3.
则: 第4位的偏好碱基为G;ATG的5’端约15bp范围的侧翼序列内不含碱基T;在-3,-6和-9位置,G是偏好碱基;除-3,-6和-9位,在整个侧翼序列区,C是偏好碱基。
可以进行信号肽分析:
首先证实含完整mRNA 5’端的Contig翻译为蛋白序列;
然后用SignalP软件对前50个氨基酸序列(从第一个ATG对应的甲硫氨酸Met开始)进行评估,如果SignalP分析给出正面结果,则测试序列有可能为信号肽; 假如在该测试序列的第一个Met 5’端存在终止密码子,该序列为信号肽的可能性更大。
终止密码子TAA TAG TGA
GC% = 50% 终止密码子每 64 bp出现一次;
GC% > 50% 终止密码子每100-200 bp 出现一次;
多数基因 ORF 均多于50个密码子,因此最可能的选择应该是 ORF 不少于100 个密码子。
3’端确认
主要根据Poly(A)尾序列。若测试Contig不含Poly(A)序列,则根据加尾信号序列“AATAAA”和BLAST同源性比较结果共同判断。
外显子-内含子边界
内含子的5‘端或称供体位(donor site)常见的顺序为 5’-AG↓GTTAAGT-3’;
3’端又称受体位(acceptor site), 多为5‘PyPyPyPyPyPyCAG-3’(“Py”嘧啶核苷酸,T或C);
上游控制顺序
几乎所有基因(或操纵子)上游都有调控序列,它们可与DNA结合蛋白作用,控制基因表达。CpG岛。
(2)mRNA的5’端即转录起始位点区
通过同源性比较来预测mRNA的5’端,最常用的与转录起始位点相关的数据库是真核启动子数据库(The TRADAT Project , Eukaryotic Promoter Database, EPD. www.epd.unil.ch/ )。
(3)同源查询
通过已存入数据库中的基因顺序与待查的基因组序列进行比较,从中查找可与之匹配的碱基顺序及其比例,用于界定基因的方法称为同源查询。
A DNA序列某些片段完全相同;
B 开放读码框(ORF)排列类似,如有长外显子;
C 开放读码框翻译成氨基酸序列的相似性;
D 模拟多肽高级结构相似
2)上游控制序列识别——序列比对。
现在基因测序越来越火,但还是得提醒一下:认清形势,务必注意高科技骗子。
基因与疾病密切相关,但大多数病是多基因病,只有很少一部分病是直接能够被基因决定性影响的。在关注自身健康的同时,基因检测是必须的,但是更重要的还在于自己的生活习惯,好的生活习惯加上比较健康的基因状态是身体长期健康的前提。
当然,必须的承认,癌症越来越多的威胁着人类健康。而且基因状态对于癌症的发生关系密切,但是,需要提出的是,诱因很大一个程度来自于环境。如果患了癌症,监控基因状态,进行基因治疗是一个非常好的思路;然而预防癌症,更要关注环境和生活习惯,资金充足的可以间隔一段时间进行基因体检,这也是比较好的选择。
因为基因在某种程度上参与这各种疾病,因此人类基因组测序必须完成,很高兴的是,已经结束了。但是,仍然有很多物种的基因组测序尚待完成。为了理解进化,理解物种多样性和理解基因的性格,我们需要检测各种物种的基因组,这也是生物多样性所要求的。
二、测序方法学
1、技术。从技术发展上来讲,如果明知技术发展有限,而且后续技术肯定有跨越式发展时,请不要做太多傻事。可能你很辛苦的做了大量工作,最后,技术改进了,发现你的结果都不能用的时候,你能坐在那里哭吗?生物技术,向来都是后来者居上,谁有最先进的技术,谁就走在最前沿,没有永恒的前沿。
2、测序方法:
链终止法测序——非常精妙而不利于大型操作的技术。
化学降解法测序——同上,剧毒物比较多。
自动化测序——加荧光标记,人类更轻松,仪器更繁忙,时间的问题。
非常规DNA测序
3、测序策略:
随机测序——鸟枪法。测序小片段,依重叠区域重建序列。
限制测序——水稻基因组测序所选策略。先进行各个BAC克隆的随机测序,再进行序列组装。
指导测序——构建基因组质粒文库,利用分子标记将大片段排成重叠的克隆群(Contig), 分别小片段测序后拼装.
重要区域优先测序,EST测序(mRNA-cDNA文库测序)等。
三、对序列的认识:
1、重复性。有单一序列,也有中度重复序列和高度重复序列,如何分析其重复的价值有待分别考量。
2、内含子与外显子。EST测序可以检测表达的基因序列,而内含子序列的测定及其价值的考量也是问题。
对于基因:
1、相似基因。功能相同或可以相互替代时,成为基因家族(一群具有一致的或相似顺序的基因,有的还担负类似的生物学功能, 可以相互补偿)。分析此类基因,需要将序列变为矩阵。功能丧失或者完全改变时,称为假基因,可能因为某些核苷酸或片段重复、某些修饰或残缺而导致。
2、重叠基因。两个基因有重叠区域或者重叠序列。可以一个基因包含另一个,也可以交叉部分序列,即重叠部分有两个蛋白的信息。
四:序列问题
1、序列拼接问题。
全基因族鸟枪法测序带来的问题:数据量极大,大量重复序列造成拼接途径的不确定。
对新算法、软件的需求:
能充分利用正反向测序的配对信息, 避免重复序列造成的错误拼接。
能处理数以百万甚至千万计的数据:程序并行化,高效率比对,能逐步拼接。
数学问题:
消除测序错误。
识别重复序列——覆盖深度模型。
识别重叠区域以及拼接——图论等。
2、序列诠释问题。
1)基因识别——寻找基因。
(1)根据开放读码框预测基因:ORF预测软件
起始密码子ATG
Kozak规则:第一个ATG侧翼序列的碱基分布所满足的统计规律。
定义:A 1,T2,G3.
则: 第4位的偏好碱基为G;ATG的5’端约15bp范围的侧翼序列内不含碱基T;在-3,-6和-9位置,G是偏好碱基;除-3,-6和-9位,在整个侧翼序列区,C是偏好碱基。
可以进行信号肽分析:
首先证实含完整mRNA 5’端的Contig翻译为蛋白序列;
然后用SignalP软件对前50个氨基酸序列(从第一个ATG对应的甲硫氨酸Met开始)进行评估,如果SignalP分析给出正面结果,则测试序列有可能为信号肽; 假如在该测试序列的第一个Met 5’端存在终止密码子,该序列为信号肽的可能性更大。
终止密码子TAA TAG TGA
GC% = 50% 终止密码子每 64 bp出现一次;
GC% > 50% 终止密码子每100-200 bp 出现一次;
多数基因 ORF 均多于50个密码子,因此最可能的选择应该是 ORF 不少于100 个密码子。
3’端确认
主要根据Poly(A)尾序列。若测试Contig不含Poly(A)序列,则根据加尾信号序列“AATAAA”和BLAST同源性比较结果共同判断。
外显子-内含子边界
内含子的5‘端或称供体位(donor site)常见的顺序为 5’-AG↓GTTAAGT-3’;
3’端又称受体位(acceptor site), 多为5‘PyPyPyPyPyPyCAG-3’(“Py”嘧啶核苷酸,T或C);
上游控制顺序
几乎所有基因(或操纵子)上游都有调控序列,它们可与DNA结合蛋白作用,控制基因表达。CpG岛。
(2)mRNA的5’端即转录起始位点区
通过同源性比较来预测mRNA的5’端,最常用的与转录起始位点相关的数据库是真核启动子数据库(The TRADAT Project , Eukaryotic Promoter Database, EPD. www.epd.unil.ch/ )。
(3)同源查询
通过已存入数据库中的基因顺序与待查的基因组序列进行比较,从中查找可与之匹配的碱基顺序及其比例,用于界定基因的方法称为同源查询。
A DNA序列某些片段完全相同;
B 开放读码框(ORF)排列类似,如有长外显子;
C 开放读码框翻译成氨基酸序列的相似性;
D 模拟多肽高级结构相似
2)上游控制序列识别——序列比对。
谈生物信息学与生物医药学
兴趣在生物信息,上了药理学两年研究生,深深感受到人类密码对人类健康的重要意义。
问题:细胞是怎么运作的,简而言之,心肌细胞如何自己跳动?心肌细胞在损伤的时候,细胞如何响应?
这个问题,我无法回答。但是,有两个方面值得关注:
(1)神经系统控制着整个机体,在神经系统的影响下,心肌细胞的反应必然带有深深的神经烙印。我的研究表明,心肌细胞损伤的时候,神经受体表达显著发生改变,为什么?难道心肌细胞甘为神经系统的奴隶,希望让其控制?不是的!是基因,是基因让它这么做的!
(2)心肌细胞缺血受损的时候,其膜电位系统、钙信号系统、线粒体产能系统和基因表达都会发生各自的改变。对于这个网络的计算机重建已经开展了半个多世纪了,目前总算慢慢构建起详细而复杂的心肌细胞膜电位仿真模型,线粒体仿真虽然还没有完整的模型,但也近在咫尺。基因表达和钙信号系统仿真也逐渐开展开来,然而真正要建立一个虚拟细胞,尚需时日。任何一个方向我都感兴趣,因为我的目标在虚拟细胞。基因表达系统的计算机仿真是最困难的一个环节。而这个环节,也将是我最最关注的一个环节。
认识细胞,理解细胞行为,重建起细胞,那么人类距离解释生命密码的距离就非常近了,后面的大部分都是体力活。
在虚拟细胞的基础上,模拟病理模型,对于计算机辅助药物设计的作用是里程碑式的,虽然不能完全代替现实中的实验,但是,药物筛选效率将跨越式提高。
在虚拟细胞,虚拟组织以及虚拟人体的基础上,疾病诊断、新药研发、定量化和个体化治疗策略将呈现出崭新的面貌。
未来的人类社会,必然建立在信息的基础上。
问题:细胞是怎么运作的,简而言之,心肌细胞如何自己跳动?心肌细胞在损伤的时候,细胞如何响应?
这个问题,我无法回答。但是,有两个方面值得关注:
(1)神经系统控制着整个机体,在神经系统的影响下,心肌细胞的反应必然带有深深的神经烙印。我的研究表明,心肌细胞损伤的时候,神经受体表达显著发生改变,为什么?难道心肌细胞甘为神经系统的奴隶,希望让其控制?不是的!是基因,是基因让它这么做的!
(2)心肌细胞缺血受损的时候,其膜电位系统、钙信号系统、线粒体产能系统和基因表达都会发生各自的改变。对于这个网络的计算机重建已经开展了半个多世纪了,目前总算慢慢构建起详细而复杂的心肌细胞膜电位仿真模型,线粒体仿真虽然还没有完整的模型,但也近在咫尺。基因表达和钙信号系统仿真也逐渐开展开来,然而真正要建立一个虚拟细胞,尚需时日。任何一个方向我都感兴趣,因为我的目标在虚拟细胞。基因表达系统的计算机仿真是最困难的一个环节。而这个环节,也将是我最最关注的一个环节。
认识细胞,理解细胞行为,重建起细胞,那么人类距离解释生命密码的距离就非常近了,后面的大部分都是体力活。
在虚拟细胞的基础上,模拟病理模型,对于计算机辅助药物设计的作用是里程碑式的,虽然不能完全代替现实中的实验,但是,药物筛选效率将跨越式提高。
在虚拟细胞,虚拟组织以及虚拟人体的基础上,疾病诊断、新药研发、定量化和个体化治疗策略将呈现出崭新的面貌。
未来的人类社会,必然建立在信息的基础上。
2008年10月26日星期日
基因研究方向再谈
任何一个科学领域都存在着:分久必合,合久必分的历史趋势。生物医学研究更是如此。然而值得一提的是,迅猛发展的生物信息学研究,必然面临着整合,因为改学科的终极目的就是:在服务器上能够模拟出一个广义的细胞。该细胞有如下功能:
在生物医学方面:
1、明确疾病特征,尤其是蛋白环节时,能够快速检测到相关蛋白及这些蛋白的有关病症;能够快速检测其基因以及基因状态,以及相关的疾病特征。
2、在明确基因的基础上,能够快速检测到存在改基因的相关物种(特别依据进化树位置判断),分析基因水平的改变以及改变导致的后果。
3、提出基因治疗和分子信号通路治疗方案。
而当前的基因研究的任务也在于:完成自己的使命。
使命一:完成尽可能多的序列测定任务。人的,大鼠的,大熊猫的,黄瓜的等等。当前的技术有限,测定比较慢;但在不久的将来肯定会有一种快速基因组测定方法,从而让人类可以快速检测各种物种的基因组,也可以快速检测各个个体的基因组。在这个领域,技术领先的人会永远走在最前面,而不一定是起步最早的人。因此,测序,要永远走在最前面,必须强化技术研发。
使命二:测序不是目的,目的是分析序列以及特异基因。进化分析或序列发生分析具有重大历史意义,而特异基因的分析更具有现实意义。依托大量的测序结果,有先天的优势,但这两个方向的选择与把握更具有长远的战略意义。尤其是特异基因研究不是近几十年能够完成的,必须成为一大优势。值得一提的是,进化分析也可用于发现特殊基因。
使命三:基因-蛋白-疾病主轴的建立是关键,在这三部曲中,改公司或者研究单位能做多少奉献,有赖于战略把握。但无论如何,不能忘记最终的目标:细胞内复杂信号网络的重建。
在生物医学方面:
1、明确疾病特征,尤其是蛋白环节时,能够快速检测到相关蛋白及这些蛋白的有关病症;能够快速检测其基因以及基因状态,以及相关的疾病特征。
2、在明确基因的基础上,能够快速检测到存在改基因的相关物种(特别依据进化树位置判断),分析基因水平的改变以及改变导致的后果。
3、提出基因治疗和分子信号通路治疗方案。
而当前的基因研究的任务也在于:完成自己的使命。
使命一:完成尽可能多的序列测定任务。人的,大鼠的,大熊猫的,黄瓜的等等。当前的技术有限,测定比较慢;但在不久的将来肯定会有一种快速基因组测定方法,从而让人类可以快速检测各种物种的基因组,也可以快速检测各个个体的基因组。在这个领域,技术领先的人会永远走在最前面,而不一定是起步最早的人。因此,测序,要永远走在最前面,必须强化技术研发。
使命二:测序不是目的,目的是分析序列以及特异基因。进化分析或序列发生分析具有重大历史意义,而特异基因的分析更具有现实意义。依托大量的测序结果,有先天的优势,但这两个方向的选择与把握更具有长远的战略意义。尤其是特异基因研究不是近几十年能够完成的,必须成为一大优势。值得一提的是,进化分析也可用于发现特殊基因。
使命三:基因-蛋白-疾病主轴的建立是关键,在这三部曲中,改公司或者研究单位能做多少奉献,有赖于战略把握。但无论如何,不能忘记最终的目标:细胞内复杂信号网络的重建。
2008年10月25日星期六
基因发现——世纪大挑战
基因发现是人类基因组计划完成后首先要面对的一个重大问题。
从基因组序列研究发现基因,但是只能发现已知基因,尤其是已知序列及其蛋白的基因。这方面的研究,必须超前,尤其是技术超前。而且对生物信息学数据库的跨库分析要熟练,密切关注研究前沿。但存在一个问题:在遗传多态性分析、跨物种基因比对时,发现特异基因,检测到其已知蛋白,但功能上进一步研究就是各大生物信息学研究所难以消化的。这就需要一类跨专业人才,能够整合国内、国际各大研究所,检索相关蛋白研究领域,并提出研究课题,和该研究所联系,开展合作。基因组测序机构以及生物信息学机构必须加强这个方面,从而保证未来20年不落后。
从功能学研究发现蛋白的特殊作用,进而分析寻找其特异基因,然而发现特殊基因,这样的文章可以发表到Nature上,而且最近几期比较火。这表明两点:1)该方式是基因发现的重要途径,值得重视。2)目前尚处于发展早期,属推广阶段。各蛋白领域研究单位应积极拓展基因研究,而不是一味只攻蛋白。
基因与蛋白数据库发展迅猛,生物信息学从早期的序列操作到特殊基因发现,从基因蛋白关系到细胞内信号传导网络,进而到疾病机理,最终在本世纪中后期构建起完整的虚拟细胞,这将进一步加快基因发现和蛋白发现,医药学研究必将迅猛发展。
从基因组序列研究发现基因,但是只能发现已知基因,尤其是已知序列及其蛋白的基因。这方面的研究,必须超前,尤其是技术超前。而且对生物信息学数据库的跨库分析要熟练,密切关注研究前沿。但存在一个问题:在遗传多态性分析、跨物种基因比对时,发现特异基因,检测到其已知蛋白,但功能上进一步研究就是各大生物信息学研究所难以消化的。这就需要一类跨专业人才,能够整合国内、国际各大研究所,检索相关蛋白研究领域,并提出研究课题,和该研究所联系,开展合作。基因组测序机构以及生物信息学机构必须加强这个方面,从而保证未来20年不落后。
从功能学研究发现蛋白的特殊作用,进而分析寻找其特异基因,然而发现特殊基因,这样的文章可以发表到Nature上,而且最近几期比较火。这表明两点:1)该方式是基因发现的重要途径,值得重视。2)目前尚处于发展早期,属推广阶段。各蛋白领域研究单位应积极拓展基因研究,而不是一味只攻蛋白。
基因与蛋白数据库发展迅猛,生物信息学从早期的序列操作到特殊基因发现,从基因蛋白关系到细胞内信号传导网络,进而到疾病机理,最终在本世纪中后期构建起完整的虚拟细胞,这将进一步加快基因发现和蛋白发现,医药学研究必将迅猛发展。
2008年10月24日星期五
反省I——生物信息学
今天经历了第一次预约的电话面试,因为对这个所太关注了,所以内心深受折磨!
现在内心总算慢慢平静下来......
跨入生物信息学,自己还缺什么?
1、面试技巧方面
1) 个人太激动,多余的话太多。
2) 抢断对方讲话,实属不礼貌。
3) 不懂面试技巧,当问及实习时间时,回答的太傻,太实在,呵呵。
言归正传,在生物信息学领域,还欠缺什么?
缺很多专业知识。
1、熟练c++编程,加快学习perl语言,在编程方面,能够独当一面。
2、学习算法,越多越好,最好能够同时编程实现下来。
用十年时间,努力的解决一个又一个生物信息学算法问题,再根据当时生物信息学发展状况,跨入新的瓶颈领域,永远站在国际最前沿。
现在内心总算慢慢平静下来......
跨入生物信息学,自己还缺什么?
1、面试技巧方面
1) 个人太激动,多余的话太多。
2) 抢断对方讲话,实属不礼貌。
3) 不懂面试技巧,当问及实习时间时,回答的太傻,太实在,呵呵。
言归正传,在生物信息学领域,还欠缺什么?
缺很多专业知识。
1、熟练c++编程,加快学习perl语言,在编程方面,能够独当一面。
2、学习算法,越多越好,最好能够同时编程实现下来。
用十年时间,努力的解决一个又一个生物信息学算法问题,再根据当时生物信息学发展状况,跨入新的瓶颈领域,永远站在国际最前沿。
问与答
1、现在是药理学硕士生,为什么要进入生物信息学领域?
从兴趣和知识结构来讲,喜欢生物信息学是要有资本的。在数学、生物和计算机的基础上,学习生物信息学我有比较雄厚的基础。能够分析算法、设计算法并实现,这就是资本,这也是直奔生物信息学顶峰的基础。
当年选择药理学,有现实的无奈,但并不意味着错误。一方面,我知道了当前医药科研所采用的分子生物学技术和需求,对生物学发展的瓶颈有了深入的理解,真正体会到生物信息学的发展必将带来医药学研究的飞跃。另一方面,对细胞内信号网络研究的分析来看,生物信息学的发展才能让更多不可能的事情变为可能,一个完整虚拟细胞的出现,将带来里程碑式的跨越。
在这里,我认识到了生物信息学的重要性,所以,我来了...
2、我需要什么条件?
古人云:给我一个支点,我能撬动地球;我说:给我一台电脑,我能改变世界。
给我一台电脑,我有一颗焦急的爱心,为了科研的发展,什么都不求。
3、当前生物信息学发展的认识?
生物信息学的发展要经历信息学发展的每个阶段:数据积累期、数据分析期和应用拓展期。测序很强,直逼国际前沿,这是在数据积累期。在发展方面,后来者居上是常见的事情,具有战略眼光的大跨步前进是必须的,因此,下一步一定要抢占数据分析期制高点。当前,全球各地,各类生物信息学问题、算法和软件不断涌现,而我们就更要站在巨人的肩上,以自己丰富的数据为优势,加快数据分析能力的创新和发展,称为生物信息学的“冷泉港”。
如果基因组时代,是某些实力雄厚研究所的时代;那么后基因组时代,将是所有从事计算机、数学和生物人士的时代,一个跳跃式发展的时代,一个对年轻人充满挑战的时代。
从兴趣和知识结构来讲,喜欢生物信息学是要有资本的。在数学、生物和计算机的基础上,学习生物信息学我有比较雄厚的基础。能够分析算法、设计算法并实现,这就是资本,这也是直奔生物信息学顶峰的基础。
当年选择药理学,有现实的无奈,但并不意味着错误。一方面,我知道了当前医药科研所采用的分子生物学技术和需求,对生物学发展的瓶颈有了深入的理解,真正体会到生物信息学的发展必将带来医药学研究的飞跃。另一方面,对细胞内信号网络研究的分析来看,生物信息学的发展才能让更多不可能的事情变为可能,一个完整虚拟细胞的出现,将带来里程碑式的跨越。
在这里,我认识到了生物信息学的重要性,所以,我来了...
2、我需要什么条件?
古人云:给我一个支点,我能撬动地球;我说:给我一台电脑,我能改变世界。
给我一台电脑,我有一颗焦急的爱心,为了科研的发展,什么都不求。
3、当前生物信息学发展的认识?
生物信息学的发展要经历信息学发展的每个阶段:数据积累期、数据分析期和应用拓展期。测序很强,直逼国际前沿,这是在数据积累期。在发展方面,后来者居上是常见的事情,具有战略眼光的大跨步前进是必须的,因此,下一步一定要抢占数据分析期制高点。当前,全球各地,各类生物信息学问题、算法和软件不断涌现,而我们就更要站在巨人的肩上,以自己丰富的数据为优势,加快数据分析能力的创新和发展,称为生物信息学的“冷泉港”。
如果基因组时代,是某些实力雄厚研究所的时代;那么后基因组时代,将是所有从事计算机、数学和生物人士的时代,一个跳跃式发展的时代,一个对年轻人充满挑战的时代。
个人履历
教育背景
2007-9 至 2009-7
西安交通大学 医学院 药理学硕士研究生
主修课程:心血管药理学,医学统计学,细胞分子生物学等。
2003-9 至 2007-7
西安交通大学 国家生命科学与技术人才培养基地
生物工程和应用数学(辅修) 工学、理学双学士
生物工程(主修)课程:生物信息学、分子生物学、V C++、基因工程等。
应用数学(辅修)课程:数学建模、数值计算、应用统计学、计算机仿真等。
活动与获奖情况
2007.2
北美数学建模竞赛二等奖
2006.10
国家数学建模竞赛陕西省一等奖
2004.10
校级优秀班干部
2004.10
西安交通大学思源二等奖学金
英语及专业技能
1、英语 六级合格 2005.4
2、学习能力:熟练掌握信息检索技术,具有跟踪前沿能力,熟练阅读外文文献。能够较快学习陌生软件和计算机编程语言,乐于接受新知识和跨学科综合,自学能力强。
3、计算机:熟练操作计算机windows系统和多种office软件,熟练C++编程,熟悉Linux系统。
4、数学:熟练掌握MatLab、Mathematic、SPSS等熟悉软件,精于计算机仿真和数据统计分析。
5、生物信息学:熟悉各大生物网站(NCBI等)和生物信息学软件(R、CellML、Jsim、),精于虚拟细胞技术及前沿进展,对线粒体仿真、多序列比对分析、SNP分析以及生物医学机理研究兴趣浓厚。
实习经历
2006/07~2006/08 陕西超英生物公司 生产部实习生
简介:该公司主要研制:组织芯片。我的任务是参与蜡块制作整个流程,从蜡块制作、整理组织蜡块、记录并录入数据到数据库,最后检索公司数据库并整理数据库信息。
结果:熟悉组织芯片制作流程和使用方法,熟练掌握数据库检索技能。成绩:优。
项目经验
2007/10~2008/05 参与编写《医学科研导论》
任务:参与编写“文献检索、阅读、管理与综述撰写”一章
结果:整理各大文献数据库,构建起计算机辅助文献阅读、管理体系,分析总结了综述撰写方法。
2007-9 至 2009-7
西安交通大学 医学院 药理学硕士研究生
主修课程:心血管药理学,医学统计学,细胞分子生物学等。
2003-9 至 2007-7
西安交通大学 国家生命科学与技术人才培养基地
生物工程和应用数学(辅修) 工学、理学双学士
生物工程(主修)课程:生物信息学、分子生物学、V C++、基因工程等。
应用数学(辅修)课程:数学建模、数值计算、应用统计学、计算机仿真等。
活动与获奖情况
2007.2
北美数学建模竞赛二等奖
2006.10
国家数学建模竞赛陕西省一等奖
2004.10
校级优秀班干部
2004.10
西安交通大学思源二等奖学金
英语及专业技能
1、英语 六级合格 2005.4
2、学习能力:熟练掌握信息检索技术,具有跟踪前沿能力,熟练阅读外文文献。能够较快学习陌生软件和计算机编程语言,乐于接受新知识和跨学科综合,自学能力强。
3、计算机:熟练操作计算机windows系统和多种office软件,熟练C++编程,熟悉Linux系统。
4、数学:熟练掌握MatLab、Mathematic、SPSS等熟悉软件,精于计算机仿真和数据统计分析。
5、生物信息学:熟悉各大生物网站(NCBI等)和生物信息学软件(R、CellML、Jsim、),精于虚拟细胞技术及前沿进展,对线粒体仿真、多序列比对分析、SNP分析以及生物医学机理研究兴趣浓厚。
实习经历
2006/07~2006/08 陕西超英生物公司 生产部实习生
简介:该公司主要研制:组织芯片。我的任务是参与蜡块制作整个流程,从蜡块制作、整理组织蜡块、记录并录入数据到数据库,最后检索公司数据库并整理数据库信息。
结果:熟悉组织芯片制作流程和使用方法,熟练掌握数据库检索技能。成绩:优。
项目经验
2007/10~2008/05 参与编写《医学科研导论》
任务:参与编写“文献检索、阅读、管理与综述撰写”一章
结果:整理各大文献数据库,构建起计算机辅助文献阅读、管理体系,分析总结了综述撰写方法。
冰斧鸟的解释
冰,冷峻也;刘即是斧,开天辟地之物;鸟,最喜九头鸟。
冰,以冷峻闻名。体外,基因和蛋白都离不开冰。有多少冰,为了保护蛋白和基因,最后融化。冰的拼命精神,冰的冷静性格,冰的冷峻气质,值得追求。冷静,就是冰的目的。
没有斧,原始人类根本无法走出那暗无天日的茂密原始森林,来到平原大地;没有斧,原始人也无法击退那些凶猛无比的令人恐怖的吃人猛兽,保护好自身;没有刘,原始人也砍伐采集不到更多的果食,猎获不到大量的野兽。
到了稍后一个时期,斧又成为原始人类早期战争中的重要武器。这时,斧头因用于战争又被称做战斧,刘就是战斧的一种。特别是在人类发明弓箭和长矛之前,刘更是人类兵器中最具有杀伤力的武器。
刘是人类赖以生存的最常见最基本的工具,也是人类用以创造文明的工具。
中国人在谈到人类文明的起源时,喜欢用“混沌初开”一词来形容。而使人类从混沌走向文明的,正是刘。当今社会,人类文明大跨步前进,然而各个领域面临着海量冗繁信息,生物信息学更是直面海量生命密码,混沌,混沌,开天之斧,开天之勇,开天之利,乃当今之所需。
平稳的性格,坚韧之勇气,最后就需要智慧。九头鸟,虽然很多时候是贬义词,但其聪慧却不容否认。智慧,跨越一切障碍的智慧,全在“灵活”二字。九头鸟,灵也。
冰斧鸟,打开生物信息密码的大门,遨游于数字世界......
作为刘氏青年,当立宏志:破除生物海量数据之混沌,走向人类健康及全面信息化。
冰,以冷峻闻名。体外,基因和蛋白都离不开冰。有多少冰,为了保护蛋白和基因,最后融化。冰的拼命精神,冰的冷静性格,冰的冷峻气质,值得追求。冷静,就是冰的目的。
没有斧,原始人类根本无法走出那暗无天日的茂密原始森林,来到平原大地;没有斧,原始人也无法击退那些凶猛无比的令人恐怖的吃人猛兽,保护好自身;没有刘,原始人也砍伐采集不到更多的果食,猎获不到大量的野兽。
到了稍后一个时期,斧又成为原始人类早期战争中的重要武器。这时,斧头因用于战争又被称做战斧,刘就是战斧的一种。特别是在人类发明弓箭和长矛之前,刘更是人类兵器中最具有杀伤力的武器。
刘是人类赖以生存的最常见最基本的工具,也是人类用以创造文明的工具。
中国人在谈到人类文明的起源时,喜欢用“混沌初开”一词来形容。而使人类从混沌走向文明的,正是刘。当今社会,人类文明大跨步前进,然而各个领域面临着海量冗繁信息,生物信息学更是直面海量生命密码,混沌,混沌,开天之斧,开天之勇,开天之利,乃当今之所需。
平稳的性格,坚韧之勇气,最后就需要智慧。九头鸟,虽然很多时候是贬义词,但其聪慧却不容否认。智慧,跨越一切障碍的智慧,全在“灵活”二字。九头鸟,灵也。
冰斧鸟,打开生物信息密码的大门,遨游于数字世界......
作为刘氏青年,当立宏志:破除生物海量数据之混沌,走向人类健康及全面信息化。
订阅:
评论 (Atom)