生信分析Python实战练习 9 | 视频27

2023-09-20 21:01:55

开源生信 Python教程

生信专用简明 Python 文字和视频教程

源码在:https://github.com/Tong-Chen/Bioinfo_course_python

目录

  1. 背景介绍

    1. 编程开篇

    2. 为什么学习Python

    3. 如何安装Python

    4. 如何运行Python命令和脚本

    5. 使用什么编辑器写Python脚本

  2. Python程序事例

  3. Python基本语法

    1. 数值变量操作

    2. 字符串变量操作

    3. 列表操作

    4. 集合操作

    5. Range使用

    6. 字典操作

    7. 层级缩进

    8. 变量、数据结构、流程控制

  4. 输入输出

    1. 交互式输入输出

    2. 文件读写

  5. 实战练习(一)

    1. 背景知识

    2. 生信相关作业(一)

  6. 函数操作

    1. 函数操作

    2. 生信相关作业(二)

  7. 模块

  8. 命令行参数

    1. 命令行参数

    2. 生信相关作业(三)

  9. 更多Python内容

    1. 单语句块

    2. 列表综合,生成新列表的简化的for循环

    3. lambda, map, filer, reduce (保留节目)

    4. exec, eval (执行字符串python语句, 保留节目)

    5. 正则表达式

    6. Python画图

  10. Reference

一些练习题

  1. 给定FASTA格式的文件(test1.fa 和 test2.fa),写一个程序 cat.py 读入文件,并输出到屏幕 (2分)

  • open(file)

  • for .. in loop

  • print()

  • strip() function

  • 用到的知识点

给定FASTQ格式的文件(test1.fq), 写一个程序 cat.py 读入文件,并输出到屏幕 (2分)

  • 同上

  • 用到的知识点

写程序 splitName.py, 读入test2.fa, 并取原始序列名字第一个空格前的名字为处理后的序列名字,输出到屏幕 (2分)

  • split

  • 字符串的索引

  • 用到的知识点

  • 输出格式为:

    >NM_001011874
    gcggcggcgggcgagcgggcgctggagtaggagctg.......

写程序 formatFasta.py, 读入test2.fa,把每条FASTA序列连成一行然后输出 (2分)

  • join

  • strip

  • 用到的知识点

  • 输出格式为:

    >NM_001011874
    gcggcggcgggc......TCCGCTG......GCGTTCACC......CGGGGTCCGGAG

写程序 formatFasta-2.py, 读入test2.fa,把每条FASTA序列分割成80个字母一行的序列 (2分)

  • 字符串切片操作

  • range

  • 用到的知识点

  • 输出格式为

    >NM_001011874
    gcggcggcgc.(60个字母).TCCGCTGACG #(每行80个字母)
    acgtgctacg.(60个字母).GCGTTCACCC
    ACGTACGATG(最后一行可不足80个字母)

写程序 sortFasta.py, 读入test2.fa, 并取原始序列名字第一个空格前的名字为处理后的序列名字,排序后输出 (2分)

  • sort

  • dict

  • aDict[key] = []

  • aDict[key].append(value)

  • 用到的知识点

提取给定名字的序列 (2分)

  • 用到的知识点

  • print >>fh, or fh.write()

  • 取模运算,4 % 2 == 0

  • 写程序 grepFasta.py, 提取fasta.name中名字对应的test2.fa的序列,并输出到屏幕。

  • 写程序 grepFastq.py, 提取fastq.name中名字对应的test1.fq的序列,并输出到文件。

写程序 screenResult.py, 筛选test.expr中foldChange大于2的基因并且padj小于0.05的基,可以输出整行或只输出基因名字。(4分)

  • 逻辑与操作符 and

  • 文件中读取的内容都为字符串,需要用int转换为整数,float转换为浮点数

  • 用到的知识点

