巅峰之上313 2023-09-13 17:57 采纳率: 17.1%
浏览 4
已结题

在 deal-fa.pl 找对应的指令 求解

脚本2:
perl /mnt/sdb/share/bin/deal_fa.pl
数据路径:/mnt/sdb/share/bin/linux-demo/program/fasta
要求:

  1. 过滤掉长度1000bp一下的序列
  2. 提取目标区域(region.txt)内的序列
  3. 计算每个scaffold序列的长度
  4. 以100bp为窗口计算scaffold窗口内的GC含量
  5. scaffold序列基本信息统计(N50,N90,最大长度,最小长度等)
  6. 以300个N链接scaffold序列
  7. scaffold的拆分为contig
  8. 每两个序列拆分为一个文件
  9. 反向互补scaffold的序列
  10. 把不标准的scaffold的序列变成标准的scaffold的序列
  11. fasta文件转化为fastq格式文件
  12. 修改fasta序列前缀名称;前缀为: part
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-13 20:18
    关注

    【以下回答由 GPT 生成】

    是的,您所描述的内容正确无误。以下是针对每个问题的解决方案:

    1. 过滤掉长度小于1000bp的序列:
    awk 'BEGIN{RS=">";ORS=""}{if(length($0)>1000)print ">"$0}' input.fasta > output.fasta
    
    1. 从region.txt文件中提取目标区域内的序列:
    bedtools getfasta -fi input.fasta -bed region.txt -fo output.fasta
    
    1. 计算每个scaffold序列的长度:
    awk '/^>/ {if (seqlen){print seqlen}; print; seqlen=0; next;} { seqlen += length($0); } END {print seqlen}' input.fasta > output.txt
    
    1. 使用100bp的窗口计算scaffold窗口内的GC含量:
    bedtools nuc -fi input.fasta -bed windows.bed > output.txt
    
    1. 对scaffold序列进行基本信息统计,如N50、N90、最大长度、最小长度等:
    biopython 或其他第三方库可以进行此项统计
    
    1. 使用300个N将scaffold序列连接起来:
    awk '/^>/ {if (seqlen){print "\n" }; print; seqlen=0; next;} { seqlen += length($0); printf("%s", $0); } END {print }' input.fasta | awk -vRS="" '{gsub (/\n/,"NNNNNNNNN\n"); print }' > output.fasta
    
    1. 将scaffold拆分为contig:
    awk '/^>/{s=++i".fasta"} {print > s}' RS=">" input.fasta
    
    1. 将每两个序列拆分为一个文件:
    split -l 2 input.fasta
    
    1. 对scaffold序列进行反向互补操作:
    seqtk seq -r input.fasta > output.fasta
    
    1. 将不符合标准的scaffold序列转换为标准的scaffold序列:
    biopython 或其他第三方库可以进行此项操作
    
    1. 将fasta文件转化为fastq格式文件:
    awk '/^>/ {print $0"@seq"}; /^[^>]/ {print $0"+\n""~"}' input.fasta > output.fastq
    
    1. 修改fasta序列的前缀名称,将前缀改为"part":
    awk '/^>/{print ">part" ++i; next}{print}' input.fasta > output.fasta
    

    如果您还有其他问题,请随时提问。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月13日
  • 创建了问题 9月13日

悬赏问题

  • ¥20 双硬盘安装Ubuntu后windows 无法挂载硬盘
  • ¥15 下面求极限的步骤哪里不对,正确答案是a1a2…an
  • ¥15 帮我利用jupyter 运行一个正确的代码
  • ¥15 如何使用Gephi软件和Python包中的GephiStreamer交互
  • ¥15 sqlite加密问题咨询
  • ¥15 appdesigner接收不到udp组播的数据
  • ¥15 verilog 非阻塞赋值下的移位拼接错误
  • ¥100 两个按钮控制一个LED
  • ¥15 用C语言写离散数学相关问题
  • ¥30 如何用python的GephiStreamer连接到gephi中,把Python和Gephi的具体操作过程都展示,重点回答Gephi软件的调试,以及如果代码的端口在浏览器中无法显示怎么处理