我一直在运行一个名为genewise的程序,将核苷酸序列翻译成基因的蛋白质序列 . 输入包括来自许多样品的组装的核苷酸序列 . 为了解析genewise输出,我一直在使用以下命令选择fasta标头:
for i in `ls`; do (cd "$i" && awk '/^>*/{flag=1;} /\/\// {flag=0}flag' out_genewise > out_genewise_prot.fa);done
我被要求对每个基因重新运行,以便输出包括翻译的蛋白质序列和所有样品的cDNA序列 . 我无法创建两个awk语句来解析输出 .
对于在genewise输出用于基因各样品,蛋白质FASTA报头具有在.sp.tr端部与核苷酸具有的.sp在可在两种序列之间进行区分的端部 .
以下是其中一个序列的示例 .
>303.1_assembled_PF3D7_1477500.[1:1643].sp.tr
MNLRLSNYSLFQNILDKTNKSNCIYSTHSSYEEYHDEKVRTGSFFYSKKFRRYMLPIMGI
LYIIILNLLHLKGILSTEVQRSYTFSRNLSDNEKEKEKEKENKEFYKCYKKKGIKKLTIE
EEDLYPRHPGLYNSYYDYERPYLLTPEMLEYIEKAVEENVEKEVERRAIESFENRMLKQF
VDEIRDKRLRKGTI
//
>303.1_assembled_PF3D7_1477500.[1:1643].sp
ATGAATTTAAGGCTATCAAACTATAGTTTGTTTCAAAATATTCTTGATAAAACGAATAAA
TCGAATTGTATTTATTCTACACACAGTTCTTACGAAGAATATCATGATGAAAAAGTAAGA
GAAAAAGAAGTTGAAAGGAGAGCTATAGAATCATTTGAAAATAGAATGCTAAAACAGTTT
GTAGATGAAATAAGAGATAAAAGATTAAGAAAAGGTACCATT
//
我尝试了下面的命令来解析数据,但没有创建任何文件 . 有人可以帮我修理命令吗?
for i in `ls`; do (cd "$i" && awk '/^>*.sp.tr/{flag=1;} /\/\// {flag=0}flag' out_genewise > out_genewise_prot.fa);done
for i in `ls`; do (cd "$i" && awk '/^>*.sp$/{flag=1;} /\/\// {flag=0}flag' out_genewise > out_genewise_nt.fa);done
在此先感谢您的帮助 .
1 回答
您的正则表达式未正确设置,这应该在一次传递中工作以创建两个文件
.
表示任何char*
表示0次或更多次 ./^>*.sp/
将匹配">xsp"或"xsp"但不">xxsp"其中x是任何字符(比>其他)