RNA-seq拼接结果数据提交NCBI

RNA-seq的拼接结果也可以向NCBI提交,第一次提交,还是费了不少事,这里简单总结一下。RNA-seq的拼接结果应该提交到TSA库,TSA全称Transcriptome Shotgun Assembly Sequence Database,TSA is an archive of computationally assembled sequences from primary data such as ESTs, traces and Next Generation Sequencing Technologies.

对于注释信息的要求

TSA数据提交前,首先需要将原始的序列提交到SRA数据库,与提交普通核酸、EST类似,TSA还需要提供DBlink关于BioProject、SRA接收号、BioSample;提供拼接信息以及对于拼接过程的描述。

对于序列的要求

  • 必须是原始的测序结果的拼接数据
  • 需要去除载体或者测序引物
  • 序列长度不能少于200bp
  • 序列不能包括太多的N,少于10%或者小于14个N Continue reading

MYSQL高可用性案例精讲

1. 系统项目经验 – bbs.55bbs.com
   1.1 项目特点:
       1.1.1 论坛活跃度高 ( 1.5 – 2 贴/秒 );
       1.1.2 在线浏览人数多 ( 1000 万 PV/日、6 万人在线 );
       1.1.3 数据库查询频繁,高并发量 ( 3000+ 次/秒/台 );
       1.1.4 业务要求高可用性,在线生产数据库要求 7 * 24;
   1.2 实施经验:
       1.2.1 在着手进行实施改造之前做大量的前期分析工作,尽量确保收集到准确全面的性能问题点。
             在论坛社区应用领域中,尤其对于大型论坛而言,几乎每个论坛都有自己独特的问题类型;
       1.2.2 使用了大量数据库缓存技术:文件缓存、帖子缓存、memcached 缓存;
       1.2.3 数据库使用分布式部署,将一些耗费资源的功能分布到不同的数据库服务器中,同时保证
             各个数据库服务器中的数据高度一致;
       1.2.4 使用 MySQL 分区技术有效解决数据表体积过大带来的性能降低;
       1.2.5 全面仔细的评估所需的硬件资源,避免造成不必要的硬件成本浪费;
Continue reading

MySQL查询的性能优化 – 查询缓冲提高查询速度

一般我们使用SQL语句进行查询时,数据库服务器每次在收到客户端发来SQL后,都会执行这条SQL语句。但当在一定间隔内(如1分钟内),接到完 全相同的SQL语句,也同样执行他。虽然这样能确保数据的实时性,但在大多数时候,数据并不需求完全的实时,也就是说能有一定的延时。如果是这样的话,在 短时间内执行完全相同的SQL就有些得不偿失。 Continue reading

MySQL中各种字段的取值范围

TINYINT
-128 – 127
TINYINT UNSIGNED
0 – 255
SMALLINT
-32768 – 32767
SMALLINT UNSIGNED
0 – 65535
MEDIUMINT
-8388608 – 8388607
MEDIUMINT UNSIGNED
0 – 16777215
INT 或 INTEGER
-2147483648 – 2147483647
INT UNSIGNED 或 INTEGER UNSIGNED
0 – 4294967295
BIGINT
-9223372036854775808 – 9223372036854775807
BIGINT UNSIGNED
0 – 18446744073709551615

FLOAT
-3.402823466E+38 – -1.175494351E-38
0
1.175494351E-38 – 3.402823466E+38

DOUBLE 或 DOUBLE PRECISION 或 REAL
-1.7976931348623157E+308 – -2.2250738585072014E-308
0
2.2250738585072014E-308 – 1.7976931348623157E+308 Continue reading

Oracle:sql语句查询没有重复的记录数目

1、通过创建临时表

可以把数据先导入到一个临时表中,然后删除原表的数据,再把数据导回原表,SQL语句如下:

creat table tbl_tmp (select distinct* from tbl);
truncate table tbl;//清空表记录
insert into tbl select * from tbl_tmp;
//将临时表中的数据插回来。