写程序 transferMultipleColumToMatrix.py 将文件(multipleColExpr.txt)中基因在多个组织中的表达数据转换为矩阵形式,并绘制热图。(6分)

  • aDict[‘key’] = {}

  • aDict[‘key’][‘key2’] = value

  • if key not in aDict

  • aDict = {‘ENSG00000000003’: {“A-431”: 21.3, “A-549”, 32.5,…},”ENSG00000000003”:{},}

  • 用到的知识点

  • 输入格式(只需要前3列就可以)

    Gene    Sample  Value   Unit    Abundance
    ENSG00000000003 A-431   21.3    FPKM    Medium
    ENSG00000000003 A-549   32.5    FPKM    Medium
    ENSG00000000003 AN3-CA  38.2    FPKM    Medium
    ENSG00000000003 BEWO    31.4    FPKM    Medium
    ENSG00000000003 CACO-2  63.9    FPKM    High
    ENSG00000000005 A-431   0.0     FPKM    Not detected
    ENSG00000000005 A-549   0.0     FPKM    Not detected
    ENSG00000000005 AN3-CA  0.0     FPKM    Not detected
    ENSG00000000005 BEWO    0.0     FPKM    Not detected
    ENSG00000000005 CACO-2  0.0     FPKM    Not detected
  • 输出格式

    Name    A-431    A-549    AN3-CA    BEWO    CACO-2
    ENSG00000000460    25.2    14.2    10.6    24.4    14.2
    ENSG00000000938    0.0    0.0    0.0    0.0    0.0
    ENSG00000001084    19.1    155.1    24.4    12.6    23.5
    ENSG00000000457    2.8    3.4    3.8    5.8    2.9

写程序 reverseComplementary.py计算序列 ACGTACGTACGTCACGTCAGCTAGAC的反向互补序列。(2分)

  • reverse

  • list(seq)

  • 用到的知识点

写程序 collapsemiRNAreads.py转换smRNA-Seq的测序数据。(5分)

  • 输入文件格式(mir.collapse, tab-分割的两列文件,第一列为序列,第二列为序列被测到的次数)

    ID_REF        VALUE
      ACTGCCCTAAGTGCTCCTTCTGGC        2
      ATAAGGTGCATCTAGTGCAGATA        25
      TGAGGTAGTAGTTTGTGCTGTTT        100
      TCCTACGAGTTGCATGGATTC        4
  • 输出文件格式 (mir.collapse.fa, 名字的前3个字母为样品的特异标示,中间的数字表示第几条序列,是序列名字的唯一标示,第三部分是x加每个reads被测到的次数。三部分用下划线连起来作为fasta序列的名字。)

    >ESB_1_x2
      ACTGCCCTAAGTGCTCCTTCTGGC
      >ESB_2_x25
      ATAAGGTGCATCTAGTGCAGATA
      >ESB_3_x100
      TGAGGTAGTAGTTTGTGCTGTTT
      >ESB_4_x4
      TCCTACGAGTTGCATGGATTC

