我们有一下文本:dssp1a45.dssp

要求提取出文本中氨基酸序列的名称和结构,并是他们整行相互对应,其中结构序列中的空格 用'_'代替。

输出格式为两行信息:GKITFYEDRGFQGRHYECSSDHSNLQPYFSRCNSIRVDSGCWMLYEQPNFQGPQYF...
_EEEEEEETTTEEEEEEE_S_BS__TTT_S__SEEEEEESEEEEESSGGG...

拿到文本文件.dssp(类似于.txt)

我们发现我们的目的信息在文本文件中的红色区域的蓝色框中,其余信息全部都是不需要的,我们要把其余区域清除掉,提取出这两列信息,并且对应输出,这便是思路!

第一步:

file = open('dssp1a45.dssp','r')            #以读取方式打开文件
str = ''.join(file.readlines()[28:])        # 删除检索内容以外的首部
file2 = open('new.txt','w')                 #将删除后的文件写入new.txt
file2.write(str)
f = open("new.txt",'r')

我们这时候把红色区域上面的多余部分就排除掉了。

其中file.readlines()[28:]表示读取文件28行以下的内容 即为红色区域。

str=''.join()  表示把括号内的列表强制转换成字符串str,并且元素间不加任何分隔符。

之后再创建一个file2:new.txt。

将str写入new.txt.并用接收可读来打开他

第二步:

我们得到的new.txt文件如下,自动保存在我们的相同目录内。

一会儿用完再删除,卸磨杀驴!

所以接下来我们提取这里面的三/四两列信息出来就欧克了

注意这个是字符串文本,表面上看是3/4两列,其实不是,中间有空格,好好数数应该是第14列和第17列,迭代提取出来!

a = f.readlines()                           #对文本f进行列表迭代
acid = 13
stucture = 16                               #找到氨基酸和结构所在列数
aa =""                                      #预定义两个空字符串空间来存放氨基酸序列和结构序列
stc=""
i = 0
for line in a:                              #迭代每个行列表,并提取氨基酸和结构所对应的列元素aa  += a[i][acid]stc += a[i][stucture]for b in stc:                           # 迭代结构序列new_name = stc.replace(" ", '_')    # 将结构序列中的空格改成下划线i+=1
final = aa+ '\n' +new_name                  #计算结果
print(final)                                #打印结果

注释非常明确。

值得注意的是,其实在python中处理字符串就相当于是在C中对数组进行处理,这里面类似二维数组的一个处理方式我们的a[i]表示的是每一整行。

a[i][j]表示的是第i行第j个元素,通过数元素我们发现氨基酸和对应结构的j的值是14和17,

对应的j应该是13和16,

所以我们迭代出每行的氨基酸和对应结构就很容易了。

然后我们把读取到的氨基酸和结构序列分别存放到一个空的字符串aa和stc里面。

修改空格成为'_' :我们引入了第二个for循环,目的是把stc里面读到的空格修改,所以对stc进行迭代,用replace函数进行修改以后,将新的修改好的字符串存入new_name字符串中,所以我们最后的修改好的结构序列和氨基酸序列进行final的运算(如代码框内所示),就可以得到如下结果了:

第三步:

收尾工作要做好

file3=open('dssp1a45.ss','w')
file3.write(final)                          #将最后的结果写入file3并保存为dssp1a45.ss
file3.close()                               #注意关闭使用过的所有文件!
f.close()
file2.close()
file.close()
#import os                                    调用os
# os.remove('new.txt')                        #所有文件关闭后,删除辅助操作用的文件

我们可以把我们得到的结果这样写入一个文件中,最后关闭掉我们中途使用过的文件,并且把过度文件new.txt删除,我们的目录就会非常干净了!