这种方法可以实现需求,但是很明显,对于一个千万级记录的表,这种方法很慢,在生产系统中,这会给系统带来很大的开销,不可行。

2、利用rowid

在oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是oracle中的哪一个数据文件、块、行上。在重复的记录中,可能所有列的内容都相同,但rowid不会相同。SQL语句如下:

delete from tbl where rowid in (
select a.rowid from tbl a, tbl b where a.rowid>b.rowid
and a.col1=b.col1 and a.col2 = b.col2)

如果已经知道每条记录只有一条重复的,这个sql语句适用。但是如果每条记录的重复记录有N条,这个N是未知的,就要考虑适用下面这种方法了。 Continue reading

数据解释入Mysql时遇到的问题一例

将分类数据导入数据库,用perl写脚本,提取相关的信息,然后根据数据表,生成dmp格式,入库

SET NAMES 'utf8';
LOAD DATA INFILE 'E:/project/fenlei.dmp.txt'
INTO TABLE wiki_category
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
报错:
ERROR 1366 (HY000): Incorrect string value: ‘\xB9\xFA\xBC\xD2\xBB\xFA…’ for column ‘name’ at row 1
我以为是mysql load命名问题,后来网上搜索,得知是文件本身的编码是否是urf8格式,我如梦方醒,这个问题我遇到的太多了,用记事本带开,另存为urf-8格式,结果还是错
ERROR 1366 (HY000): Incorrect integer value: ‘锘?1’ for column ‘cid’ at row 1
这个我也非常熟悉,文档开头,表示文档的编码,用UltraEdit打开,文件的开始就是:锘?1,删除,再执行:又错:
ERROR 1062 (23000): Duplicate entry ‘1’ for key 1
主键重复,删除时,文档的内容也被删除,修改正确,再入,终于ok
Query OK, 2240 rows affected (0.03 sec)
Records: 2240  Deleted: 0  Skipped: 0  Warnings: 0
 
问题根源:perl生产的文档不是urf8编码的,
《问》:perl生产文件时,如何指定其编码?

Oracle性能调优-优化排序操作

 关于Oracle 10g性能方面,谈论最多的就是新的自动工作负荷存储库(AWR)特性和通过自动数据库诊断监视(ADDM)提供的前瞻性性能监视。

 当建立同Oracle会话时,会在服务器内存中划分出一个专门用来排序的区域,从而为会话提供排序空间。但是,这个排序空间毕竟有限,若记录数量超 过这个排序空间的话,就需要进行磁盘排序。但是,我们都知道,磁盘排序的执行速度要比内存排序的执行速度慢1400倍。而且,磁盘排序会消耗临时表空间的 资源,并且可能影响到正在进行的其他SQL排序,因为Oracle必须为临时表空间中的数据块分配缓冲池。而且,过多的磁盘排序会导致空闲缓冲等待,以及 将执行其他任务的数据块从缓冲池中分页出去。对于数据库管理员来说,在内存中进行排序总是比磁盘排序更受欢迎。所以说,磁盘排序是影响Oracle数据库 性能的罪魁祸首。

  在数据库优化的时候,我们应该想法设法降低数据库的磁盘排序。为此,笔者有如下建议。 Continue reading

Oracle:全文检索

使用contains对于全文索引字段的查询 

CONTAINS(
         [schema.]column,
         text_query    VARCHAR2
         [,label       NUMBER])
RETURN NUMBER;

eg:
select count(*) from tb_citation t where contains (t.authors,’T J Crow’,1) >0

可以使用 CONTAINS 谓词在数据库中检索特定的短语。当然,这样的查询可以使用 LIKE 谓词编写。但是,CONTAINS 的许多形式所提供的文本查询能力比 LIKE 要强。此外,与使用 LIKE 谓词不同的是,CONTAINS 检索总是区分大小写。 Continue reading