为生信写的Python简明教程 | 视频7

news2024/11/25 6:30:25

开源生信 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的评价:

74f22e62ef46a64a391b8dcfb2b33191.png

7c8d258b7ef25c89aea8980dd72124bd.png

884e234c3aa48fcf829c2f92b8506497.png

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

fdeab20a3830b796542cdbf184cae09a.jpeg

aaf4cba34a158e51443b30c3836b33ef.jpeg

8e4f0054727c665b0902993bdd5c20b0.jpeg

0ceebe1dfd4f4c0861f2886dc58a5511.jpeg

2f51b504f4a42984eab1241543853ab1.jpeg

841bee10dfc999c58bca057c8ca53807.jpeg

dfb11943c278ccdc1b6e94801ae01ae9.jpeg

8fe42e379cb3a745e16429ed479f852b.jpeg

21ec1d5b4684f8174aa1e5d2350b14c4.jpeg

f7726a859eb321068b0bdd0c2387a745.jpeg

a7b50898014ef65ea7220f7f3e94d6e2.jpeg

0b335f910c786ffe4ef5af2bf30948ae.jpeg

3f40140d9cf36392e4e5614e667b83f2.png

64c9743a6cccec21701cd27e6689cb4a.png

2612aed85b6821dd488c85f638235f68.png

5ed184b0781999a89eb37ba9ff8a61a2.png

d07946bb763997ccf7fdd8bc09936372.jpeg

11e99b0bcbd1efb2c43495e4db35f90b.jpeg

c7847745db0e91ac3753a73290d88c1d.jpeg

57597f98b848391fee30d7f7f2286017.jpeg

bf309f83e3beb0e1636e47c424e53ecf.png

3acf7d714e7d0eb9049b4152c0a20439.png

a133384cebe352daa899ef13ef248635.jpeg

64b28f0dab5a9bff816bda50e96704ac.png

c32d154b9619280fbba4d6297da9f9f3.png

b67f1b8d0b7cce06283ef72c6808c14e.jpeg

4ec555d4192e9cbf340adb73c11b7e5f.png

87fef7bcb73017dc2a906f8dc71e976d.png

机器学习

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

5489ebafb975ef082a9470521bc17a4b.jpeg

25da7f5d6eb83afe829cef62e60c43f3.jpeg

67ddc33ee3dcc276ff5abb7828f348a3.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719093.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BurpSutie拓展插件推荐-辅助测试插件

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 chunked-coding-converter-0.4.0(1)工具介绍(2)下载地址(3)使用说明 02 captcha-killer(1)工具介绍&a…

HOT43-验证二叉搜索树

leetcode原题链接:验证二叉搜索树 题目描述 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右…

tty(三)uart框架分析

基于linux-3.14.16 重点文件:serial_core.c 一、基本数据结构和接口 这里显然是导出符号给需要用到uart核心的代码使用的,我们从uart_register_driver和uart_add_one_port来分析,搞清楚uart和tty核心的关系。 二、uart_register_driver 首…

服务案例|消失的Linux定时清除任务

企业数字化转型,应用软件不断升级,对运行环境的要求也越来越高,CPU、内存等硬件也同步进入升级。当业务运行或备份时,将产生大量历史文件和临时文件,这就是在运维检测中,我们常看到文件每天几个G&#xff0…

软中断通信及signal()解读

目录 软中断通信 signal() 概述 signal()类似的函数 signal()之SIGINT signal()之SIGTERM signal()之SIGALRM signal()之SIGQUIT SIG_IGN使用 软中断通信 进程间通信方式有多种,其中软中断通信是一种常见的方式,它基于信号机制,可…

【mysql】索引存储结构B+树

参考: https://zhuanlan.zhihu.com/p/545113372 https://www.bilibili.com/read/cv18157852 Mysql数据库引擎默认使用InnoDB,使用B树数据结构。 一个表只能有一个聚簇索引,但可以有多个非聚簇索引,也就是多个索引目录提供数据检索…

coord软件的一些操作

文章目录 1. 大地坐标(B,L)转换为平面坐标(X,Y)操作流程示例 2. 大地坐标系下的平面坐标转换(X,Y)为大地坐标(B,L)操作示例 3. 6带坐标…

docker专题系列之十六:安装mycat

由于docker镜像仓库中mycat镜像比较少或相对比较旧,因此一般使用手动制作镜像方式安装部署。下文,良哥通过实验,分别介绍两种方式下如何安装部署mycat。 一、手动制作镜像方式 1.创建镜像 #创建工作目录 mkdir /usr/rdc mkdir /usr/rdc/my…

