<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>生信菜鸟团 &#187; 脚本</title>
	<atom:link href="http://www.bio-info-trainee.com/tag/%e8%84%9a%e6%9c%ac/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bio-info-trainee.com</link>
	<description>欢迎去论坛biotrainee.com留言参与讨论，或者关注同名微信公众号biotrainee</description>
	<lastBuildDate>Sat, 28 Jun 2025 14:30:13 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.33</generator>
	<item>
		<title>生信分析人员数据处理脚本实战</title>
		<link>http://www.bio-info-trainee.com/1670.html</link>
		<comments>http://www.bio-info-trainee.com/1670.html#comments</comments>
		<pubDate>Wed, 01 Jun 2016 01:06:12 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[脚本]]></category>
		<category><![CDATA[自学]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=1670</guid>
		<description><![CDATA[我前面写到了生信分析人员如何入门linux和perl，后面还会写R和python &#8230; <a href="http://www.bio-info-trainee.com/1670.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>我前面写到了生信分析人员如何入门linux和perl，后面还会写R和python的总结，但是在这中间我想插入一个脚本实战指南。其实在我前两篇日志里面也重点提到了学习编程语言最重要的就是实战了，也点出了几个关键词。在实际生物信息学数据处理中应用perl和linux，可以借鉴<strong>EMBOSS</strong>软件套件，<strong>fastx-toolkit</strong>等基础软件，实现并且模仿该软件的功能。尤其是<strong>SMS2/exonerate/</strong>里面的一些常见功能,还有<strong>DNA2.0 Bioinformatics Toolbox</strong>的一些工具。如果你这些名词不懂，请赶快谷歌！！！ 它们做了什么，输入文件是什么，输出文件是什么，你都可以用脚本实现！</p>
<p><span id="more-1670"></span></p>
<p>你在实现这些功能的时候就必然会融会贯通变量，控制语句，操作符，文件读写等基本编程功能，还会熟悉生物信息学常见数据格式，数据背后的生物学意义。用什么语言都是一样的，千万不要落入语言之争的下乘，也不要纠结于细节。学习是长期过程，尤其是编程这种事情就跟以前的木匠瓦匠一样，是人生技能，跟游戏不一样，不是一时半会就通过了。</p>
<p>如果你英文还不错，推荐看英文的资料，比如下面的<strong>DNA2.0 Bioinformatics Toolbox</strong>，就可以浏览该网站做了什么，然后自己把同样的文件，对该文件也进行类似的处理。</p>
<p><a href="http://www.bio-info-trainee.com/wp-content/uploads/2016/06/DNA2.0-Bioinformatics-Toolbox.png"><img class="alignnone size-full wp-image-1671" src="http://www.bio-info-trainee.com/wp-content/uploads/2016/06/DNA2.0-Bioinformatics-Toolbox.png" alt="DNA2.0 Bioinformatics Toolbox" width="817" height="630" /></a></p>
<p>如果你还是比较熟悉中文，在这里推荐CJ大神总结的一些实际需求，下面都是一些随用随写的脚本，大神都是一句话就搞定了，但是对新手来说，请按部就班的练习！</p>
<blockquote>
<div>-1.查看fastq文件读段平均读长、最大读长、最短读长<br />
0.perl命令行粗暴多文件并行处理（每个线程处理一个文件）<br />
1.从fasta文件中提取特定的某个序列(记录)<br />
2.从fasta文件中批量提取序列(记录)<br />
3.Fastq格式转换为fasta格式<br />
4.常规fasta文件去格式为一行id一行seq<br />
5.快速批量提取读段文件的指定序列 (也可用于去格式的fasta文件)<br />
6.读段个数统计<br />
7.fastq质量值格式转换---用于将phred+64数据转为phred+33数据<br />
8.fastq 5'端trimming<br />
9.去除低质量值碱基数量高于N个的reads--用于phred+33数据<br />
10.去除读段序列含未知碱基N超过一定比例的读段<br />
11. 切除读段两端质量值低于给定阈值的部分并丢弃长度低于给定值的记录 新增双端版本 20140831<br />
12.去除低质量值碱基(Q&lt;给定值)所在比例高于(P大于给定值)的读段---用于phred+33数据<br />
13.DNA序列转mRNA序列<br />
14.perl脚本windows和linux间切换<br />
15.window下打印前10行 或者 打印后10行<br />
16.生成批处理用的无后缀file_list<br />
17.fastq中提取特征读段序列<br />
18.fasta格式CDS转为aa（必须有终止密码子）<br />
19.window下面模拟cut命令-提取文本第二列<br />
20.window下合并多个fa文件<br />
21.window下提取匹配到某一模体的fasta序列<br />
22.提取人类基因组注释文件rRNA注释<br />
23.对sort | uniq -c | 的结果频次由高到低排序，有大用<br />
24.fasta格式的DNA序列反向互补<br />
25.一行id一行序列的fa文件格式化为一行id多行序列<br />
26.按fastq文件标签名对读段顺序进行排序---待优化版<br />
27. 替换fq或fa文件记录的id为指定形式<br />
28.提供一个序列名列表逐一替换fasta记录的id</div>
<div>29.根据NCBI gene id 即gi号获取GeneBank上的序列<br />
30.根据蛋白gene_id或accession获取其Genebank上的核苷酸序列<br />
31.比较字符串中两个单字符的频次(比如投票0,1或方向F,R)<br />
32.有同学想知道比对上的读段在genome上正反链的分布情况<br />
33.去除全读段所有碱基质量值均低于某个阈值（如20）的读段(支持单端和双端数据)<br />
34.借用pileup文件直接统计测序数据在各染色体上的分布<br />
35.查看sam中uniq mapped比率<br />
36.查看sam中编辑距离分布<br />
37.统计各行平均值或各列平均值<br />
38.将fa文件(尤其基因组文件)分成每个记录一个文件(要求一行id一行seq,见25)<br />
39.批量重命名<br />
40.win下批量去除文件夹内所有文件中的数字<br />
41.统计SAM文件某一标签(BWA结果)<br />
42.提取长度大于1000bp的fa记录<br />
43.批量提取匹配行（正则匹配，强大） ---稍修改即可用于各类模式匹配批量提取，非常强大<br />
44. fasta中有相同id，增加后缀方便blast建库<br />
45. 多个列表文件，比如gene_ids，取样品特异gene_id<br />
46. 直接统计一个序列的GC含量<br />
47. 直接连接几个序列并将小写转换成大写<br />
48. 序列贪吃蛇<br />
49. 随机提取一定比例的fasta 记录或者fastq记录<br />
50. 单行记录随机分组<br />
51. 按照fasta长度排序fasta文件，修改后也可以用于具有某类特征标记的记录排序 (用于大文件，小文件请直接用hash)<br />
52. 双标签区段提取 (使用范围操作符..)<br />
53. 批量从uniprot上下载序列<br />
54. 准备trimmomatic所需的adapter.fa文件<br />
55. 提取fasta文件特定记录的特定区段<br />
56. 获取GO term Level 2的信息<br />
57. 单标签语句块读取 --（方便解析任何行组织文本-fasta fastq blast...）<br />
58. 核酸序列互补配对的子函数<br />
59. 分隔fa文件 fq文件 genebank文件 为数据小文件<br />
60.  序列格式化成每行等长并打印的子函数<br />
61. 从公司返还的注释结果中提取query2gi2GO.table -- for blast3go</div>
<div>62. blast2go anno文件转换成blast3go输入文件</div>
</blockquote>
<div>
<blockquote><p>63. 提取任意组装结果最长转录本(so-called Unigenes)或者CDS预测结果中最长序列64. 表格类数据，以某一列为keys组成的Group中仅保留其对应某属性（另一列）中值最大的一类 65. 小文件行随机化 66.  打印匹配行及其前'指定数目'行67.  打印匹配行及其后'指定数目'行 68.  -n的多个文件区别对待 69. 按照列名提取文件多列 70. 批量提取多个序列多个区段 71. 输出fasta文件每个序列对应的长度 ID\tLength\n72. jar发布前以来外源lib中的jar瘦身73. 依据step长度输出字符串所有后kmer子串74. 基于SAM文件统计ref的每个序列的uniq counts并输出reads的uniq mapped rate统计信息（用于表达谱差异分析 75. 汇总所有counts table并进行无表达补零操作（用于表达谱差异分析76. 保留fastq文件指定长度的读段最优子串77. 输出fasta文件每个记录的A T G C 字数统计78. 合并配对的读段文件fastq 正反读段交错 79. 统计SAM文件 CIGAR的命令 80. fasta文件去除ID行完全重复的记录 81. 合并所有文件的指定列 82. 根据id文件提取第二个文件中多个id匹配行83. 根据某一列的不同值将一个文件分割为多个文件84. 保留高表达或者去除低表达(WGCNA) 85. 表格类数据依据第一列，加和其他所有列，去冗余 86. ghostz比对到nr的表格提取query2gi.table</p>
<div>87. fastqReader<br />
88. Linux下依据 SRA run number下载SRA数据<br />
89. 快速批量统计fq.gz文件行数<br />
90. 格式化mapman结果（mercator）<br />
91. 基因表达量表格做行标准化<br />
92. 基于ID列表提取表格（考虑待提取的表格中有单ID对应多行记录）<br />
93. 文件批量重命名（提供一个重命名列表）<br />
94. perl批量添加fasta文件前缀 （用于多个样本分开组装后合并并用于去冗余等操作）<br />
95. 对表达量表格或者counts表格 依据平均值进行排序<br />
96. 双联表计算卡方值<br />
97. 整理bowtie的比对结果<br />
98. 基于给定列名顺序调整表格列顺序<br />
99.  整理GeneBank文件 （分离地点）<br />
100. 双列文件 整理 为 0-1 交集矩阵<br />
101. 整理bowtie2的比对结果<br />
102. 整理fastqc结果，提取所有样本的读段数<br />
103. 整理STAR比对结果</div>
</blockquote>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/1670.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>没必要学shell进阶语法</title>
		<link>http://www.bio-info-trainee.com/1410.html</link>
		<comments>http://www.bio-info-trainee.com/1410.html#comments</comments>
		<pubDate>Mon, 22 Feb 2016 12:29:07 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[杂谈-随笔]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[脚本]]></category>
		<category><![CDATA[自动化]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=1410</guid>
		<description><![CDATA[因为大部分生物信息学软件都是linux版本的，所以生物信息学数据分析工作者必备技 &#8230; <a href="http://www.bio-info-trainee.com/1410.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>因为大部分生物信息学软件都是linux版本的，所以生物信息学数据分析工作者必备技能就是linux，但是大部分人只是拿他当个中转站，我以前也是，直到接触了大批量的任务，自动化流程，才明白这里面的水太深了，不过无所谓，凭我个人的观点，其实shell的进阶语法真的不必要！</p>
<div>当然，只是我一家之言！</div>
<div>我实在是不想去背诵大括号，小括号，中括号以及双重括号到底区别是什么！</div>
<div>
<div><a href="http://www.bio-info-trainee.com/?p=1018">http://www.bio-info-trainee.com/?p=1018</a>  [],[[]],(),(()),{},{{}},以及在前面加上$的区别，以及它们互相杂交组合的区别！！！</div>
<p>我也不想去搞明白操作符两边是否加空格的区别是什么了。</p>
</div>
<div>if((i%5==0)) 来判断变量是否被一个数整除</div>
<div>i=$((i+1))来表示变量自增。</div>
<div>这些东西真的很诡异！</div>
<div>如果你有qsub，condor等任务提交系统，那么你只需要熟悉他们就可以了，但大部分散兵游勇的生物信息学家并没有集群，所以压根不会接触任务提交系统，就需要些自动化脚本了！</div>
<div>
<div><a href="http://www.bio-info-trainee.com/?p=382">http://www.bio-info-trainee.com/?p=382</a></div>
</div>
<div>受限制与机器的cpu以及内存数，需要判断提交了多少任务，等待多久再执行，所以会把一个简单的自动化脚本写的很复杂！</div>
<div>比如下面这个脚本：cat &gt;download_hg38_from_UCSC.sh</p>
<div><span style="color: #ff0000;">for i in $(seq 1 22) X Y M;</span></div>
<div><span style="color: #ff0000;">do echo $i;</span></div>
<div><span style="color: #ff0000;">wget<span class="Apple-converted-space"> </span><a href="ftp://hgdownload.cse.ucsc.edu/goldenPath/hg38/chromosomes/chr$%7Bi%7D.fa.gz">ftp://hgdownload.cse.ucsc.edu/goldenPath/hg38/chromosomes/chr${i}.fa.gz</a>;</span></div>
<div><span style="color: #ff0000;">done</span></div>
<div><span style="color: #ff0000;">gunzip *.gz</span></div>
<div><span style="color: #ff0000;">for i in $(seq 1 22) X Y M;</span></div>
<div><span style="color: #ff0000;">do cat chr${i}.fa &gt;&gt; hg38.fa;</span></div>
<div><span style="color: #ff0000;">done</span></div>
<div><span style="color: #ff0000;">rm -fr chr*.fa</span></div>
<div>可以下载hg38基因组的fasta文件，但是是分染色体一个个下载的！</div>
<div>再比如下面这个，批量做GSEA分析的脚本：</div>
<div>
<div>while read id</div>
<div>do</div>
<div>echo $id</div>
<div>gene=`echo $id |awk '{print $1}'`</div>
<div>probe=`echo $id |awk '{print $2}'`</div>
<div></div>
<div>echo $i</div>
<div>do_GSEA $probe $gene; ##这里是我自己定义的一个function，就不贴出来了</div>
<div>if((i%5==0))</div>
<div>then</div>
<div>sleep 10  ##重点就在这里，每次提交的任务有限制，所以需要休息，不然机器的cpu负载太高！</div>
<div>fi</div>
<div>i=$((i+1))</div>
<div>done &lt;$1</div>
<p>如果，还有其它功能需要实现，我们可以把脚本写的更负载，纯粹的用shell，需要搜索更多的shell技巧。</p>
</div>
<div>但是事实上并没有这个必要，我们现在有了更方便的脚本语言，比如我所擅长的perl</div>
<div>我写一个nohup提交任务的脚本！</div>
<div>
<div>## perl<span class="Apple-converted-space"> </span><a href="http://nohup.pl/">nohup.pl</a><span class="Apple-converted-space"> </span>  deep_count.sh  0</div>
<div>## perl<span class="Apple-converted-space"> </span><a href="http://nohup.pl/">nohup.pl</a><span class="Apple-converted-space"> </span>  deep_count.sh  1</div>
<div>## perl<span class="Apple-converted-space"> </span><a href="http://nohup.pl/">nohup.pl</a><span class="Apple-converted-space"> </span>  deep_count.sh  2</div>
<p>[perl]<br />
## perl nohup.pl   deep_count.sh  0<br />
## perl nohup.pl   deep_count.sh  1<br />
## perl nohup.pl   deep_count.sh  2<br />
$i=1;<br />
open FH,$ARGV[0];<br />
while(&lt;FH&gt;){<br />
    chomp;<br />
    next unless $.%3==$ARGV[1];<br />
    $cmd=&quot;nohup  $_  &amp;&quot;;<br />
    print &quot;$cmd\n&quot;;<br />
    system($cmd);<br />
    sleep(10800) if $i%5==4;<br />
    $i++;<br />
    #exit;<br />
}<br />
[/perl]</p>
</div>
<div>我尝试过用shell，写了很久，总是报错，但是用perl，一分钟我就写完了，所以，最好是用自己熟悉的一种语法最好！</div>
<div></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/1410.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shell里面的各种括号的区别</title>
		<link>http://www.bio-info-trainee.com/1018.html</link>
		<comments>http://www.bio-info-trainee.com/1018.html#comments</comments>
		<pubDate>Fri, 25 Sep 2015 14:42:30 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[脚本]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=1018</guid>
		<description><![CDATA[[],[[]],(),(()),{},{{}},以及在前面加上$的区别，以及它们 &#8230; <a href="http://www.bio-info-trainee.com/1018.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<h1>[],[[]],(),(()),{},{{}},以及在前面加上$的区别，以及它们互相杂交组合的区别！！！</h1>
<p>[[ ]] double brackets</p>
<p>(())<em>Double parentheses</em></p>
<p>{{}}<em>double curly brackets</em></p>
<p>我们必须要记住的是下面</p>
<p>[] 相当于test，作逻辑判断</p>
<p>$( ) 与` ` (反引号) 都是用来做命令替换用</p>
<p>${ } 吧... 它其实就是用来作变量替换用的啦</p>
<p>(())就是用来计算的，相当于expr函数。</p>
<p>参考：<a href="http://sayle.net/book/basics.htm">http://sayle.net/book/</a></p>
<p><a href="http://tldp.org/LDP/abs/html/index.html">http://tldp.org/LDP/abs/html/index.html</a></p>
<p>&nbsp;</p>
<p>我们首先看看一对的括号</p>
<p>首先[]是用来逻辑判断的，必须有空格</p>
<p>if [ -f binom.py ]</p>
<p>then</p>
<p>echo 'binom.py exists'</p>
<p>fi</p>
<p>或者</p>
<p>nub=$((i%4))</p>
<p>#echo $nub</p>
<p>if [ $nub == 0 ];then</p>
<p>echo "we need to sleep 4 hours"</p>
<p>sleep 14000</p>
<p>fi</p>
<p>这个[]操作符等价于test函数</p>
<p>if test $1 -gt 0<br />
then<br />
echo "$1 number is positive"<br />
fi</p>
<p>但是都必须有空格！！！</p>
<p>参考：<a href="http://www.freeos.com/guides/lsst/ch03sec02.html">http://www.freeos.com/guides/lsst/ch03sec02.html</a></p>
<p>关于shell的test操作符还有很多<a href="http://tldp.org/LDP/abs/html/fto.html">http://tldp.org/LDP/abs/html/fto.html</a></p>
<p>( ) 将command group 置于 sub-shell 去执行，也称 nested sub-shell。</p>
<p>{ } 则是在同一个 shell 内完成，也称为non-named command group。</p>
<p>补充一个: {} 还可以做变量扩展 {5..9}  或者 {abcd}e， 自己运行一下就知道效果啦</p>
<p>这两个差异很小，而且一般用不着，就不讲了。</p>
<p>那么这一对的括号加上了$符号后又变成了上面鬼东西呢？</p>
<p><b>当然，只有</b><b>：</b><b>$( ) </b><b>与</b><b>${ }</b><b>才是合法的。</b></p>
<p>在 bash shell 中，$( ) 与` ` (反引号) 都是用来做命令替换用(command substitution)的。</p>
<p>在操作上，用$( ) 或` ` 都无所谓，用$( )的优点是：</p>
<p>1, ` ` 很容易与' ' ( 单引号)搞混乱，尤其对初学者来说</p>
<p>2, 在多层次的复合替换中，` ` 须要额外的跳脱( \` )处理，而$( ) 则比较直观</p>
<p>再让我们看${ } 吧... 它其实就是用来作变量替换用的啦。</p>
<p>一般情况下，$var 与${var} 并没有啥不一样。</p>
<p>但是用${ } 会比较精确的界定变量名称的范围，比方说：</p>
<p>[code][/code]</p>
<p>$ A=B</p>
<p>$ echo $AB</p>
<p>还可以用来截取变量，这个就很多花样啦</p>
<p># 是去掉左边(在鉴盘上# 在$ 之左边)</p>
<p>% 是去掉右边(在鉴盘上% 在$ 之右边)</p>
<p>单一符号是最小匹配﹔两个符号是最大匹配</p>
<p>&nbsp;</p>
<p>然后我们看看两对的括号：</p>
<p>nub=$((i%4)) 等价于$nub=`expr $i % 1` ;</p>
<p>((i++)) 等价于$i=`expr $i + 1` ;</p>
<p>所以(())就是用来计算的，而且里面的变量不需要$来标记啦</p>
<p>（在 $(( )) 中的变量名称，可于其前面加$ 符号来替换，也可以不用）</p>
<p>在(())前面加上$只是为了把计算结果给保存而已。</p>
<p><b>而两个中括号和两个大括号都是不合法的！</b></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/1018.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>脚本作业-解读NCBI的ftp里面关于人的一些基因信息</title>
		<link>http://www.bio-info-trainee.com/686.html</link>
		<comments>http://www.bio-info-trainee.com/686.html#comments</comments>
		<pubDate>Fri, 01 May 2015 03:04:56 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[生信基础]]></category>
		<category><![CDATA[ncbi]]></category>
		<category><![CDATA[基因]]></category>
		<category><![CDATA[脚本]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=686</guid>
		<description><![CDATA[为了感谢大家对我博客的关注，我在这里发布一个作业，适合菜鸟做的。里面有十几个类似 &#8230; <a href="http://www.bio-info-trainee.com/686.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>为了感谢大家对我博客的关注，我在这里发布一个作业，适合菜鸟做的。里面有十几个类似的问题，大家可以下载数据自行处理，如果是问这些问题，我优先回答！</p>
<p style="text-align: center;"><b>NCBI的ftp里面关于人的一些基因信息</b></p>
<p>我在NCBI的ftp服务器里面下载了这些数据，时间是2015年，大多是hg19系列的，文件名如下：</p>
<p>CDS.fa 这个是ensembl中人的CDS碱基序列文件，hg38</p>
<p>entrez2go.gene 这个是有go注释的基因情况，有一万八的基因都有go注释</p>
<p>entrez2name.gene 这个是NCBI的entrez ID号对应着基因名的文件</p>
<p>entrez2pubmed.gene 这个是NCBI的entrez ID号对应着该基因发表过的文章的ID号</p>
<p>entrez2refseq2ensembl.gene 这个是NCBI的entrez ID号对应着基因名的refseq的ID号和ensembl数据库的ID号</p>
<p>human_gene_info这个是基因的详细信息，包括基因的起始终止点坐标等等</p>
<p>Protein.fa 这个是ensembl中人的蛋白的氨基酸序列文件，有十万多个蛋白hg38</p>
<p>ref2ensembl.txt  这个是基因名的refseq的ID号和ensembl数据库的ID号</p>
<p>自行去NCBI的ftp服务器里面下载这些数据。</p>
<p>然后好好熟悉这些数据信息，回答一下几个问题：</p>
<p>人总的基因有多少个，它们分别分布在哪些染色体上面，基因的转录本分布情况如何，基因的长度分布如何，基因的外显子个数如何。</p>
<p>CD分子的基因有多少个，它们分别分布在哪些染色体上面，基因的转录本分布情况如何，基因的长度分布如何，基因的外显子个数如何。它们有没有氨基酸偏好性？？</p>
<p>MHC系列基因信息？CCL系列基因信息如何？CXCL系列信息如何？或者你感兴趣的基因家族信息？</p>
<p>现在研究最热门的基因是什么？发表文章最多的前十个基因是什么？</p>
<p>基因长度情况如何？最长的基因多长？最短的基因多少bp，可靠吗？</p>
<p>蛋白质长度情况如何？</p>
<p>每条染色体的基因分别情况？基因在染色体那个地方分别最多？</p>
<p>请用图形展示你的结论！！！</p>
<p>&nbsp;</p>
<p>如果你能回答以上问题，证明你的脚本水平不错了。</p>
<p>如果找不到我，看旁边的公告，加入生信菜鸟群，我就在里面！！！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/686.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux基础之shell脚本的批处理</title>
		<link>http://www.bio-info-trainee.com/382.html</link>
		<comments>http://www.bio-info-trainee.com/382.html#comments</comments>
		<pubDate>Thu, 19 Mar 2015 14:55:48 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[批处理]]></category>
		<category><![CDATA[脚本]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=382</guid>
		<description><![CDATA[脚本类似于下面的样子，大家可以读懂之后就仿写 for i in *sra do  &#8230; <a href="http://www.bio-info-trainee.com/382.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>脚本类似于下面的样子，大家可以读懂之后就仿写</p>
<p>for i in *sra</p>
<p>do</p>
<p>echo $i</p>
<p>/home/jmzeng/bio-soft/sratoolkit.2.3.5-2-ubuntu64/bin/fastq-dump --split-3 $i</p>
<p>Done</p>
<p>这个脚本是把当前目录下所有的NCBI下载的sra文件都加压开来成测序fastq格式文件</p>
<p>有这些数据，分布在不同的目录，如果是写命令一个个文件处理，很麻烦，如果有几百个那就更麻烦了，所以需要用shell脚本</p>
<p><a href="http://www.bio-info-trainee.com/wp-content/uploads/2015/03/Linux基础之shell脚本的批处理254.png"><img class="alignnone size-full wp-image-383" src="http://www.bio-info-trainee.com/wp-content/uploads/2015/03/Linux基础之shell脚本的批处理254.png" alt="Linux基础之shell脚本的批处理254" width="177" height="158" /></a></p>
<p>这样只需要bash这个脚本即可一次性处理所有的数据</p>
<p><a href="http://www.bio-info-trainee.com/wp-content/uploads/2015/03/Linux基础之shell脚本的批处理282.png"><img class="alignnone size-full wp-image-384" src="http://www.bio-info-trainee.com/wp-content/uploads/2015/03/Linux基础之shell脚本的批处理282.png" alt="Linux基础之shell脚本的批处理282" width="550" height="380" /></a></p>
<p>还有很多类似的脚本，非常简单的</p>
<p>for i in *fq</p>
<p>do</p>
<p>echo $i</p>
<p>bowtie2 -p 13 -x ../../RNA.fa -U $i -S  $i.sam</p>
<p>done</p>
<p>&nbsp;</p>
<p>for i in */accepted_hits.bam</p>
<p>do</p>
<p>echo $i</p>
<p>out=`echo $i |cut -d'/' -f 1`_clout</p>
<p>samtools mpileup -guSDf  /home/immune/refer_genome/hg19/hg19.fa $i  | bcftools view -cvNg - &gt;snp-vcf/$out.vcf</p>
<p>done</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>while read id</p>
<p>do</p>
<p>echo $id</p>
<p>out=`echo $id |cut -d'/' -f 2`</p>
<p>reads=`echo $id |cut -d'/' -f 3|sed 's/\r//g'`</p>
<p>tophat2 -p 13 -o $out /home/immune/refer_genome/hg19/hg19 $reads</p>
<p>done &lt;$1</p>
<p>&nbsp;</p>
<p>等等</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/382.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