简化的短序列匹配程序 (map.py) 把short.fa中的序列比对到ref.fa, 输出短序列匹配到ref.fa文件中哪些序列的哪些位置。(10分)

  • find

  • 用到的知识点

  • 输出格式 (输出格式为bed格式,第一列为匹配到的染色体,第二列和第三列为匹配到染色体序列的起始终止位置(位置标记以0为起始,代表第一个位置;终止位置不包含在内,第一个例子中所示序列的位置是(199,208](前闭后开,实际是chr1染色体第199-206的序列,0起始). 第4列为短序列自身的序列.)。

  • 附加要求:可以只匹配到给定的模板链,也可以考虑匹配到模板链的互补链。这时第5列可以为短序列的名字,第六列为链的信息,匹配到模板链为’+’,匹配到互补链为’-‘。注意匹配到互补链时起始位置也是从模板链的5’端算起的。

    chr1    199    208    TGGCGTTCA
    chr1    207    216    ACCCCGCTG
    chr2    63    70    AAATTGC
    chr3    0    7    AATAAAT

每日书籍推荐 - 流畅的Python

《流畅的Python》作者卢西亚诺·拉马略(Luciano Ramalho) 是Thoughtworks 首席咨询师、Python 软件基金会成员、巴西知名 Python 语言学习社区 Python Brasil 联合创始人。拥有 25 年 Python 编程经验,他的《流畅的Python》是编程领域经典作品,影响近 8 万读者,基于Python 3.10,内容详尽,精心设计的代码示例有近 500 段!还有大量的图和表,简直对学习真的太友好了!。

具体看ChatGPT的评价:

abc1f56df61f4d22c002960355984785.png

306c0009d9af0669d7d26d76860d93f8.png

2e784d5a5fd1f2f55782e8ca28250a90.png

往期精品(点击图片直达文字对应教程)

18fee9652def51be230cbce7fd3dde1a.jpeg

3a256cea65b23b74a12146e41360e229.jpeg

dfa6ece49c72b9d4101cf31af8439c61.jpeg

31af6ea6fdcdc5a253135f0a309a5c17.jpeg

26f3eeff0c67d5e305d348c9e0559c80.jpeg

197338e0d0cf54062cd912dd2bc00d55.jpeg

9b85c3a7dfb4c6dc0407cbb5111e395a.jpeg

563f490d4efee6bdcd4f8b8250ec34ad.jpeg

e74b01c0714eec14aa92e931afd55147.jpeg

750366d28148538b8e0b1b953c2d9f4a.jpeg

0c9b97f6c03da8a4ca5bc66a7398d80f.jpeg

f72df484b63f1082e768f47dcb4de1c2.jpeg

76e2a0d4e4d6b6de0a6550022278a200.png

8be109972b665fb2377e0904c860765e.png

3f6bae7b80ad7d62185e2f9618b72d0c.png

bbf00d42340b05566e38daadbec06564.png

060e1f7a6acd09c046e95a8830adecad.jpeg

915be0bb5054c94b19fe9fd831061b38.jpeg

7991685bef204cade770605a18b8154d.jpeg

be1d45959da28242b7e2e7c552282df7.jpeg

91ff4cacf60dbb62d20d845cfc1199bc.png

6931b3bd4b29468676da20715040c474.png

a043c3c4bf74598a7e67f63553c78423.jpeg

64018cb912234ed96b76493d682f187a.png

26f7342820f59c049da1ae4b23ab1e74.png

9628c0f4a814de7623a081e88b92a882.jpeg

4bdf50ab2a228fe51dd279fefab84594.png

34cac1c04739ed83b7077209b9f08d10.png

机器学习

后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集

a40635ef1e19f6b1d2292e804d57c957.jpeg

047fb2ab5264e5dbcd895f61bc81736b.jpeg

07038850cf7d9ab22dfd939f895e7ac6.png

更多推荐

OpenCV中的HoughLines函数和HoughLinesP函数到底有什么区别?

一、简述基于OpenCV进行直线检测可以使用HoughLines和HoughLinesP函数完成的。这两个函数之间的唯一区别在于,第一个函数使用标准霍夫变换,第二个函数使用概率霍夫变换(因此名称为P)。概率版本之所以如此,是因为它仅分析点的子集并估计这些点都属于同一条线的概率。此实现是标准霍夫变换的优化版本,在这种情况

Go语言实践案例之简单字典

一、程序要实现效果:在命令行调用程序的时候,可以在命令行的后面查询一个单词,然后会输出单词的音标和注释。二、思路分析:定义一个结构体DictRequest,用于表示翻译请求的数据结构。其中包含了TransType(翻译类型)、Source(源语言单词)、UserID(用户ID)等字段。定义一个结构体DictRespon

GO编程实践:如何高效使用变量

GO语言是一种强类型、静态编译的编程语言,它具有简洁的语法和强大的并发支持。在GO语言中,变量的定义和使用是非常重要的基本概念之一。下面是关于如何在GO语言中定义变量的详细说明,使用Markdown格式呈现:GO语言变量定义在GO语言中,变量的定义涉及到两个关键步骤:声明和初始化。首先,我们需要声明变量的类型,然后可以

MyBatis核心配置文件解析: 一步步深入理解mybatis-config.xml

😀前言在进行MyBatis项目开发时,合理和高效的配置是确保项目顺利进行的基础。其中,mybatis-config.xml配置文件扮演着极其重要的角色,它包含了MyBatis运行时的各种必要配置信息,如数据库连接属性、事务管理器配置、别名配置等。.提供了一份详细的mybatis-config.xml配置文件解析,一步

Go语言开发环境搭建指南:快速上手构建高效的Go开发环境

Go官网:https://go.dev/dl/Go语言中文网:https://studygolang.com/dl下载Go的语言包进入官方网站Go官网或Go语言中文网:选择下载对应操作系统的安装包:等待下载完成:安装Go的语言包双击运行上一步下载好的Go语言包,点击【Next】:勾选【Iacceptthetermsin

深入了解接口测试:方法、工具和关键考虑因素(一)

接口测试是软件测试中的一项重要工作,它涉及到系统与系统之间的交互点。接口可以是外部接口,也可以是内部接口,包括上层服务与下层服务接口以及同级接口。在接口测试中,我们需要确保接口能够按照预期的方式进行通信和交互,并且能够正确处理输入和输出数据。什么是接口?接口是具有特定输入和输出的一套逻辑处理单元,它不需要了解内部的实现

蓝牙核心规范(V5.4)10.7-BLE 入门笔记之L2CAP

1.概述ATT属性用于两个设备,一个扮演客户端的角色,另一个扮演服务器的角色。服务器公开一系列称为属性的复合数据项。这些属性由服务器按索引列表组织在称为属性表的列表中。每个属性包含一个句柄、一个通用唯一标识符(UUID)、一个值和一组权限。句柄是一个唯一的索引值,ATT客户端可以使用该值来引用属性表中的特定条目。UUI

四川百幕晟科技:提升店铺质量方法是什么?

抖店是抖音旗下的移动电子商务平台,为商家提供在线销售和促销的机会。在抖店,经验值是商家评价和信誉的重要指标之一。反映了平台上商户的服务质量和用户满意度。那么,如何查看自己在抖店手机上的体验分数呢?1、如何查看抖店手机的体验分?1、打开抖音APP:首先,商户需要打开抖音手机APP,登录抖音账号。2.进入“我的”页面:在抖

李开复:我家的AI是坠吼的

创新工场董事长、鸿海独立董事李开复,近日出席鸿海股东会暨媒体记者会时表示,人工智能(AI)是人类史上即将面临的最伟大技术革命,未来十年的改变将改写人类历史、重构所有产业,其发展大致可分三阶段,并看好鸿海在当中软硬件整合方面的优势,非常有机会成为AI相关领域顶尖领导者。李开复所提到的AI发展三阶段,第一波是纯软件将大数据

SpringMVC之JSON返回&异常处理机制

目录一.JSON1.1.介绍1.2.SpringMVC之JSON数据返回1.2.1.导入依赖1.2.2.配置spring-mvc.xml1.2.3.@ResponseBody注解使用1.2.4.常用注解二.统一异常处理2.1.为什么要全局异常处理2.2.异常处理思路2.2.异常处理方式一2.3.异常处理方式二2.4.异

驱动开发--汇总

一,【驱动相关概念】1,什么是驱动能够驱使硬件实现特定功能的软件代码根据驱动程序是否依赖于系统内核将驱动分为裸机驱动和系统驱动2,逻辑驱动和系统驱动的区别裸机驱动:编写的驱动代码中没有进行任何内核相关API的调用,开发者自己配置寄存器完成了相关硬件控制的代码编写。裸机驱动不依赖于系统内核,由开发者独立即可完成,但是裸机

热文推荐