根据sam文件计算reads的GC含量

宏基因组分析|分箱Binning+筛选高质量MAG方法 宏基因组分箱(Binning)核心流程指南 分箱是将混合的contigs按来源微生物归类为基因组箱(Bin)的关键步骤,可还原准基因组、识别低丰度物种。本教程采用Bowtie2+MetaBAT2+CheckM组合: 流程三步走 丰度计算:用Bowtie2比对reads生成contig深度文件 聚类分箱:MetaBAT2基于GC含量、序列长度和丰度特征聚类 质量评估:CheckM筛选完整性≥90%、污染率≤5%的高质量Bin 实操要点 预处理需重命名contig文件避免冲突 必须执行BAM排序才能正确计算深度 阅读详情

根据sam文件计算reads的GC含量

禁转

输入文件

DNA序列的sam文件
第一列,序列名;第十列,序列;分割 tab

目标

计算每个read的GC含量(只考虑DNA序列由ATGC组成的情况),并输出结果到文件

输出文件

第一列read id,第二列read的序列,第三列GC含量

代码

def cal_gc(seq):
	"""
	计算GC含量
	"""
	seq = seq.upper() #全部转换为大写
	return round((seq.count('C') + seq.count('G')) / float(len(seq)),2)
	#round 用于保留两位小数,float将序列长度转换为浮点型

infile = 'data/alignment.sam'
outfile = 'output/gc.txt'

in_handle = open(infile)  #open(文件路径,打开方式默认为r)
out_handle = open(outfile, 'w')

out_handle.write('read_id\tseq\tgc\n') #表头

cnt = 0
for line in in_handle:
	if cnt != 0: #用于有列名时去掉第一行列名
		row = line.split('\t') #返回列表
		read_id = row[0]
		seq = row[9]
		gc = cal_gc(seq)
		#print([read_id, seq, gc]) #检查
		out_handle.write('%s\t%s\t%s\n' % (read_id,seq,gc))   # %s占位符
	cnt += 1

in_handle.close()
out_handle.close()

如果担心中间过程出错

使用try

def cal_gc(seq):
	"""
	计算GC含量
	"""
	seq = seq.upper() #全部转换为大写
	return round((seq.count('C') + seq.count('G')) / float(len(seq)),2)
	#round 用于保留两位小数,float将序列长度转换为浮点型

infile = 'data/alignment.sam'
outfile = 'output/gc.txt'

in_handle = None
out_handle = None
try:
	in_handle = open(infile)  #open(文件路径,打开方式默认为r)
	out_handle = open(outfile, 'w')

	out_handle.write('read_id\tseq\tgc\n') #表头

	cnt = 0
	for line in in_handle:
		if cnt != 0: #用于有列名时去掉第一行列名
			row = line.split('\t') #返回列表
			read_id = row[0]
			seq = row[9]
			gc = cal_gc(seq)
			#print([read_id, seq, gc]) #检查
			out_handle.write('%s\t%s\t%s\n' % (read_id,seq,gc))   # %s占位符
		cnt += 1

finally:
	in_handle.close()
	out_handle.close()
	#不论try中是否有异常,finally中的内容都会执行

使用上下文管理器

def cal_gc(seq):
	"""
	计算GC含量
	"""
	seq = seq.upper() #全部转换为大写
	return round((seq.count('C') + seq.count('G')) / float(len(seq)),2)
	#round 用于保留两位小数,float将序列长度转换为浮点型

infile = 'data/alignment.sam'
outfile = 'output/gc.txt'

with open(infile) as in_handle, open(outfile,'w') as out_handle:
	out_handle.write('read_id\tseq\tgc\n') #表头

	cnt = 0
	for line in in_handle:
		if cnt != 0: #用于有列名时去掉第一行列名
			row = line.split('\t') #返回列表
			read_id = row[0]
			seq = row[9]
			gc = cal_gc(seq)
			#print([read_id, seq, gc]) #检查
			out_handle.write('%s\t%s\t%s\n' % (read_id,seq,gc))   # %s占位符
		cnt += 1
	