GOLANG进阶:Viper,Mysql,Swagger,Log

GOLANG从浅入深必须学习的一些工具包 1.Viper: Viper 是一个完整的 Go 应用程序配置解决方案,优势就在于开发项目中你不必去操心配置文件的格式而是让你腾出手来专注于项目的开发。其特性如下: 支持 JSON/TOML/YAML/HCL/envfile/Java proper…

【Java-数据结构】指定ArrayList 数组的大小有利于数据扩容和缩短耗时

关键 “因为扩容操作涉及内存申请和数据搬移&#xff0c;是比较耗时的。所以&#xff0c;如果事先能确定需要存储的数据大小&#xff0c;最好在创建 ArrayList 的时候事先指定数据大小。” 如下代码所示&#xff1a; ArrayList<User> users new ArrayList(10000); fo…

LogicFlow 在HTML中的引入与使用

LogicFlow 在HTML中的引入与使用 LogicFlow的引入与使用&#xff0c;相较于BPMNJS相对容易一些&#xff0c;更加灵活一些&#xff0c;但是扩展代码可能写得更多一些。 示例展示 示例代码 github: https://github.com/iotzzh/origin-examples/blob/main/%E6%B5%81%E7%A8%8B%E5%9…

SpringBoot2+Vue2实战(十)权限管理

一、父子菜单实现 新建数据库表 sys_menu sys_role 实体类 Role import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName;import java.io.Serializable;import l…

分析入手新项目后前后端的接口调用位置以及sql情况

文章目录 查看前端查看后端sql分析数据库分析作者的话 查看前端 比如我们的userList的一个功能&#xff0c;我们刷新页面后会发现当前页面有很多请求&#xff0c;我们根据请求header和param来分析&#xff0c;当前的“用户列表”接口是哪个请求&#xff0c; 我们填入一个参数…

C++ PCL三维点云物体目标识别

程序示例精选 C PCL三维点云物体目标识别 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<C PCL三维点云物体目标识别>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff…

web学习--maven--项目管理工具

写在前面&#xff1a; 这学期搞主攻算法去了&#xff0c;web的知识都快忘了。开始复习学习了。 文章目录 maven介绍功能介绍maven安装jar包搜索仓库 pom文件项目介绍父工程依赖管理属性控制可选依赖构建 依赖管理依赖的传递排除依赖可选依赖 maven生命周期分模块开发模块聚合…

《安全软件开发框架(SSDF) 1.1:降低软件漏洞风险的建议》解读(三)

安全软件开发框架SSDF是由美国国家标准与技术研究院发布的关于安全软件开发的一组实践&#xff0c;帮助开发组织减少发布的软件中的漏洞数量&#xff0c;减少利用未检测到或未解决的漏洞的潜在影响&#xff0c;从根本上解决漏洞防止再次发生。本文根据《Secure Software Develo…

【Nginx05】Nginx学习:HTTP核心模块(二)Server

Nginx学习&#xff1a;HTTP核心模块&#xff08;二&#xff09;Server 第一个重要的子模块就是这个 Server 相关的模块。Server 代表服务的意思&#xff0c;其实就是这个 Nginx 的 HTTP 服务端所能提供的服务。或者更直白点说&#xff0c;就是虚拟主机的配置。通过 Server &…

SpringBoot操作Excel实现导入和导出功能(详细讲解+Gitee源码)

前言&#xff1a;在日常的开发中&#xff0c;避免不了操作Excel&#xff0c;比如从系统当中导出一个报表&#xff0c;或者通过解析客户上传的Excel文件进行批量解析数据入库等等&#xff0c;本篇博客主要汇总日常开发中如何使用开源的Apache提供的POI流操作Excel进行导入导出功…

el-dialog 层级问题混乱

使用 element -UI 的弹窗时&#xff0c;一般来说弹窗的层级应该比较高&#xff0c;背景置灰。 下边这个弹窗是正常情况下的&#xff1a; 有时候出现这样的情况&#xff1a; 解决问题&#xff1a; 只需要 在标签里边添加 append-to-body 属性问题就解决了。

WPF TextBox 添加范围验证

WPF TextBox 添加范围验证 添加范围验证&#xff0c;若出现范围错误添加信息捕捉 使用到技术&#xff1a;使用ValidationRules实现范围验证&#xff0c;当范围出现错误时&#xff0c;可以通过触发器Validation.HasErrorTrue设置自定义错误样式。 使用Behavior技术捕捉所有验证…