动物miRNA靶基因本地预测(二)——数据准备

上一篇介绍了4种靶基因预测软件的安装,那么在正式使用前,需要进行数据的准备,以满足软件使用的格式要求,本文将详细介绍本人在数据准备过程中遇到的麻烦,尤其是targetscan数据的转换,并分享解决方法。

1、miRNA序列fasta文件准备

miRNA名称与序列存在一个csv表格文件中,怎么变成fasta格式呢?

初始数据

还是那句话!人生苦短,我学python!

# 导入csv模块,没安装的需要先安装
import csv

with open('D:\\用户\\桌面\\test.csv') as f:
    r = csv.reader(f)
    for row in r:
        print(row)
        # row是一个列表,将每一个列表都拼接成一行,即为一个miRNA的fasta格式
        line = '>' + row[0] + '\n' + row[1] + '\n'
        # 逐行保存
        with open('D:\\用户\\桌面\\test.txt', 'a') as r:
            r.writelines(line)

最终数据

手动删除前两行就得到我们所需的fasta格式文件了!

2、mRNA序列fasta文件准备

1)合并多个mRNA序列文件

测试的mRNA序列存在多个fasta文件中,打开一个文件,序列信息分布在多行中。

初始数据

我希望将所有的fasta文件合并在同一个文件中,并且每一条序列仅占用一行(原因后面讲)。

# 导入os模块
import os

# 获取目标文件夹的路径
path = 'D:\\用户\\桌面\\test'
# 获取当前文件夹中的文件名称列表
filenames = os.listdir(path)
# 逐个获取文件路径,并处理
for filename in filenames:
    filepath = path + '\\' + filename
    # 读取单个文件,并逐行处理
    with open(filepath) as f:
        for line in f:
            # 去除每行左右空白
            line = line.strip()
            # 去除空白行
            if len(line) == 0:
                continue
            # 合并序列为一行
            line = line.replace('\n', '').replace('>', '\n>')
            if line.startswith('\n>'):
                # 去除多余信息,仅保留gene_id
                line = line.split(' ')[0] + '\n'
            # 保存
            with open('D:\\用户\\桌面\\mRNA_16.txt', 'a') as r:
                r.writelines(line)
最终数据

可以看到每一个gene_id占一行,没有了其他的介绍信息,并且每一条序列也仅占一行(序列太长,看起来像是有多行,实际上是一行),记得手动删除第一个空白行。

2)总转录本mRNA序列去冗余

前面有提到将每一条序列放到一行中,原因有两个:一是因为序列放在多行,意味着需要更多行来存储序列,总转录本文件较大,所以每次打开都很慢,将每条序列放在一行,节省了大量空间,打开就非常快,并且猜测在靶基因预测时,运行速度同样可以变快;二是为了后面方便转换成targetscan软件运行的格式。

初始数据
with open(r'D:\用户\桌面\total_reverse_CDS201703.fa', encoding='gbk') as fastas:
    for line in fastas:
        line = line.strip()
        if len(line) == 0:
            continue
        line = line.replace('\n', '').replace('>', '\n>')
        if line.startswith('\n>'):
            line = line.replace('gene=','') + '\n'
        with open(r"D:\用户\桌面\total_reverse_CDS201703.txt", 'a') as f:
            f.writelines(line)
最终数据

秒开的速度!

记得手动删除第一个空白行。

3、targetscan数据准备

1)miRNA输入格式

targetscan要求的miRNA数据格式如下:

目标数据格式

将fasta格式转换成目标数据格式。

with open(r'D:\用户\桌面\test.txt') as f:
    for line in f:
        line = line.strip()
        if len(line) == 0:
            continue
        line = line.replace('\n', '').replace('>', '\n>')
        if line.startswith('\n>'):
            line = line.replace('>','') + '\t'
        else:
            line = line[1:8] + '\t' + '10010' 
        with open(r'D:\用户\桌面\test_targetscan.txt','a') as r:
            r.writelines(line)
最终数据

老规矩,手动删除第一行!

2)mRNA输入格式

目标数据格式
with open(r'D:\用户\桌面\total_reverse_CDS201703.txt') as f:
    for line in f:
        line = line.strip()
        if len(line) == 0:
            continue
        line = line.replace('\n', '').replace('>', '\n>')
        if line.startswith('\n>'):
            line = line.replace('>','') + '\t' + '10010' + '\t'
        with open(r'D:\用户\桌面\total_reverse_CDS201703_targetscan.txt','a') as r:
            r.writelines(line)
最终数据

手动删除第一行!

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值