Trinity 一条龙策略 1. Trinity进行转录组组装 Trinity进行转录组组装的典型命令如下: $ /opt/biosoft/trinityrnaseq_r20131110/Trinity.pl --seqType fq --JM 50G\ --left sample1_1.clean.fastq sample2_1.clean.fastq\ --right sample1_2.cle... 阅读详情

相关推荐

SAM语义分割模型开源,AIGC时代,图像抠图工具都被大模型统一了?(下)

在之前的两节中我们介绍了分割一切的 Segment Anything模型,以及分割视频的 Segment-and-Track Anything模型。那么就是今天的项目,随着5G技术等的不断普及,我们对运算速度也有不低的要求,因此今天的项目就是对模型进行了压缩与轻量化处理。到SAM分割并追踪的模型用于视频图像分割,再到现在的MobileSAM部署于CPU端以及移动端的分割一切模型,只能说大模型真的是杀疯了!以上关于MobileSAM模型的介绍就结束了,回想起来,最开始的SAM原始图像分割一切模型。

千与编程 1432

统计碱基数目、GC含量、read数、最长的read、最短的read及平均read长度

# 用于fasta格式文件的碱基数目和GC含量的统计 grep -v '>' input.fa| perl -ne '{$count_A=$count_A+($_=~tr/A//);$count_T=$count_T+($_=~tr/T//);$count_G=$count_G+($_=~tr/G//);$count_C=$count_C+($_=~tr/C//);$count...

aosi1971的博客 2498

Perl练习02之计算sam文件中每个染色体比对上的reads数,GC碱基数,GC比例

计算sam文件每个染色体匹配reads数,GC碱基数,GC含量 gccount_reads.pl #!/usr/bin/perl use strict; use warnings; my (%hash,%GC,%ATGC); open IN,"<",$ARGV[0]; while(<IN>){ chomp; next if /^@/;#...

qq_21478261的博客 1630

统计bed文件下的reads数目和GC含量

最近发现,需要对bed(chr start end)文件进行处理,当你不知道有什么其他软件可以用的时候,不妨用bedtools来试试,看看它的各种用法,估计能满足。看名字,就大概知道干什么用了。 bedtools工具可用于广泛的基因组学分析任务,即基因组上的集合论。例如,bedtools允许人们在广泛使用的基因组文件格式(例如BAM,BED,GFF / GTF,VCF)中交叉,合并,计数,补...

Cassiel60的博客 5814

Perl练习03计算落在每个kmer区间中reads数目,GC碱基数目,GC比

解决问题:计算每个1M bin区间中的reads数目,GC碱基数目,GC比 输入文件1 file1,kemr区间文件,按照1M每个bin区间 chr1 7000001 chr1 8000001 chr1 9000001 chr1 10000001 chr1 11000001 chr1 12000001 chr1 14000001 chr1 15000001 chr1 1600...

qq_21478261的博客 562

医疗AI时代的生物医学Go编程:高性能计算与精准医疗的案例分析(二)

本文介绍了基于Go语言的高并发基因组变异检测流水线GoVarPipe的设计与实现。针对传统变异检测流水线存在的性能瓶颈、工程化薄弱和可扩展性差等问题,GoVarPipe采用模块化架构,通过任务调度器和工作池实现高效并发处理。系统支持样本级、步骤级和数据块级并行,优化I/O开销,并提供完善的错误处理、资源监控和容错恢复机制。主要创新点包括基于生产者-消费者模型的任务调度、工作窃取算法以及清晰的模块化设计,使得系统在保持高性能的同时,具备良好的可靠性和可维护性。该流水线可显著提升基因组变异检测效率,为精准医学研

AllenLV的博客 1117

EL表达式

u013771087的专栏 355

HTSeq 0.5.4p1源码包:含htseq-count、质控脚本与GTF解析功能的Python生物信息工具

这个HTSeq源码包提供一套专用于高通量测序数据分析的Python工具,主要支持从SAM/BAM比对结果中精准统计reads数量(htseq-count),快速评估测序质量(htseq-qa),并兼容GTF/GFF格式的基因组注释文件进行特征级计数。代码包含C语言扩展模块(如_HTSeq.c、StepVector.i)以提升运行效率,配套完整的构建流程(setup.py、Makefile、make_it、build_it)和清理脚本(clean),适用于Linux/Unix系统本地编译安装。资源包内附多个质

