我知道我这些代码可能有人写了。但是有的大神不开源,要么就是太久没维护。多数情况花时间去找到一个代码,到自己系统上各种报错。解决报错比新写一个代码困难多了...现在有Chatgpt,写代码也更加容易了。
首先是找到怎么拆分fasta。理论上比较简单,就是找到含有>
的行将这行和下一个含有>
行之间的所有文字输出到新的fa文件中。
很久之前找到过这样的代码
#!/usr/bin/perl
$f = $ARGV[0]; #get the file name
open (INFILE, "<$f")
or die "Can't open: $f $!";
while (<INFILE>) {
$line = $_;
chomp $line;
if ($line =~ /\>/) { #if has fasta >
close OUTFILE;
$new_file = substr($line,1);
$new_file .= ".fa";
open (OUTFILE, ">$new_file")
or die "Can't open: $new_file $!";
}
print OUTFILE "$line\n";
}
close OUTFILE;
perl脚本 我还不怎么懂。
其实不一定要脚本,TBtools也有相关的小程序可以完成。
看了2019至今的一些基因组测序的文章。好多都是用maker流程注释的。你只要把输入的文件,opts文件中的参数设置好之后基本不需要动手很多。maker怎么用我不赘述好多大神都讲过了。maker偶尔会断或者提交不成功,所以不如拆成染色体方便查看错误在哪里,而且同时运行提高效率
我今天要说的是怎么按照染色体多次提交任务。
#!/bin/bash
#dir of maker files
maker_dir="/jdfssz1/ST_BJ/P22Z28400N0005/chengxin2/04.test/01.annotation/02.maker/00.maker.ctl"
maker_bopts="maker_bopts.ctl"
maker_exe="maker_exe.ctl"
maker_opts="maker_opts.ctl"
maker_run="Ath_chr1_maker.run"
# recycle chr1-chr12
for chrom in {1..12}; do
#define fa fils dir
genome_fasta="your/path/to/chr${chrom}.fa"
# make new file of chr
mkdir chr${chrom}
cd chr${chrom}
# copy files to chr file
cp $maker_dir/$maker_bopts .
cp $maker_dir/$maker_exe .
cp $maker_dir/$maker_opts .
cp $maker_dir/$maker_run Ath_chr${chrom}_maker.run
# replace dir of maker_opts.ctl
sed -i "s|^genome=.*|genome=$genome_fasta|g" $maker_opts
sed -i "s|TMP=.*|TMP=$(pwd)|" $maker_opts
# qsub
qsub Ath_chr${chrom}_maker.run
cd ..
done
qsub提交任务只能按照sh脚本提交,我的Ath_chr1_maker.run就是运行maker的命令。
maker -RM_off --ignore_nfs_tmp
chatgpt一秒写完。真的。这个是我第一个用它写的脚本。