将fasta格式参考基因组的每一条染色体都划分成一个一个等长的区间(bin)

简介: 将fasta格式参考基因组的每一条染色体都划分成一个一个等长的区间(bin)
#!/usr/bin/env python
# coding=utf-8
import argparse
def get_parser():
    '''
    Using argpaser to parse the input parameters
    '''
    parser = argparse.ArgumentParser(description='Scattering genome sequence to bins with assigned length')
    parser.add_argument('-i', '--input', type=str, nargs=1,help='input the reference genome file with fasta format')
    parser.add_argument('-b', '--binsize', type=int, nargs=1, help='bin size')
    return parser
def binGenome(fasta, binsize):
    '''Bining the reference to segments head to end with equal length'''
    sequence = {}
    with open(fasta) as fa:
        for line in fa:
            if line.startswith(">"):
                ac = line.strip().split(">")[1]
                seq = ""
            else:
                seq += line.strip()
            sequence[ac] = seq
    for ac, seq in sequence.items():
        seqlen = len(seq)  
        for bin in range(0, seqlen, binsize):
            start, end = bin, bin + binsize
            if bin+binsize > seqlen:
                end = seqlen
            print(">%s_%d-%d"%(ac,start,end))
            print(seq[start:end])
相关文章
|
网络协议 算法 定位技术
利用GPS北斗卫星系统开发NTP网络时间服务器
利用GPS北斗卫星系统开发NTP网络时间服务器
|
测试技术 UED
对百度搜索页面设计的测试用例设计
对百度搜索页面设计的测试用例设计
589 0
|
存储 JavaScript API
vue3+ant design vue 自定义文件上传和自定义上传进度条
1.关键点是Upload组件中customRequest的API,它能通过覆盖默认的上传行为,可以自定义自己的上传实现(具体可看官方文档); 2.通过在Upload组件中绑定progress实现。 下面是详细代码
3578 0
|
8月前
|
编解码 数据可视化 Java
三维基因组: TAD差异分析-HiCCUPS (2)
三维基因组: TAD差异分析-HiCCUPS (2)
618 17
三维基因组: TAD差异分析-HiCCUPS (2)
|
7月前
|
数据采集 人工智能 编解码
2025年颠覆闭源大模型?MonkeyOCR:这款开源AI文档解析模型,精度更高,速度更快!
还在依赖昂贵且慢的闭源OCR工具?华中科技大学开源的MonkeyOCR文档解析模型,以其超越GPT4o的精度和更快的推理速度,在单机单卡(3090)上即可部署,正颠覆业界认知。本文将深入解析其设计哲学、核心突破——大规模自建数据集,并分享实测体验与避坑指南。
2056 87
|
5月前
|
安全 IDE Java
SonarQube Server 2025 Release 4 新增功能简介 - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 4 新增功能简介 - 代码质量、安全与静态分析工具
282 0
SonarQube Server 2025 Release 4 新增功能简介 - 代码质量、安全与静态分析工具
|
消息中间件 存储 Kafka
2024最全Kafka集群方案汇总
Apache Kafka 是一个高吞吐量、可扩展、可靠的分布式消息系统,广泛应用于数据驱动的应用场景。Kafka 支持集群架构,具备高可用性和容错性。其核心组件包括 Broker(服务器实例)、Topic(消息分类)、Partition(有序消息序列)、Producer(消息发布者)和 Consumer(消息消费者)。每个分区有 Leader 和 Follower,确保数据冗余和高可用。Kafka 2.8+ 引入了不依赖 Zookeeper 的 KRaft 协议,进一步简化了集群管理。常见的集群部署方案包括单节点和多节点集群,后者适用于生产环境以确保高可用性。
815 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue的在线宠物用品交易网站附带文章和源代码
基于SpringBoot+Vue的在线宠物用品交易网站附带文章和源代码
189 0
|
Ubuntu Linux 网络安全
Git on Ubuntu 22.04: 终极安装与配置指南
【4月更文挑战第21天】
4782 0
Git on Ubuntu 22.04: 终极安装与配置指南
Pandas的datetime数据类型(一)
Python中内置了`datetime`模块,用于处理日期和时间。可以使用`datetime.now()`获取当前时间,或通过`datetime(year, month, day)`创建指定日期。在Pandas中,`pd.to_datetime()`函数用于将数据转换为`Timestamp`或`DatetimeIndex`,如从CSV加载数据时转换日期列。此外,`pd.read_csv()`的`parse_dates`参数可以直接将指定列解析为日期类型。Pandas的`Timestamp`对象还允许提取年、月、日等部分。