u8v9w0x1y的博客 211

rosalind练习题

1、统计各碱基的数量, 计算整条序列长度 seq = '' with open('./1.txt', "r") as f: for line in f: if line[0] != ">": #print(line) line = line.strip().upper() ...

qq_38790244的博客 1626

Kaggle大神Abhishek的机器学习框架实战:从红酒数据集看交叉检验的坑与解法

本文通过Kaggle竞赛Grandmaster Abhishek Thakur的实战经验,以红酒数据集为例,深入探讨了机器学习中交叉检验的五大陷阱与优化策略。文章详细解析了决策树max_depth调优过程中的过拟合现象,对比了五种主流交叉检验方法的适用场景,并提供了回归问题中的分层技巧和特征工程陷阱的解决方案。最后,总结了交叉检验方案选型决策树,帮助数据科学家在实际项目中提升模型泛化能力。

h6j7k8l9p0的博客 963

FMEA-MSR步骤三:功能分析

目的 FMEA-MSR功能分析的主要目标: ● 功能及各功能之间的关系的可视化 ● 功能树/网络或等效功能矩阵参数图(P图) ● 顾客(外部和内部)功能与相关要求的关联 ● 要求或特性与功能的关联 ● 工程团队(系统、安全和组件)之间的协作 ● 失效分析步骤的基础 (点击链接进入官网领取软件试用) 在监视及系统响应的补充FMEA中,对失效探测和失效响应的监视视为其具有的功能。硬件和软件功能可能包括监视控制状态的功能。 故障/失效的监视和探测功能可能包括超出范围的探测、循环冗余校验、真实性检查和序列计数器检查

Infomass的博客 2390

生信软件13 - 基于sambamba 窗口reads计数和平均覆盖度统计

Sambamba是一个高性能,高度并行,健壮和快速的工具(和库),用D编程语言编写,用于处理SAM和BAM文件。与samtools相比,其优势在于并行BAM读和写。

LittleComputerRobot的博客 1215

Fritzing0.9.10下载安装和简单使用

Fritzing 作为一款电子设计自动化软件,其画图用于导入到论文和文档,清晰好看,能解决用相机拍实物照片杜邦线很乱的痛点。

李同学Lino的博客 3万+

不用R包分析NIPT

比如从NCBI上面下载的优讯医学上传数据,发现用R包用不了时,可以这么做: 1.进行比对 # bwa mem 目前用的比较多 bwa mem -t 16 -M -Y hg19.fa SRR6040607.fastq.gz | samtools view -bSh -t 16 -f bam > SRR6040607.bam #或者用: bwa aln -n 0 -e 0 -k 0 ...

Cassiel60的博客 1489

MicroLogix1400编程(使用RSLogix 500 + RSLinx Classic Lite)

MicroLogix1400编程

noscallion的博客 1万+

【模型解读】【代码复现】Segment Anything Model(SAM)

Meta AI的一个新的人工智能模型,只需一次点击就能 "分割出 "任何图像中的任何物体! SAM是一个可提示的分割系统,对不熟悉的物体和图像具有zero-shot的概括性,并且不需要额外的训练。

lalula的博客 2万+

Trinity进行转录组分析的一条龙服务

1. Trinity进行转录组组装 Trinity进行转录组组装的典型命令如下: $ /opt/biosoft/trinityrnaseq_r20131110/Trinity.pl --seqType fq --JM 50G\ --left sample1_1.clean.fastq sample2_1.clean.fastq\ --right sample1_2.clean.fast

wangyiqi806643897的专栏 5680

【数据分析】基于多组学数据整合的微生物与宿主互作网络构建及可视化分析

综上所述,本教程通过详细的步骤和方法,展示了如何整合微生物群落数据、宿主基因表达数据和代谢组数据,构建微生物与宿主互作网络,并进行可视化分析。这种方法为研究微生物与宿主之间的复杂关系提供了一种有力的工具,有助于推动相关疾病的研究和治疗。然而,在实际应用中,需要注意数据处理和分析过程中的各种问题,并结合实验验证来提高研究结果的可靠性和科学性。未来,随着多组学技术的不断发展和完善,以及数据分析方法的创新,相信我们能够更深入地理解微生物与宿主之间的互作机制,为疾病的预防、诊断和治疗提供更有力的支持。

