将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])
相关文章
|
10月前
|
存储 Python
Python代码搞定分数等级划分
Python代码搞定分数等级划分
693 0
|
Python
Python基础(输出五行五角星,数量每行递增/输出九九乘法表)
需求:在控制台连续输出五行*, 每一行星星的数量依次递增 思路:使用while循环输出五行内容, 依次输出数字1到5, 再使用数字乘以字符串'*', 即可在每行输出一个星星, 两个星星, ... 五个星星, 从而实现递增
841 1
Python基础(输出五行五角星,数量每行递增/输出九九乘法表)
|
9月前
|
BI 测试技术 索引
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-1
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
10月前
|
XML 数据格式 Python
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
|
9月前
|
存储 API C语言
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-2
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
10月前
|
算法 TensorFlow 算法框架/工具
基于直方图的图像阈值计算和分割算法FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于图像处理的算法实现摘要,主要包括四部分:展示了四张算法运行的效果图;提到了使用的软件版本为VIVADO 2019.2和matlab 2022a;介绍了算法理论,即基于直方图的图像阈值分割,通过灰度直方图分布选取阈值来区分图像区域;并提供了部分Verilog代码,该代码读取图像数据,进行处理,并输出结果到"result.txt"以供MATLAB显示图像分割效果。
|
10月前
|
算法
R语言非参数PDF和CDF估计、非参数分位数回归分析间歇泉、GDP增长数据
R语言非参数PDF和CDF估计、非参数分位数回归分析间歇泉、GDP增长数据
|
Linux 测试技术 数据处理
R语言丨根据VCF文件设计引物,自动识别两样本差异SNP位点,调用samtools获取上下游参考序列,快速得到引物序列
R语言丨根据VCF文件设计引物,自动识别两样本差异SNP位点,调用samtools获取上下游参考序列,快速得到引物序列
|
算法 Linux Python
SGAT丨基于R语言tidyverse的vcf转txt文件算法,SNP位点判断与自动校正,染色体格式替换
SGAT丨基于R语言tidyverse的vcf转txt文件算法,SNP位点判断与自动校正,染色体格式替换
ENVI_IDL:批量重投影Modis Swath产品并指定范围输出为Geotiff格式+解析
ENVI_IDL:批量重投影Modis Swath产品并指定范围输出为Geotiff格式+解析
254 0