gffread gff3文件 -g 基因组文件 -x cds文件 -y pep 文件
gffread gff3文件 -T -o gtf文件
gffread gtf文件 -o gff文件
大家常见的-o- 是 指定输出打印到屏幕,所以也可以写成
gffread gtf文件 -o- > gff文件
今天gffread 翻译后的蛋白投入 orthofinder 发现 orthofinder 在调用diamond报错,错误内容是无法识别 “.“字符,这是因为gffread 把stop codon翻译为”.”(dot),而不是我们使用mega时候的""(asterisk)。
gffread 可以在使用-y pep 时候 -S "" 指定终止密码子为"*" ,但是作者在github写So ugly. 人们为什么看到星号不是通配符?他就觉得很丑。
我呢懒得重新翻译了,所以就写了一个小脚本更改一下:
stop_codon_replace.py
import sys
def replace(infile):
with open(infile) as fi:
for line in fi:
line = line.strip()
if line.startswith(">"):
print(line)
else:
if "." in line:
line = line.replace(".","*")
print(line)
else:
print(line)
if __name__ == "__main__":
replace(sys.argv[1])
然后 for循环就好了
for i in *pep; do python stop_codon_replace.py $i> $(basename $i).change ; done