专注生信领域 370

生物信息学分析领域领先的特制语言环境NGLess(Next Generation Less)介绍、安装配置和详细使用方法

准备数据:获取并准备用于分析的原始测序数据。质量控制和过滤:对原始数据进行质量控制、去除低质量序列和去除宿主DNA等。人类肠道宏基因组分类:对数据进行分类,识别宿主肠道微生物。功能注释:对宏基因组数据进行功能注释,识别和分析肠道微生物的功能特征。

2401_86401604的博客 618

彻底解决JDK安装包点击后无反应

jdk双击无法安装,jdk双击没反应,jdk安装包双击后没反应。

renkai721的专栏 8939

【经验&技巧】DDR仿真中的挑战与解决方案

由于DDR的数据总线具备双向数据传输功能,需要对读写模式进行独立仿真环境的创建,并且分为连续和突发模式,再加之有单端和差分信号、有数据总线和地址总线,需要在数据传输过程中额外注意串扰的影响,并选择合适的驱动和负载以找寻设计裕量与串扰强度之间的平衡,因此,实际操作步骤和分析过程还是较为繁琐耗时的,需要设计者具有足够的耐心。

一只豌豆象的博客 1643

Trinity进行转录组分析

1. Trinity进行转录组组装 Trinity进行转录组组装的典型命令如下: $ /opt/biosoft/trinityrnaseq_r20131110/Trinity.pl --seqType fq --JM 50G\ --left sample1_1.clean.fastq sample2_1.clean.fastq\ -...

jz19901202的博客 6997

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Trinity进行转录组组装(2))

1. Trinity进行转录组组装 Trinity进行转录组组装的典型命令如下: $ /opt/biosoft/trinityrnaseq_r20131110/Trinity.pl --seqType fq --JM 50G\ --left sample1_1.clean.fastq sample2_1.clean.fastq\ --right sample1_2.clean.fast

悠悠的博客 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Hisat2 2.2.1 + featureCounts 2.0.3 实战:水稻转录组上游分析 3 步生成表达矩阵

本文详细介绍了使用Hisat2 2.2.1和featureCounts 2.0.3进行水稻转录组上游分析的完整流程,从FASTQ数据到表达矩阵的生成。涵盖环境准备、质量控制、序列比对和基因表达定量等关键步骤,帮助研究人员高效完成RNA-seq数据分析,特别适用于bulk转录组研究。

cnracht8153的博客 352

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

使用Bowtie2高效去除测序数据中宿主基因污染:原理、实战与参数调优

在二代测序数据分析中,序列比对是核心基础技术之一,它通过将测序读段(reads)与参考序列进行匹配,实现序列的鉴定、定位与分类。其底层原理主要基于Burrows-Wheeler Transform (BWT) 和 FM-index 等高效算法,在保证精度的前提下极大提升了海量数据的处理速度。这项技术的核心价值在于,能够从复杂的混合信号中精准分离目标序列,是后续进行物种鉴定、变异检测、功能注释等深度分析的基石。在宏基因组和转录组等特定应用场景中,样本常含有大量来自宿主(如人、小鼠)的背景序列,形成严重的宿主基

weixin_30908103的博客 337

生物序列分析_tooluniverse-sequence-analysis

以下为本文档的中文说明生物序列分析技能,提供基因和蛋白质序列的检索、比对和分析能力。该技能对接多个国际权威生物数据库:NCBI(美国国家生物技术信息中心)、Ensembl(基因组数据库)和UniProt(蛋白质数据库)。核心功能包括:核酸与蛋白质序列检索、核苷酸和蛋白质序列搜索与比对、直系同源物发现、以及FASTQ质控和比对工作流。在序列比对方面支持Trimmomatic(序列质控修剪)、BWA(Burrows-Wheeler比对工具)、samtools(SAM/BAM文件处理工具)和覆盖深度分析。

小青蛙电气 79
上一篇: Python数据类型和基本语句
下一篇: metaWRAP画图报错修正
ruby912
博客等级 码龄9年 83粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值