本帖最后由 小疯纸一枚 于 2013-12-7 19:12 编辑
任务描述:
对 http://59.77.16.70/JBrowse-1.9.5/ 进行注释 ,就是把gff3当输入文件,在browse上展示出来
1、对mRNA注释,这个最简单,有现成的gff,见附件,名字叫“gene”
2、对miRNA注释,你把fasta序列准备好,让魏乐义和胡玲玲给你搞定gff3, 名字叫“miRNA”
3. 对tRNA注释,用附件软件,我在75上试过,好使。名字叫“tRNA”
可能遇到的问题:
当输入bin/faltfile-tojson.pl --gff data/XXX.gff3 --tracklabel XXX
或者 bin/prepare-refseqs.pl --fasta data/XXX.fa 会出现
这时候就要更新perl 版本
下载最新版本http://www.perl.org/get.html
perl-5.18.1.tar.gz
依次执行命令
tar zxvf perl-5.18.1.tar.gz
cp perl-5.18.1
mkdir /usr/local/perl
./Configure -des -Dprefix=/usr/local/perl
make
make test
make install
cd /usr/bin
rm -rf perl
ln -s /usr/local/perl/bin/perl perl
然后perl 就更新完毕, 然后就不会出现上述错误,然后可能会缺失perl模块,然后可以到CPAN上去下载
需要的模块。
--1,2> 现在有一堆的gff文件(例如从tRNAscan-out输出转换来的gff,如何转换后文有交待),这些gff所对应的序列文件分散在Orange下面的jiazhao1,2,3个文件夹中,- #!/bin/sh
- filelist=`ls /backup2/wwwroot/JBrowse-1.9.5/Orange/jiazhao2_gff3`
- for file in $$filelist
- do
- cd /backup2/wwwroot/JBrowse-1.9.5/Orange/jiazhao2/$${file}
- pwd
- /backup2/wwwroot/JBrowse-1.9.5/bin/flatfile-to-json.pl --gff /backup2/wwwroot/JBrowse-1.9.5/Orange/jiazhao2_gff3/$${file} --tracklabel tRNA
- pwd
- done
- #filename=`basename $$file`
- # for file1 in `ls /backup2/wwwroot/maoyaozong/gff`
- # do
- # filename2=`basename $$file1`
- # if [ "$$filename2" = "$$filename" ]
- # then
- # echo "$$file" >> result2
- # else
- # echo "the file1 is $$filename and the file is $$filename2"
- # fi
- # done
- done
复制代码 代码假设这些gff 全部放在jiazhao2_gff3,列举这些文件的文件名,然后进入到jiazhao2文件夹中进行配置,因为有的文件不在jiazhao2中,所以执行的时候会出现错误,但是没有关系,运行完后,分别到剩下的文件夹中配置就好了jiazhao1,jiazhao3,如果想要确切的知道各个gff对应哪个序列文件夹,可以用注释部分进行提取,但是时间会很久哦。
---3>对tRNA的标注软件是tRNAscan-SE, 软件描述:
- identifies transfer RNA genes in genomic DNA or RNA sequences The program is invoked by giving it a series of optional command
- line parameters,then a list of one or more sequence files written in the FASTA format .
- tRNAscan-SE [-options] FASTA_file(s)
- -o file
- : save final results in file
- Specifiy this option to write results to file rather than standard output
复制代码已经在70安装了tRNAscan-SE 安装tRNAscan-SE 的方法,解压,然后make
安装tRNAscan-SE出现错误conflicting types for ‘getline’ 原因是某个getline函数定义和已经有的getline函数重名了。 错误信息: sqio.c:238:1: error: conflicting types for ‘getline’ In file included from sqio.c:27:0: /usr/include/stdio.h:677:18: note: previous declaration of ‘getline’ was here make: *** [sqio.o] Error 1 修改sqio.c 将其中的getline换个名字 get_line 就可以了! 方法: 用vi 打开sqio.c文件 然后来一个:1,$s/getline/get_line/g
现在有了tRNAscan-SE的输出文件假设命名为 tRNA.out, 这个不是gff3文件,需要捣鼓成gff3文件,可以参考gff3文件各个字段的含义,以及 tRNA.out各个字段的含义,自己写代码进行转换。
http://bio-spring.info/wp/?tag=gff3 这个是gff3 各个字段含义的解释
这个是tRNA.out各个字段的含义:
可以自己写代码转换:
这里有一个现成的,如果有错请指出谢谢,最好还是自己写比较保险 - import java.io.BufferedReader;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- public class covert_gff3 {
- //用来把tRNAscan_SE的输出文件转化成JBrowse可以用的gff3格式
- /**
- * @param args
- * @throws IOException
- */
- public static void main(String[] args) throws IOException {
- // TODO Auto-generated method stub
- BufferedReader tRNA_read=new BufferedReader(new FileReader("zoutRNA.out"));
- String line=tRNA_read.readLine();
- // System.out.println(line);
- while(line.charAt(0)!='-'){
- line=tRNA_read.readLine();//当不是---------行的时候一直往下读
- }
- line=tRNA_read.readLine();//读取第一行数据
- String last_name="maoyaozong";
- while(line!=null){//当字符串里面有东西的时候
- String [] element = line.split("\\s+");//把每一行里的元素都分隔开来
- //System.out.println(element[0]+" "+element[1]+" "+element[2]); 测试用的因为有的是两个空格
- if(!last_name.equals(element[0])){//如果和上一行的名字不相等就说明是一行新的序列
- BufferedWriter bw=new BufferedWriter(new FileWriter(element[0]));
- bw.write("##gff-version3");
- bw.newLine();
- bw.flush();
- bw.write(element[0]+"\t"+element[1]+"\t"+"tRNA"+"\t"+element[2]+"\t"+element[3]+"\t"+element[8]+"\t"+"-"+"\t"+"."+"\t"+"ID="+element[0]+element[1]);
- bw.newLine();
- bw.flush();
- bw.close();
- }
- else{//如果和上一行一样的话,就是追加了
- FileWriter writer = new FileWriter(element[0], true);
- writer.write(element[0]+"\t"+element[1]+"\t"+"tRNA"+"\t"+element[2]+"\t"+element[3]+"\t"+element[8]+"\t"+"-"+"\t"+"."+"\t"+"ID="+element[0]+element[1]);
- writer.write("\n");
- writer.close();
- }
- line=tRNA_read.readLine();
- last_name=element[0].substring(0, element[0].length());
- System.out.println(last_name);
- }
- }
- }
复制代码 这样就有了tRNA.gff3文件了……然后和上面的配置方法一样进行配置就可以了。
--4> 在配置的时候,终端运行会很长时间,如果网络问题还是怎么地突然中断,那么之前的工作就白瞎了,所以保险起见用 screen 命令,如果已经知道这招请无视我,我是学渣。
在终端输入screen ,这时候进入一个新的界面,在这里执行 ./XXXX.sh 命令进行配置
这时候即使是终端退出,screen 的会话也不会被中止,只需要再次启动终端,进入screen就可以了。
离开 screen 界面 按ctrl+a+d
查看多少screen: screen -ls
当查看screen 后,每个screen前面有ID号,如果要启动其中的screen : screen -r ID
当执行 screen -r ID 不能恢复的时候,可以先试一下 screen -d ID ,然后再恢复。
|