我一直在运行一个名为genewise的程序,将核苷酸序列翻译成基因的蛋白质序列。输入包括来自许多样品的组装的核苷酸序列。为了解析genewise输出,我一直在使用以下命令选择fasta标题:
do
err.clear
Set xclwbk = xclApp.Workbooks.Item(SAP_Workbook)
If Err.Number = 0 Then exit do
wscript.sleep 2000
loop
我被要求对每个基因重新运行,以便输出包括翻译的蛋白质序列和所有样品的cDNA序列。我无法创建两个awk语句来解析输出。
对于基因的基因输出中的每个样品,蛋白质fasta标题末端具有.sp.tr,核苷酸末端具有.sp,可以区分两种类型的序列。
以下是其中一个序列的示例。
for i in `ls`; do (cd "$i" && awk '/^>*/{flag=1;} /\/\// {flag=0}flag' out_genewise > out_genewise_prot.fa);done
我尝试了下面的命令来解析数据,但没有创建任何文件。有人可以帮我修理命令吗?
>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
//
提前感谢您的帮助。
答案 0 :(得分:2)
你的正则表达式没有正确设置,这应该在一次传递中工作以创建两个文件
$ awk '/^>.*sp\.tr$/ {suf="prot"}
/^>.*sp$/ {suf="nt"}
/\/\// {suf=""}
suf {print > FILENAME"_"suf".na"}' file
.
表示任何char *
表示0次或更多次。 /^>*.sp/
将匹配“> xsp”或“xsp”但不匹配“> xxsp”,其中x是任何字符(除了>)