科学网

 找回密码
  注册

tag 标签: 生物信息

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

Python for Bioinformatics 为生物信息学设计的Python教程
热度 11 Hadron74 2011-11-21 20:46
由于这本书较旧,本书的中文译本将不出版。新书《Python生物信息数据管理》己出版,网上有售。谢谢大家的关注和支持。应多位朋友的要求,把该《Python for Bioinformatics》一书的旧稿放到数据空间的博客上,点击即可,供大家参考 (2017.1.13): 前言 第一部分 编程 第一章 介绍 第二章 初识Python 第三章 基本编程:数据结构 第四章 编程:流程控制 第五章 处理文件 第六章 代码模块化 第七章 错误处理 第八章 面向对象编程(OOP)介绍 第九章 正则表达式 第二部分 Biopython 第十章 Biopython (I) 第十章 Biopython (II) 第三部分 高级主题 第十一章 网络应用 第十二章 XML 第十三章 Python和数据库 第十四章 合作开发:版本控制 第四部分 带注释代码的Python菜谱 第十五章 批量操作序列 第十六章 过滤载体污染的网络应用 第十七章 用Prime3寻找PCR引物 第十八章 对引物集计算解链温度 第十九章 从Genbank过滤出特定字段 第二十章 转换XML BLAST文件到HTML 第廿一章 推导剪切位点 第廿二章 用限制性内切酶处理DNA突变 第廿三章 多序列联配的网络服务器 第廿四章 用存储在数据库中数据来画标记位置 译 后 感
个人分类: 生物信息|42035 次阅读|21 个评论
方舟子可能是孟山都在中国的推手
热度 8 fs007 2011-10-24 12:39
寻正 今天读到亦明的大作,《方舟子Y传》,在第七章,《方舟子与那个神秘的“美国生物信息公司”》,亦明对方舟子十年如一日地遮掩其雇主“美国生物信息公司”的真实身份有着细致入微的分析,方舟了为了这个顾问及专家身份谎言不断,前后矛盾,可惜,亦明兄几乎就要踢爆方舟子是孟山都在中国的线人与推手身份时,却软了一手,因为他忽略了一个重要的事件。 方舟子被网友挖出是美国“D'Trends Bioinformatics”公司的顾问一身份,事后方舟子百般辩解,不惜自己化名唱双簧自娱自乐,就为了要把可能是知情人无意中透露的真相给掩盖住。方舟子的理由不值一驳,一个美国人会把他的简介翻译错?而且恰好错到找出方舟子原来的雇主?方舟子花了两天时间摆平知情人,然后正儿八经地抵赖,可惜没有核对自己多年来连续谎言,结果又是自相矛盾。 亦明兄着重于揭发方舟子的前后矛盾,却忽略了一个重要信息,那就是,这个“D'Trends Bioinformatics”可能就是孟山都转手雇佣方舟子成为中国打手的中介。根据亦明考证,这个公司是一个叫林华安的马来西亚人注册的,于2007年被取谛。 如果我们追索孟山都公司,在2005年发生了一件大事,就是孟山都公司向印尼高官行贿5万美元,被美国司法部与证卷交易局处以150万美元的罚款。孟山都公司以典型的要钱不要脸而著称,在1998年,该公司高官被问及消费者安全问题该公司的立场,坦率相告,孟山都不会对生物技术食品的安全性作出保证,那是美国FDA的工作,而该公司的兴趣在于产品卖得越多越好。在这样一种理念的指导下,孟山都在追求利润与利益时是无比的贪婪,有强烈的进取欲望。其对它国的宣传攻势是不择手段的,印尼事件可见一般。 我见到美国司法部的文件,针对该事件的描述,则是孟山都通过一个 生物信息咨询公司 (未点明)在印尼进行宣传与政治拉票活动,这个中介提出向高官行贿,孟山都同意了, 另立名目给了该咨询公司那笔钱 。结合上述信息,我们可以怀疑林华安可能就是涉案咨询公司的拥有人,甚至是同一公司,随后该公司被强制注销,可能就跟行贿事件有关,而方舟子受雇于该公司,则可以理解,除了知道方舟子的吹鼓手价值的林华安,真难找出美国什么真的生物信息公司对一个科学上的破落户感兴趣,骋之为顾问。 方舟子雇主差被踢爆,吓出一身冷汗,所以有一大堆不同寻常的举动与操作,矢口抵赖。但他随后给自己在顾问工作上的定位却是极为可笑的,他“ 在2001~2003年期间曾经兼职给美国加州一家生物信息公司 审核、评估论文数据 ”,方舟子在众多的科普与科学问题中讨论所表现出来的对科学方法学的无知,几乎让人怀疑他是否受到过正规的相应训练,他受人雇佣审核与评估论文数据的可能性几乎是零,他故意这么说,就是想掩盖其工作性质—— 孟山都就是以生物信息咨询的名义雇佣大批推手把其产品推向各国的 ,中国市场是印尼的无数倍,很难想像孟山都在法制更加不堪、监管更为混乱的中国就变乖宝宝了,孟山都可能正在庆贺自己在中国取得的成功:在印尼的行贿并没有取得孟山都期望的效果!反而,在什么都没有传出来的中国,孟山都有着印尼分部眼红的成功。 方舟子持续十年针对自己的雇佣咨询公司撒谎。在一开始就受到质疑,而只需要交待该公司名称即可取信于人的情况下,方舟子仍然拒绝透露任何要紧信息,结合他不遗余力,谎言成堆地狠推转基因,他究竟受雇何人已经呼之欲出,孟山都在印尼的行贿事件,随后“D'Trends Bioinformatics”公司被注销,方舟子雇佣者的科学拼板已经找到最后一块了。 我向读者高度推荐亦明的《方舟子Y传》一书,值得一读,可以学到如何做人——做科学上严谨的人,学亦明,看他是如果细致地分析问,而如果要学成功学,如何在现实社会中名利双收,则有方舟子为榜样,亦明的不厌其烦的细节,足以让你获得足够的信息来复制此类成功。 Fang 方舟子Y传.pdf
个人分类: 伪劣科普打假|12542 次阅读|9 个评论
学习笔记:几个有用的perl的模块
chenhao392 2011-8-6 09:04
索引 1.Parallel::ForkManager perl的一个简便的多线程叉口,用在for/while等循环体中。 2.Bio::DB::Fasta 读取各类格式的序列的模块。 3.Bio::SearchIO 读取各类blast结果的模块。 4.Bio::Search::Tiling::MapTiling 重叠blast结果中,同一个subject 序列的多个HSP的模块。 实例 1.Parallel::ForkManager my $pm = new Parallel::ForkManager(4); #建立object,选择需要的thread 数量,此处为4个 ... while(FILE){ $pm-start and next; #在循环中开始产生threads .... $pm-finish; #threads结束 } $pm-wait_all_children; #循环所有threads结束后开始后续步骤 Tips: 1. Thread数量为0时为调试模式,相当于没有此模块,便于调试程序。 2. 因为多线程返回结果不同时,循环内部如果有类似打印信息的命令,其打印顺序会混乱. 2.Bio::DB::Fasta #建立一个序列的database,再把序列提到一个hash里 my $db= Bio::DB::Fasta-new($seq_file)-get_PrimarySeq_stream; my %seq; while( my $seq = $db-next_seq ) { my $data=$seq-seq($seq); $data =~ s/\n//g; my $id=$seq-id; $seq{$id}=$data; } 3.Bio::SearchIO my $blio = Bio::SearchIO-new( -format = 'blast', -file = $file _path); #有多种格式可以选择,blast 通吃m0, m8等格式 while(my $result = $blio-next_result){ my $query_name=$result-query_name; #query 序列id my @hits=$result-hits; #所有hit,per subject gene ... } 4.Bio::Search::Tiling::MapTiling # $result为例子3中的Bio::SearchIO的object foreach my $hit ($result-hits){ my $tiling = Bio::Search::Tiling::MapTiling-new($hit); #为每一个hit建立object my $ident = $tiling-identities('query','exact'); #用exact方法计算per gene的identity,共有est, exact..等等3个方法 ... } Tips: 1. exact方法最耗时,同时是最精确的. est次之,那个fast的方法,结果相差甚远. 2. exact和est方法需要 “比对图例” ,m0格式。而默认blastall会给出最多500个 “tab分隔结果” ,250个比对图例,需要调整-b和-v两个参数使二者一致。 tab分隔结果: Score E Sequences producing significant alignments: (bits) Value Thhalv10000734m|PACid:20179467 2474 0.0 Thhalv10000744m|PACid:20202590 1316 0.0 比对图例: Thhalv10000734m|PACid:20179467 Length = 1358 Score = 2474 bits (6411), Expect = 0.0, Method: Compositional matrix adjust. Identities = 1210/1342 (90%), Positives = 1210/1342 (90%) Query: 1 MASTPQFLLDDQTDEDFFDKLVDDXXXXXXXXXXXXXKELKFDDGSDSDDAKAFANXXXX 60 MASTPQFLLDDQTDEDFFDKLVDD KELKFDDGSDSDDAKAFAN Sbjct: 1 MASTPQFLLDDQTDEDFFDKLVDDSFSPSEAHASSSAKELKFDDGSDSDDAKAFANLSLV 60 ...
8534 次阅读|0 个评论
[转载]生物信息软件Haploview软件使用,单倍型分析
Bearjazz 2011-7-20 08:59
生物信息软件 Haploview 软件使用,单倍型分析 by 柳城 Haploview 是一个进行单倍型分析的一个软件,该软件具有如下功能: 1. 连锁不平衡与单倍型分析 2. 单倍型人群频率估算 3.SNP 与单倍型关系分析 4. 相互关系的排列测验 5. 可以从 HapMap 上直接下载基因型信息 详细使用入门如下: 生物信息软件Haploview软件使用.pdf
个人分类: 我的研究|4850 次阅读|0 个评论
生物信息学之我见
热度 5 zls111 2011-6-30 10:40
估计先要定义下什么是生物信息学。我觉得用数据分析手段或数据分析工具去回答生物学问题都可以称为生物信息学。当然生物信息学还包括其他一些方面。与组学(基因组,转录组,蛋白质组,转录组等)相关的当然属于生物信息学。我觉得分子进化相关领域也算是生物信息学领域。可以说现在只要做分子,做啥实验难免要用到数据分析,也就是多少与生物信息相关。 某种意义上讲,生物信息学在生物领域无所不在,那么怎么发挥它最大的作用呢?或者大家利用生物信息手段有多高明呢? 看看每期 Nucleic Acids Research 和binformatics关于生物信息工具的文章的引用率大概就知道了些,大部分工具是没有人去利用的。蛮可惜的,这些工具是一些人花了很大的精力才开发出来的,应该是有些应用价值的。 可以这么说,如果你对生物信息领域和生物问题熟悉,能利用好几个工具肯定是一篇好文章。 也就是这些工具是蛮有价值的,起码对某些问题是有些很好的解释。我觉得生物信息学可以有一个方向专门倒腾这些工具,把这里一些工具利用好比啥都好,没有必要花费很大精力去搞开发什么的。相对而来生物信息工具太多了( http://bioinformatics.ca/links_directory/ ),眼前重要的是好好利用已经开发出来的工具去解释广泛的生物学问题。 附一篇文章共参考 The 2011 bioinformatics links directory update:more resources, tools and databases and features to empower the bioinformatics community W3.full .pdf
个人分类: 科研笔记|7709 次阅读|9 个评论
生物信息学研究文献分析报告 1984 - 2011年
xupeiyang 2011-4-14 15:18
中文名称: 生物信息学 英文名称: bioinformatics 定义1: 综合计算机科学、信息技术和数学的理论和方法来研究生物信息的交叉学科。包括生物学数据的研究、存档、显示、处理和模拟,基因遗传和物理图谱的处理,核苷酸和氨基酸序列分析,新基因的发现和蛋白质结构的预测等。 所属学科: 生物化学与分子生物学 (一级学科); 总论 (二级学科) 定义2: 运用计算机技术和信息技术开发新的算法和统计方法,对生物实验数据进行分析,确定数据所含的生物学意义,并开发新的数据分析工具以实现对各种信息的获取和管理的学科。 所属学科: 细胞生物学 (一级学科); 总论 (二级学科) 定义3: 运用计算机技术和信息技术开发新的算法和统计方法,对生物实验数据进行分析,确定数据所含的生物学意义,并开发新的数据分析工具以实现对各种信息的获取和管理的学科。 所属学科: 遗传学 (一级学科); 总论 (二级学科) 信息分析平台 http://www.gopubmed.org/web/gopubmed/2?WEB01i80xmf1jqss6I3kI6nI00h001000j100200010 bioinformatics Top Terms Publications ‍ Humans 37,786 ‍ Proteins 35,789 ‍ Computational Biology 33,184 ‍ Genomics 30,237 ‍ Genes 28,558 ‍ Genome 26,921 ‍ Animals 26,373 ‍ Proteomics 20,465 ‍ Proteome 17,439 ‍ Algorithms 14,688 ‍ DNA 10,005 ‍ Gene Expression Profiling 9,831 ‍ gene expression 9,121 ‍ Amino Acid Sequence 8,968 ‍ Gene Expression 8,914 ‍ Mass Spectrometry 8,649 ‍ Biology 8,551 ‍ Base Sequence 8,237 ‍ regulation of gene expression 7,880 ‍ Metabolism 7,875 1 2 3 ... 2485 信息分析报告: Bioinformatics.docx
个人分类: 信息分析|3473 次阅读|0 个评论
k-mer信息
lry198010 2011-3-27 22:24
实际问题是这样的: 在实际基因组测序过程中,我们想从测序的reads的数据情况中了解生物的基因组的大小(未知)? 概念解释: reads:为了知道生物基因组的DNA序列情况,把生物基因组的DNA打断为小的片段,测定每个片段的DNA序列情况,每次测定反应得到的数据叫:reads 测序深度:测序的reads的总大小 /基因组大小,叫测序深度 之前,生物信息估计基因组大小的方法 我的实验过程是这样的 1、在一个长度为G的大小的字符串中(DNA序列),从头至尾按一定长度去字符串(叫做K-mer)。例如:ATCT,取3-kmer为:ATC,TCT 2、统计相同K-mer出现的次数(叫K-mer的深度) 3、统计相同深度出现的次数(叫深度的频数) 4、作深度与深度的频数的图 假设:K-mer的深度与深度的频数图服从泊松分布,可以得到:位置基因组大小=K-mer的个数/K-mer的期望深度(叫peak值) 我的问题: 在一个基因组中存在相同的区域,按照上面的做法得到的深度与深度的频数的图,会出现两个峰,其深度关系成2倍关系。 那么, 1、这样的图是符合什么数学公式了? 2、能否区分出基因组中重复的区域? 另一个问题,在基因组测序中,由于样品不纯存在污染(混合有其他生物的基因组),做深度与深度的频数的图,也会出现两个峰。; ^* g [1 t3 b* w: | 那么, 1、这个可以用数学公式表示吗? 2、能否区分出污染的数据? 第三个问题,泊松公式能否像三角函数一样,成叠加的性质,(sinx+cosx); 自我介绍 我是学生物的,现在做基因组测序工作,在我们的实际工作中,我们经常要计算位置基因组大小,但是我们做的图都不是标准的泊松分布图,所以按照上面公式估计出的大小有很多偏差;而且在实际工作中,经常会遇到杂合和污染的情况;对我们的估计影响也很大。所以希望从数据上得到一些处理。 希望得到数学同志们的帮助 我的邮箱是:jingyc01@163.com,qq是51178182 http://www.madio.net/thread-101207-1-1.html
个人分类: 生物信息|1 次阅读|0 个评论
从各国最高被引论文看生物信息学的发展
热度 3 zls111 2011-3-21 19:26
科学网上头条“ 中国近十年论文总引用次数超过四百万 ”,其中报道了十几个国家近十年引用次数最多的文章,竟然发现有两篇文章是生物信息文章,啥是惊讶,如下。 5. 法国(近十年论文总引用次数6,660,630) 论文: A Simple, Fast, and Accurate Algorithm to Estimate Large Phylogenies by Maximum Likelihood 被 引次数:2,995 领域:环境/生态学 发表期刊:《系统生物学》( Systematic Biology 11. 西班牙(近十年论文总引用数3,256,075) 论文: DnaSP, DNA polymorphism analyses by the coalescent and other methods 被引次数:2,391 领域:计算机科学 发表期刊:《生物信息学》( BIOINFORMATICS ) 两个都是生物信息学工具文章,还有一个生物信息学工具(MEGA)可能引用次数更多,就是因为这个工具使 Molecular Biology and Evolution 的09年的影响因子激增,当然Blast除外,这个是上世纪开发出来的。 这几个工具是做序列分析,分子进化等方面常用的工具。近几年随着测序的猛烈发展,也强烈推动这些工具的发展,估计在未来几年这些工具引用次数也会激增。 这几个工具我都用过,PHYML与MEGA很早就使用过,DnaSP还是最近接触。PHYML PhyML_3.0_win32.exe 主要是计算极大似然进化树,MEGA也是的,他还能计算NJ,MP等方法进化树,比PHYML强大很多。还有MEGA的最新版本MEGA5.03 MEGA5.03_Setup.exe 集中很多其他功能,能序列比对,集合了clustalw与MUSCLE,还有一些其他一些序列分析功能,比如计算祖先,序列之间的距离等等。DnaSP dnasp51001.msi 主要是序列分析,比如计算多态,序列间或各个位点的进化速度等等。 如果想学点生物信息与分子进化,或者想进这个领域,从学习MEGA和DnsSP是个不错的选择。 或者做分子方面的一些东西会使用这两个工具将会对工作有极大的帮助。这两个工具都有图形化界面,蛮傻瓜,比较好学。
个人分类: 科研笔记|6119 次阅读|4 个评论
小鼠的生物信息实验操作总结--调侃效率
热度 2 chenhao392 2011-3-8 15:07
最近我被老板的绝招打败了,心服口服。 有感之余,决定总结一把自己在用的,一级刚刚学到手的各类效率秘籍,算是个总结笔记吧。如果对其他人有帮助,那本鼠就更开心了。同时欢迎各位来本博客做做,磕磕瓜子,交流交流生物信息的各种心得,事实证明:生物信息跟拿基因枪一样,都是手艺活嘛. 我只臭屁的希望若有哥们觉得有点用,然后转载时,请注明出处:即科学网本鼠的博问链接,哦哈哈哈. 1. hash的搜索效率 先说说老板如何搞定我的吧,就是这个hash.. 其实早在N年前(本科)啃小骆驼的时候,就读到过hash的搜索是经过优化的,本质类似于一个二维数组。潜意识里,这就给了我一个误区,还是个二维数组嘛,快也就是50%效率之类的吧。事实证明我想当然了。前几日需要整理一个project的结果,就写了类似如下的perl脚本(摘录)。 #re_structure the FKPM file my @fkpm; for(my $i=0;$iscalar(@array);$i++){ my @line=split(/\s+/,$array ); $fkpm =$line ;#id $fkpm =$line ;#FKPM $fkpm =$line ;#cover rate } my $id; foreach $a(@name){ #第一个loop if($a =~ /(Th.*?)\s+(.*?)$/){ $id=$1; } my $mark=0; for(my $i=0;$iscalar(@fkpm);$i++){ #第二个loop if($id eq $fkpm ){ print "$a\t$fkpm \t$fkpm \n"; $mark=1; last; } } if($mark == 0){ print "$a\t\-\t\-\n"; } } 写完后估计了一下时间,于是跟老板说,估计得跑个把小时,吃饭去了。老板说,用hash最多就是一分钟的事儿,我还不服气的辩解了几句,找了几个借口(此处省略),在老板提高嗓门后觉得:呃,应该是自己错了。 吃饭大概半小时,回来后果然:这段脚本只处理了三成的数据。于是乎修改成了hash,又跑了一遍,用了15秒左右.....程序就完成了...15秒左右!!我囧了...以下是我修改的代码: #re_structure the FKPM file my %fkpm; for(my $i=0;$iscalar(@array);$i++){ my @line=split(/\s+/,$array ); $fkpm{$line }="$line \t$line "; #print "$fkpm $fkpm $fkpm \n";die; } my $id; foreach $a(@name){ #第一个loop if($a =~ /(Th.*?)\s+(.*?)$/){ $id=$1; } if(!$fkpm{$id}){ print "$a\t\-\t\-\n"; } else{ print "$a\t$fkpm{$id}\n"; #hash } } 还是知其然,再知其所以然吧。我再也不敢像原来那样囫囵吞枣了... hash是如何做到快速搜索定位的呢?查查定义。 若结构中存在关键字和 K 相等的记录,则必定在 f ( K )的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系 f 为 散列函数 (Hash function),按这个思想建立的表为 散列表。 好嘛,人家压根就不找存储地址,直接根据key把地址算出来,怪不得。 2。善用shell命令 我一度做东西有误区,就是一到文本操作就用perl,哗啦哗啦写一大堆,耽误时间,效率低下。 不久前才改过来。以下是个例子。 我需要把一个fasta文件的部分信息提出来,其文件格式如下: Th0000001 old_id=63_1_CFGU_CFGW_CFHG_CFHH_CFHI CAAACAACATGCTAAGATCTGACCTTGTTCATCTCCACATCTTTTCAACGACAGATTAAA ACTGAAAA..... Th0000001 old_id=..... .... .... 想要获得的信息为: Th0000001 63_1_CFGU_CFGW_CFHG_CFHH_CFHI Th0000002 半年前我会写个perl,估计十几分钟就没了,再出个小错,说不定半个小时就搭进去了. 其实只需要在shell里打了一行命令而已,耗时可以用秒计算吧: grep "" Th_unigene_assembled_ESTs.fasta |cut -c 2-|sed "s/\told_id\=/\t/" name_list # Th_unigene_assembled_ESTs.fasta 源文件 # name_list 输出文件 第二个例子 有时候一个程序要对不同的数据集都跑一遍,这些命令行有一个特点:非常相似! 难道就为了这,在perl里面加个loop,那也太...那..那怎么办? 唉,我曾经不胜其烦的按着上下键(调出历史命令)修改一点儿,运行。 一遍还好,有时候上下游的数据出了问题,需要程序重跑就无语了,以下YY情节: 某同学:耗子兄,你这个EST放错行了嘛,我们没法用。 本鼠:哦,好,就改一行代码嘛,容易。 一刻钟后.... 某同学:那个,改好了么?我们老板要看呢 本鼠:.... 旁白:一只耗子正在电脑前勤奋的按着上下键和回车.... 其实嘛,磨刀不误砍柴工,写个shell脚本就好了。不过请注意,这个脚本是 可以不用手写的 ,是可以再写段代码生成的..某些大侠一眼就能看出下文可以用for loop生成... #!/usr/bin/bash perl add_FRAG_hash.pl est.list 0_best_blast/ 1.blastn 5_count_frag_for_each_dataset/ 1.2.frag.count 1_added_frag perl add_FRAG_hash.pl 1_added_frag 0_best_blast/ 2.blastn 5_count_frag_for_each_dataset/ 2.2.frag.count 2_added_frag perl add_FRAG_hash.pl 2_added_frag 0_best_blast/ 3.blastn 5_count_frag_for_each_dataset/ 3.2.frag.count 3_added_frag perl add_FRAG_hash.pl 3_added_frag 0_best_blast/ 4.blastn 5_count_frag_for_each_dataset/ 4.2.frag.count 4_added_frag perl add_FRAG_hash.pl 4_added_frag 0_best_blast/ 5 .blastn 5_count_frag_for_each_dataset/ 5.2.frag.count frag_added.list rm -f ?_added_frag #删除中间文件 什么什么?才几行还不如直接敲命令?重跑也认了?! 那要是,几百行呢? 此处罗列一个本鼠用来生成shell脚本的命令,不解释了..只是说一下,这个 run_header_remove.sh一共882行.. ls all_out/ | sed 's/^.*$/perl header_remove.pl \all_out\/ clean_header_psl\//' run_header_remove.sh 3. $$的妙用 感谢现在发达的科技,包括我们实验室在内的大多数服务器升级到了N核(N = 2)..不怀好意的想占用多个CPU的同学远不止本鼠。八仙过海,各显神通,有用perl的多线程包的,有喜欢shell下直接一个 “&” 省事儿的,爽啊,原来需要1个CPU跑7天的工作,现在就7个CPU跑1天好了..美哉,美哉.. 然而这对于本鼠有1个bug,那就是:要是写的程序早在运行中存取临时文件怎么办... 7个CPU,7个线程,跑的是不同的数据,要是线程1拿了线程2的中间文件,线程2找不到,顺手牵走了线程5的,导致线程7找不到文件报错...这个...呃... 小A说,那就创建7个工作文件夹,在里面分别把程序跑一遍。 小C说,不就是中间文件的文件名嘛,我把程序修改下,弄个程序1,程序2... 这两种想法直观,却不符合生物信息的精神,小A和小C勤奋的跑出结果,牛了,也只是NA和NC...什么什么,我说大了,好吧,至少不符合perl的编程精神。那perl的编程精神是什么呢?七个字:随心所欲的懒人.....囧 懒人们只需要在文件名后面加上$$就好了,它有个响当当的大名: Perl解释器的进程ID(PID). $$是perl内置变量,只要运行perl就自动赋值,那么中间文件temp就会变成temp12345, temp44857...一般的服务器的PID至少要一天才能转一圈吧(99999个呢)基本保险了. 照例再贴出本鼠的一个小脚本做个例子: my $input_file=$ARGV ; `grep "" $input_file |sed "s/\//" temp$$`; #$$ open FILE, "temp$$" or die"hell:$!"; #读入临时文件$$ my @array=FILE; close FILE; chomp @array; `rm temp$$`; #$$哥们你可以功成身退了(删除) my %frag_count; foreach $a(@array){ my @line = split(/\./,$a); $frag_count{$line }=$line ; } my @array2=keys(%frag_count); for(my $i=0;$iscalar(@array2);$i++){ print "$array2 \t$frag_count{$array2 }\n"; } PS: 如果同时服务器上有个程序不断放出子线程,几个小时把PID用一圈的话..呃,相信同学们的智慧是无穷的。 友情提示:换个系统时间变量用用吧,看100年内它能转一圈不? 4.注意多loop下的代码行数 事实证明一个细节会被大量重复来放大,良好的编程习惯很重要. 这个就直接上例子了,结果是提升了约4倍的效率. #get the line numbers for calculation my $num1=scalar(@native_one); my $num2=scalar(@native_two); my @residue=residue(\@native_one,\@native_two,$num1,$num2,$range); return @residue; } #calculate the distance and find the residues sub residue{ my($first,$second,$num1,$num2,$range)=@_; my $distance; my @result_first; my @result_second; for(my $i=0;$i$num1;$i++){ for(my $j=0;$j$num2;$j++){ #双loop $distance=distance($$first ,$$first ,$$first ,$$second ,$$second ,$$second ); if($distance = $range){ my $temp="$$first "; push @result_first,$temp; my $temp2="$$second "; push @result_second,$temp2; } } } #delete the reduntant residues my %hash=(); my @result1 = grep{$hash{$_}++ 1} @result_first; my %hash2=(); my @result2 = grep{$hash2{$_}++ 1} @result_second; my @result_final=(@result1,"divide",@result2); return @result_final; } #Function for distance sub distance{ #双loop下调用的子函数 1 my($x1,$y1,$z1,$x2,$y2,$z2)=@_; my $square=($x1-$x2)**2+($y1-$y2)**2+($z1-$z2)**2; my $result=sqrt($square); return $result; } 修改子函数为: sub distance{ #双loop下调用的子函数 2 my $result=sqrt( ($_ - $_ )**2 + $_ - $_ )**2 + $_ - $_ )**2 ); } 行了,就到这儿吧,天色已晚,本鼠该回窝了..各位看官,来磕瓜子啊..
个人分类: 学习|5686 次阅读|2 个评论
网络药理学 概论
热度 2 phenome 2011-1-15 09:14
现代基因组学、蛋白质组学、代谢组学等“组学”的发展,以及系统生物学视角的引入、创新的生物信息学工具的研究开发,极大地促进了对于 药物作用机制(Mechanism of Action, MOA) 的研究,并发展出一系列标志性的、创新的研究范式(paradigm)。现代化学生物学(chemical biology)的发展,积累了海量的关于小分子化合物的细胞学筛选结果,其对细胞的作用机制的刻画达到了前所未有的水平。例如,由美国麻省理工学院和哈佛大学Broad研究院完成的Connectivity Map项 目,利用基因芯片技术测量了多种药物作用于人类细胞后引起的基因表达变化图谱,并形成一个统一的参考数据库。利用该数据库可以对各种药物进行聚类分析,从 而依据与已知药物基因图谱的相似性来预测未知药物的作用机制。在给定某种疾病状态的基因图谱的情况下,可以在这个参考数据库中查询与输入的图谱(pattern)显著负相关的基因图谱,其对应的药物就是该疾病状态的候选药物(调节剂)。运用该策略已经获得了一批药物作用机制的新认识,以及筛选得到的新药(或药物的新用途)(Lamb, Crawford et al. 2006)。近期,美国NIH的发展路线图(Roadmap)中The Molecular Libraries Program项目的实施,使得PubChem数据库中的药物筛选结果迅速增长 上述研究范式初步体现了 “ 系统药理学”(systems pharmacology) 的概念。传统意义上的药物作用机制(MOA)是考虑药物结合的单个蛋白质或者基因,以及药物在细胞和体内如何分布和被代谢。系统药理学则是以全基因组为考察范围,观察药物对全局基因网络(例如以转录因子为主要控制因素的转录调控网络)的作用模式。因此,“网络药理学”(network pharmacology)是一个更为具体、更有操作性的概念。2007年,Andrew L Hopkins 在Nature Biotechnology撰文明确提出“Network pharmacology”的概念,2008年在Nature Chemical Biology进 一步发表了“网络药理学:药物研发中的下一个研究范式”的综述文章。由于生命和疾病是一个非常复杂的生理和病理过程,其中涉及到多基因、多通路多途径的分 子功能网络相互作用的过程,通过单一靶标的作用实现理想的治疗效果往往比较困难。因此,针对多基因疾病相关的“分子群”寻找组合式药物靶标将成为药物研究 和开发的重要发展方向。 我们从2004年开始在网络生物学(network biology)上作技术积累,进行蛋白质物理相互作用网络(Physical interaction network)、遗传相互作用网络(genetic interaction network)的数据集成和挖掘,已经在未知基因功能预测方面得到应用(Genome wide prediction of protein function via a generic knowledge discovery approach based on evidence integration, BMC Bioinformatics. 2006; 7: 268)和2010年Cancer Informatics。 最近,我们提出了一种新的在体遗传相互作用(in vivo genetic gene-gene interaction)网络,该遗传网络可以从基于高通量基因表达谱的数据库中鉴定。该网络作为疾病特异性的系统生物学模型,类似一个“作战地图”,与小分子化合物的基因调节信息(如Connectivity Map中的基因表达谱)结合,理论上可以在网络水平上分析各小分子化合物的作用模式,从而对其作用机制、疗效、毒性做出分析和预测。可作为临床前药物电子筛选的方法和工具( Pre-Clinical Drug Prioritization via Prognosis-Guided Genetic Interaction Networks )。
个人分类: 网络药理学|24335 次阅读|2 个评论
也论《Nature Medicine》撤销杜克大学肿瘤学家论文-方法学角度
phenome 2011-1-11 14:44
最新一期Nature Medicine撤销美国杜克大学肿瘤学家的一篇文章Genomic signatures to guide the use of chemotherapeutics。 http://www.nature.com/nm/journal/v17/n1/full/nm0111-135.html 文中提到撤销的原因是We wish to retract this article because we have been unable to reproduce certain crucial experiments showing validation of signatures for predicting response to chemotherapies, including docetaxel and topotecan 由于原文claim通过基因表达谱数据来预测化疗药物的敏感性,其结论在个体化医疗方面的意义重大,备受关注。但是随后引发诸多讨论。 我们曾试图重现其方法,怎么也无法重现其结果。当时的疑问主要在于:(1)从细胞系(in vitro)得到的signature用到肿瘤病人(in vivo)效果咋就那么好呢? (2)其挖掘signature的方法是如此朴素。 当然,这并不影响对 基于基因组学来预测/分析药物敏感性 这一思路的可行性。
个人分类: 未分类|0 个评论
也论Nature Medicine撤销杜克大学肿瘤学家论文-方法学角度
phenome 2011-1-11 14:44
最新一期Nature Medicine撤销美国杜克大学肿瘤学家的一篇文章Genomic signatures to guide the use of chemotherapeutics。 http://www.nature.com/nm/journal/v17/n1/full/nm0111-135.html 文中提到撤销的原因是We wish to retract this article because we have been unable to reproduce certain crucial experiments showing validation of signatures for predicting response to chemotherapies, including docetaxel and topotecan 由于原文claim通过基因表达谱数据来预测化疗药物的敏感性,其结论在个体化医疗方面的意义重大,备受关注。但是随后引发诸多讨论。 我们曾试图重现其方法,怎么也无法重现其结果。当时的疑问主要在于:(1)从细胞系(in vitro)得到的signature用到肿瘤病人(in vivo)效果咋就那么好呢? (2)其挖掘signature的方法是如此朴素。 当然,这并不影响对 基于基因组学来预测/分析药物敏感性 这一思路的可行性。
个人分类: 未分类|3825 次阅读|2 个评论
基因网络中“行政领导”比“明星”更重要
热度 1 phenome 2011-1-11 13:14
重读Science Signaling上近期发表的论文Rewiring of Transcriptional Regulatory Networks: Hierarchy, Rather Than Connectivity, Better Reflects the Importance of Regulators,如果将Hierarchy上的重要节点比作行政领导,将Connectivity上重要节点比作明星(有很多粉丝)的话,该文的结论是对行政领导的扰动所造成的后果比对明星的扰动大。 很有趣的结论,而全文也加入了许多与人类社会组织结构的类比。该文的特别意义在于,之前大量网络生物学、网络药理学的论文关注网络的拓扑性质,如连接度(degree)等,该文将hierarchy特性的重要作用引入了大家的关注范围。 (论文链接: http://stke.sciencemag.org/cgi/content/full/sigtrans;3/146/ra79 ) 无独有偶,在我们近期发表的论文中,为了在一个基因网络中观察各种药物的扰动效率(以筛选有效的抗肿瘤药物),我们定义了一个扰动系数perturbation index,其实质是对一个行政领导(文中gatekeeper module)及其控制的子网络的扰动情况的定量刻画。这个特点可以从下图中看出(左图是我们原文中给出的网络图,右图是将其按照层级结构重新layout后的示意图)。 (论文全文链接: http://www.plosone.org/article/info:doi/10.1371/journal.pone.0013937 ) Science Signaling论文基于低等生物(yeast ,E.coli)给出了一个理论性的推测,而我们前期结果似乎将其直接应用到了针对人类肿瘤的药物筛选中,并得到了具有统计显著性的较好结果。因此,挖掘基因网络的层级性(hierarchy)为利用网络生物学、网络药理学进行疾病研究提供了新的独特视角。
个人分类: 网络药理学|6068 次阅读|2 个评论
生物信息学学习感悟
热度 4 lry198010 2010-2-2 12:03
生物信息学,是一门综合学科。涉及到数学, 生物学和计算机的内容。但在我看来,计算机的基础需要, 但要求不是很高,关键是要有很好的生物学知识,包括遗传学的、 生物化学的、发育生物学的、分子生物学的、 植物生理学的知识等等,也就说需要达到这样的一个要求: 在进行数据分析时,能对各种分析结果进行生物学的评价, 并给出最优的分析策略。同时也应该有纯熟的数理基础, 包括统计学的、拓扑学的, 这样才能把待分析的问题转换成可计算的模型, 最后能给出实现的程序。 从个人来说,因为生物信息学是一个非常大的领域,所以, 关键是要确定自己的研究方向。比如, 以关联分析为方向的生物信息学, 那么就要掌握好各种关联分析的统计分析方法, 有很强的数据管理能力,足够好的序列分析能力( 这是进行variation查找和分析的基础)。 回到6年以前,如果决定在生物信息学上发展, 那么我也许会做下面这些事情: 首先,从最不重要的计算机这个方面来说: (1)要掌握好bash等脚本语言, 一般的linux问题都能很好的解决 (2)熟练使用apache,mysql等基础软件工具, 用joomla等CMS配置搭建网站 (3)应该努力精通perl,bioperl, 以基于此的各种分析工具,比如gbrowser,cmap等 (4)足够好的c/c++语言能力, 这是实现新算法的最高效语言。 (5)应该努力精通R语言,这是进行统计分析的基础工具 (6)如果有机会,学学erlang这样一些函数式语言吧 其次,从数学基础来说,我觉得应该: (1)学好线性代数 (2)学好高等数学,或者数学分析 (3)学好统计学 (4)学好离散数学 (5)学好计算机算法和数据结构 其次,从生物学来说: (1)如果没有进化论的基层,请把进化论学好 (2)学好发育生物学,植物生理学 (3)学好基因组学、遗传学等 千万不要认为这些没有什么用,当你在数据分析, 怎么判断结果的合理性,或者对结果进行解释时候, 都离不开这些生物学问题。最后,你对这些问题的理解成度, 决定了你的生物信息学水平:只是一个有生物学知识的、 会进行计算机操作的技术员, 还是一个能给出解决方案的有良好计算机基础的能把握生物学问题的 生物信息学家。 最后,从生物信息学的角度来说: (1)对NCBI等各大数据库非常熟悉 (2)对各种生物学信息学的分析方法和策略非常的清楚, 至少应该知道有那些工具软件, 以及这些工具软件的原理和基于的生物学基础,包括: 基因组学分析,表达谱分析,代谢组分析、调控网络分析、 数据结果的整合展示等 最后,生物信息学是一个发展很快的学科, 但因起涉及的内容比较多,因此,要想到底一定的要求, 是需要付出巨大的努力的。此外,在进行生物信息学学习的过程中, 对自己感兴趣的方法工具,一定要把文献上的数据拿来, 自己独立分析一遍,自己去体会分析的过程, 从而对这些方法和工具有更深入的理解。
个人分类: 未分类|26377 次阅读|7 个评论
从"零"开始--学习数据库的使用--1 查疾病相关蛋白
zhenying 2010-1-18 18:22
我非常想用数据库里的资源。 可是我现在不会用。 但我非常,非常,非常想用! 所以,我决定要学习如何使用! 不要达到多高的水平,只要能解决我的问题。 希望也因此可以对于和我同样计算机基础相对薄弱的医学生,能有些启迪。 哪怕,只是启迪了一个人。
个人分类: 未分类|58 次阅读|0 个评论
从IT人到BT(生物信息学)人
biotrader 2008-10-9 10:47
《第三次浪潮》的作者托夫勒说过:在第三次浪潮的前半段是IT影响BT,而在后半段是反过来BT影响IT。BT指生物信息学奥,不要想偏了 :)。 那么一个IT人如何转变到BT人,其实IT里的各种技术在BT中都有直接应用,例如: 1.基因拼接用到图论的算法。 2.测序CCD对荧光照相用到图像处理,小波压缩等算法。 3.蛋白质分子三维构象显示计算机图形学 4.基因序列比对是数据结构课中的一个经典案例了。 5.海量基因数据的处理和分析数据库和数据挖掘。 6.还有在BT领域用的开发环境基本基于GNU/Linux 开发语言,C,java,还有一个用的多的是Perl,有个bioPerl项目呢。不过我想突出提一下Little b项目,这是2008年获生物学创新奖的项目,用LISP写出一个新的脚本语言,用于生物信息学的建模,充分挖掘的LISP的符号计算和建模功能,是生物信息学乃至人工智能应用的方向。 当然这些还是挂一漏万了,如果你是从事计算机系统结构方向的,在BT领域一样大有作为,现在微电子工艺还有20年就要走到极限,人们反思图灵机和冯诺依曼体系是否是唯一的选择。它非要把聪明的人脑活生生拧成串行的来思考问题,以配合机器的体系结构。搞出很多数据结构和算法让工程师大呼精妙,但也让艺术家倍感别扭。在这个领域,BT已经开始反过来影响IT了,DNA计算机可以并行的解决旅行商问题,这为人类最终解决NP问题指明了方向。在此基础上进一步完成人机生物界面的一体化,那就真有点电影《黑客帝国》的味道了。 如果你在Linux下工作,有时间再看看《细胞分子生物学》等书(一知半解即可),那么完成IT人到BT人的转变并不难,在时代的大潮面前您还等什么呢?
个人分类: 未分类|5688 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-29 01:25

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部