当前位置: 首页 > news >正文

生信分析Python实战练习 2 | 视频19

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

    >ESB_1_x2ACTGCCCTAAGTGCTCCTTCTGGC>ESB_2_x25ATAAGGTGCATCTAGTGCAGATA>ESB_3_x100TGAGGTAGTAGTTTGTGCTGTTT>ESB_4_x4TCCTACGAGTTGCATGGATTC

简化的短序列匹配程序 (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的评价:

6dbf6460e5c11a8e2efc88a89a8130ef.png

299c566d35c71a5ce7cacd8fed22aba2.png

bccb2f7a4c6aa485e1283b7785d46743.png

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

207b7aa9e41a913ba51b7cd9849253a0.jpeg

fb995a41721cc6a10c564dd5cc12ba73.jpeg

0fae9654e84f893ea7c42239422bf08c.jpeg

4a87ad953ebb55fc918fd96927e5afa6.jpeg

a9d7b8fe8fa1e5d64a446c1502c4ec47.jpeg

a52ee99bb078770f81a0b44875ec4b57.jpeg

82fe46bea2a6b9b6201d45e0c2cb3906.jpeg

f6501e43172240622ae4b1784720e14c.jpeg

4a915971364737763e6a2f044cd639f0.jpeg

11aa0c1008dc5bf4bb0cc045e4467e02.jpeg

743a910cf99297b01331bd34453fbe36.jpeg

60405a9da6cd0dc804020dbf9bde1020.jpeg

dd8b7f1536a27720c44d4a55d483b9f8.png

b0b3004702814be310c229b1667453d0.png

a673f29d61b4bb4234ea24022021ff43.png

de1532b294f27abfcae272b274a685d2.png

0a2f99c72bcf92b5e1bb48c58f42a497.jpeg

8548c798a1167fa315df3a4fc0eba944.jpeg

e094a5b7b56de07aad87ee70f7ad43ea.jpeg

63d46eb7e8b120a6c37b49899a218798.jpeg

d895233e7f5ee5963c9d527e5b5390c1.png

e45a426dd535321159926d226abeed49.png

92cb233aa644ad3e8e71028473158164.jpeg

eb686488c554d82036aa115fe77b8881.png

4a96e3e1ea2b241585b4ff25276c1caa.png

80e077aeee4b24b1a2c034b8f761988d.jpeg

06e65b5e8704bd0d882e02979203d8a0.png

27cdae260624cb4971d9d75f83a7e826.png

机器学习

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

5518001490fbd978b26989ee4fd249bb.jpeg

91cd7d1f83c312d91d84084a65c5ef41.jpeg

fd2909dfb3fd5939c876c39f842d7ecb.png

相关文章:

生信分析Python实战练习 2 | 视频19

开源生信 Python教程 生信专用简明 Python 文字和视频教程 源码在:https://github.com/Tong-Chen/Bioinfo_course_python 目录 背景介绍 编程开篇为什么学习Python如何安装Python如何运行Python命令和脚本使用什么编辑器写Python脚本Python程序事例Python基本语法 数…...

wps设置其中几页为横版

问题:写文档的时候,有些表格列数太多,页面纵向显示内容不完整,可以给它改成横向显示。 将鼠标放在表格上一页的底部,点击‘插入-分页-下一页分节符’。 将鼠标放在表格页面的底部,点击‘插入-分页-下一页分…...

如何在Ubuntu 22.04上安装PHP 8.1并设置本地开发环境

引言 PHP是一种流行的服务器脚本语言,用于创建动态和交互式web页面。开始使用你选择的语言是学习编程的第一步。 本教程将指导您在Ubuntu上安装PHP 8.1,并通过命令行设置本地编程环境。您还将安装依赖管理器Composer,并通过运行脚本来测试您…...

wazuh安装与使用

目录 一、wazuh安装 二、wazuh使用 一、wazuh安装 下载:https://wazuh.com 可以直接安装OVA这个,然后导入到Linux中就可以使用了。 导入完毕后开启,使用远程连接工具进行连接,出现以下画面则成功了。 之后可以看一下图形化界面…...

Vue 3 常见面试题汇总

前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 前言 最近两年许多大厂都在实行“降本增效”、“优化组织架构”,然后“为社会输送了大量人才”,今年(2023&#xff…...

Docker是什么?详谈它的框架、使用场景、优势

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、什么是 Docker? 二、Docker 的架构 1、Docker客户端 2、Docker守护进程 3、Docker镜像 4、Docker容器 5、Docker…...

neo4j

UNWIND 将列表里的值展开 CREATE (N0:Person {name: Anders}) CREATE (N1:Person {name: Becky}) CREATE (N2:Person {name: Cesar}) CREATE (N3:Person {name: Dilshad}) CREATE (N4:Person {name: George}) CREATE (N5:Person {name: Filipa})CREATE (N0)-[:KNOWS]->(N3)…...

【项目 计网5】 4.15 TCP通信实现(服务器端)4.16 TCP通信实现(客户端)

文章目录 4.15 TCP通信实现&#xff08;服务器端&#xff09;4.16 TCP通信实现&#xff08;客户端&#xff09; 4.15 TCP通信实现&#xff08;服务器端&#xff09; // TCP 通信的服务器端// TCP 通信的服务器端 #include <stdio.h> #include <arpa/inet.h> #incl…...

windows可视化界面管理服务器上的env文件

需求&#xff1a;在 Windows 环境中通过可视化界面编辑位于 Linux 主机上的 env 文件的情况&#xff0c;我现在环境是windows环境&#xff0c;我的env文件在linux的192.168.20.124上&#xff0c;用户是op&#xff0c;密码是op&#xff0c;文件绝对路径是/home/op/compose/env …...

自然语言处理在智能客服和聊天机器人中的应用

文章目录 1. 引言2. NLP基础2.1 词法分析2.2 语法分析2.3 语义理解2.4 情感分析 3. 智能客服中的应用3.1 自动问答3.2 意图识别3.3 情感分析与情绪识别 4. 聊天机器人中的应用4.1 对话生成4.2 上下文理解 5. 技术原理与挑战5.1 语言模型5.2 数据质量和多样性5.3 上下文理解 6. …...

为什么不建议使用@Async注解创建线程

1 前言 在很久很久之前&#xff0c;我有一段痛苦的记忆。那种被故障所驱使的感觉&#xff0c;在我脑海里久久无法驱散。 原因无它&#xff0c;有小伙伴开启了线程池的暴力使用模式。没错&#xff0c;就是下面这篇文章。 夺命故障 ! 炸出了投资人&#xff01; 我有必要简单的…...

更新Ubuntu18.04上的CUDA和GCC

问题&#xff1a; 有一台服务器的GPU是1080&#xff0c;有八张卡&#xff0c;已经好久没有人用了。cuda版本是10.1,我现在拿来复现一些论文的模型&#xff0c;经常遇到版本依赖问题&#xff0c;报错Driver is too old。所以要更新一下驱动。遇到的主要问题是gcc版本也太低了&am…...

算法通过村第6关【青铜】| 如何通过中序和后序遍历恢复二叉树

中序&#xff1a;3 4 8 6 7 5 2 1 10 9 11 15 13 14 12 后序&#xff1a;8 7 6 5 4 3 2 10 15 14 13 12 11 9 1 通过这两个遍历顺序恢复二叉树 首先我们知道中序遍历顺序左中右&#xff0c;后序遍历顺序左右中 第一步&#xff1a; 由后序遍历确定根结点为1 > 由中序遍历…...

高斯牛顿法和LM算法异同示例

LM&#xff08;Levenberg-Marquardt&#xff09;算法和高斯牛顿&#xff08;Gauss-Newton&#xff09;算法是两种用于非线性最小二乘问题的优化算法&#xff0c;它们也有一些相似之处&#xff1a; 迭代优化&#xff1a;LM算法和高斯牛顿算法都使用迭代的方式来优化参数值&#…...

奥威BI财务数据分析方案:只做老板想看的

奥威BI财务数据分析方案是一套从老板的视角出发&#xff0c;做老板想看的财务数据分析报表&#xff0c;帮助老板更好地了解公司的财务状况和经营绩效的综合性智能财务数据分析方案&#xff0c;可实现财务数据分析可视化、灵活自主性&#xff0c;随时为老板提供最为直观的财务数…...

opencv进阶19-基于opencv 决策树cv::ml::DTrees 实现demo示例

opencv 中创建决策树 cv::ml::DTrees类表示单个决策树或决策树集合&#xff0c;它是RTrees和 Boost的基类。 CART是二叉树&#xff0c;可用于分类或回归。对于分类&#xff0c;每个叶子节点都 标有类标签&#xff0c;多个叶子节点可能具有相同的标签。对于回归&#xff0c;每…...

Unity通过TCP/IP协议进行通信

uinty项目中需要与C编写的硬件进行通信&#xff0c;因此采用TCP/IP协议进行通信&#xff0c;主要实现了与服务器的连接、通信内容的发送以及断开连接等功能。 根据确定好的协议格式&#xff0c;编写需要发送的内容&#xff0c;将其转为字节流&#xff08;byte[]&#xff09;通过…...

基于VuePress搭建知识库

我这边需要搭建一个运维知识库&#xff0c;将项目的方方面面记录下来&#xff0c;方便新手接手运维。 准备环境 Nginx 1.19.0VuePress 1.xMinio RELEASE.2022-02-16T00-35-27Zvuepress-theme-vdoing主题 安装VuePress 根据官网步骤即可 # 创建目录 mkdir vuepress-starter…...

odoo安装启动遇到的问题

问题&#xff1a;在第一次加载odoo配置文件的时候&#xff0c;启动失败 方法&#xff1a; 1、先检查odoo.conf的内容&#xff0c;尤其是路径 [options] ; This is the password that allows database operations: ; admin_passwd admin db_host 127.0.0.1 db_port 5432 d…...

【Flink】Flink提交流程

我们通常在学习的时候需要掌握大数据组件的原理以便更好的掌握这个大数据组件&#xff0c;Flink实际生产开发过程中最常见的就是提交到yarn上进行调度&#xff0c;模式使用的Per-Job模式&#xff0c;下面我们就给大家讲下Flink提交Per-Job任务到yarn上的流程&#xff0c;流程图…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改&#xff0c;实现简单cat命令 输出信息到显示器&#xff0c;你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践

前言&#xff1a;本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中&#xff0c;跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南&#xff0c;你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案&#xff0c;并结合内网…...

OCR MLLM Evaluation

为什么需要评测体系&#xff1f;——背景与矛盾 ​​ 能干的事&#xff1a;​​ 看清楚发票、身份证上的字&#xff08;准确率>90%&#xff09;&#xff0c;速度飞快&#xff08;眨眼间完成&#xff09;。​​干不了的事&#xff1a;​​ 碰到复杂表格&#xff08;合并单元…...