社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

​手把手带你学 Python3 | python3 脚本小实战(代码放送)

生信菜鸟团 • 5 年前 • 682 次点击  


这里是python3学习笔记的第七篇。小编也从蒙圈的状态开始写一些手推车脚本去完成一些文件的处理。今天的推送就贴上一个最近写的脚本,一定存在可以优化的点,也希望大家不吝赐教。

circRNA和lncRNA的分析依旧火热,生信预测软件也相对成熟,而且好用。伴随着研究的透彻,你也极有可能获得如上的表格,非常多的信息(为了展示本脚本想获取的有效信息,因此就简单的写了两行,右边展示为该分子在各个样本中比对到的reads数)。

在转录组分析中,我们会对不同样本(即生物学意义不同的组)进行分别测序,拟找到不同样本间差异表达的基因,也就是可能在该过程中发挥潜在功能的分子。表格信息太多就需要正确的姿势去获取。

贴代码:

import os
import re

os.chdir('C:\\Users\\user\\desktop')
f = open('expression.txt''rt')
f = f.readlines()
f3 = open('circRNA_sampleinfo.fa','w+')

dict_sample = {}

from itertools import islice
for line in islice(f, 1None):
    line = line.split('\t')
    ids = line[3]
    dict_sample[ids] = []
    t_sample = int(line[-1]) + int(line[-2]) + int(line[-3])
    c_sample = int(line[-4]) + int(line[-5]) + int(line[-6])
    if t_sample >0:
        dict_sample[ids] = ['T']
    if m_sample > 0 :
        dict_sample[ids].append('C')

f2 = open('circ.fa','rt')
for orf_line in f2:
    if orf_line.startswith('>'):
        orf_id = orf_line.split(':')[0]
        circ_id = re.findall(r'_(.*)', orf_id)[0]
        sample_info = ':'+str(dict_sample[circ_id])
        orf_id1 = re.sub(r'$',sample_info,orf_line,1)
        f3.write(orf_id1)
    else:

        f3.write(orf_line)f3.close()

代码分两段,放在pycharm上跑的,为了方便就将工作路径放在了桌面。区分样本主要依靠其中的判断,也就是上一期讲的条件判断。在此认为,在不同的生物重复中检测到我们将报这条circRNA在其中表达。

第二段是为了在fa文件中将样本特异信息写入其中的ID,如果单独只是获取组织特异表达的circRNA,只要参照第一段去修改,并不用引入字典,当然lncRNA等也类似。

如果你想整一个更有效的列表,在读行过程中,把其他列的信息一同写入。最后的最后,使用Venn图简单可视化。

这些是很简单的脚本啦,如果你想系统的学习、加入我们整理和分享的团队,或者是湿实验做多了想来看看生信的世界,亦或是出国深造打下基础、转行做分析,或者和团长面个基… 

你现在有一个极好的机会。无论现在的水平如何,在你认定做这一件事的时候,将注定有所收获。不想了解一下么💁

生信技能树超级VIP入场券 (


最后,专题的内容也整理放送,希望你会有所收获。

 三剑客 PyCharm使用  | 编程基础与规范代码 | 列表使用一文就够了 | 元组拆包是个啥?字典与FASTA文件序列抽提 | 如何判断序列是否跨过剪切位点

全国巡讲约你


第1-11站北上广深杭,西安,郑州, 吉林,武汉,成都,港珠澳(全部结束)

一年一度的生信技能树单细胞线下培训班(已结束)

全国巡讲第13站-杭州(生信技能树爆款入门课)(下一站甘肃兰州,火热报名)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37709
 
682 次点击