#python#生物信息学 提取文本某列信息 #提取氨基酸序列并且提取氨基酸结构序列与之对应相关推荐

  1. 知识图谱——用Python代码从文本中挖掘信息的强大数据科学技术

    什么是知识图谱? 如何在图谱中表示知识? 依靠文本数据构建知识图谱 什么是知识图谱? 先明确一个概念:在本文中经常出现的术语"图谱",并不是指柱状图.饼状图或线状图,而是相互关联的 ...

  2. matlab如何提取某一列的数据_MATLAB如何提取某一矩阵的某一列的部分数据?

    展开全部 使用2113a(M,N)可以提取矩阵a中符合5261M,4102N要求的部分 最简单1653是M,N都是标量,就是一回个数例如:答 a(1,1) a(2,3)分别返回a矩阵1行1列的单元 和 ...

  3. linux命令中提取某一列,怎么用Linux命令提取表格文本中的某列

    如何用Linux命令提取表格文本中的某列 文本文件x.txt内容如下: kaa a:\dkdkdk 123 dfdfdf b:\xxxxxxxxx 3234 j你好x c:\fdfdfv 打开 我现在 ...

  4. 使用Palette类提取图片的颜色信息

    原文出处:http://qichaochen.github.io/2014/11/16/105-Android-5.0-Palette-01/ 在Material Design设计中很重要的一部分内容 ...

  5. Python数据类型(二)文本类型-str

    Python中处理文本数据使用由Unicode编码构成的不可变序列字符串-str对象.字符串表达形式如下: .单引号 'This article describes information about ...

  6. Python easyOCR图像文本提取 初识

    博物馆一日游,拍照片无数.分类整理,希望图片中的文字进行识别,加上各展馆.各展品的说明.     手工一张张的整理,慢,累,要老命......     还好,模块化.低代码时代,效率.性能.界面.易用 ...

  7. python中文文本分词_SnowNLP:?中文分词?词性标准?提取文本摘要,?提取文本关键词,?转换成拼音?繁体转简体的 处理中文文本的Python3 类库...

    SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和Te ...

  8. python提取高频词_cygwin下用Python+jieba给文本分词并提取高频词

    本文信息本文由方法SEO顾问发表于2015-05-3023:05:55,共 2000 字,转载请注明:cygwin下用Python+jieba给文本分词并提取高频词_[方法SEO顾问],如果我网站的文 ...

  9. python表格多列合并_python 合并excel表格数据-如何用python从excel中同时提取两个列的数据,并生成dict(用xlrd)...

    用Python导出工程文件两个子页里的数据成为两个excel表格,但我想把它合并成个一个excel表格的两个sheet 可以采用一些操作Excel块去实现,比如xlrd.xlwt.openpyxl.x ...

  10. python中文文本分析和提取_python str(使用python对txt文本进行分析和提取)

    python 文本文件数据处理 #/usr/bin/env python3 # -*- coding: utf-8 -*- def zhidao_560604345(infile, outfile): ...

最新文章

  1. monorepo_Monorepo开发的要点
  2. linux装oracle11g启动失败,Oracle11GSELinux原因启动失败的解决办法
  3. 学习方法之01高效学习方程式,你的学习到底是哪里出了问题
  4. spring data jpa update
  5. html没有插件怎么办,html网页包插件没有插入options.title
  6. centos7的网络配置
  7. Reflexer Labs将于4月15日进行首次FLX代币分配
  8. 鏖战九载,Google 是否会因 Oracle 而弃用 Java?
  9. 这个华人程序员是如何 6 个月狂赚 125 亿的?
  10. 如何解决代码嵌套太深问题
  11. 使用Configuration Manager部署及管理软件更新(1)
  12. R语言批量生成CaseWhen的解决方案
  13. win7右键没有新建文本文档怎么办
  14. svn如何提取文件更新列表
  15. html跳转按钮谷歌浏览器点击没反应,在各个浏览器点击按钮都没有反应
  16. atom 编辑器html,Atom编辑器配置
  17. 计算机读不出相机磁盘,相机存储卡读不出来怎么办?相机存储卡无法读取
  18. Unity3D WASD和方向键控制多个角色
  19. MIT博士研发绘画机器人Utensil,精通绘画和激光切割
  20. 指针<小罗爱c语言>

热门文章

  1. oracle 富文本类型,将BLOB类型值在富文本显示和将富文本内容以BLOB类型存储到数据库...
  2. 开关电源Buck电路CCM和DCM工作模式
  3. html中header怎么设置,HTML中的header标签怎么用?
  4. 旭凤锦覓虐心 恋只愿共赴鸿蒙,【香蜜同人】所爱隔山海(旭凤X锦觅X润玉)
  5. vue中的混入mix
  6. 什么是王道?什么是王道中的王道?
  7. 区块链学习笔记12——BTC思考
  8. word页眉前后不一致怎么设置_如何设置页眉部分内容前后不同,页脚部分内容也前后不同的WORD文档?...
  9. 日活两亿的快手,如何用AI理解视频、做好分发
  10. 为什么java数值型的负数比正数多一位