Linux FASTQ头中字符串后的Bash条件IF语句

Linux FASTQ头中字符串后的Bash条件IF语句,linux,bash,bioinformatics,fastq,Linux,Bash,Bioinformatics,Fastq,我只想提取覆盖率大于2且长度大于504的读取。这些都存储在FASTQ文件的每个头中。然而,我不能训练出一个基于这些品质的过滤器。请参阅输入FASTQ的两行的示例 谢谢你的帮助 >NODE_303303_length_504_cov_30.000000 CAGGATGTTGATCGGAAGAGCACACGTCTGAACTCCAGTCACATTACTCGATCTCGT >NODE_303603_length_56_cov_1.000000 CAGGATGAGATCGGAAGAGCACAC

我只想提取覆盖率大于2且长度大于504的读取。这些都存储在FASTQ文件的每个头中。然而,我不能训练出一个基于这些品质的过滤器。请参阅输入FASTQ的两行的示例

谢谢你的帮助

>NODE_303303_length_504_cov_30.000000
CAGGATGTTGATCGGAAGAGCACACGTCTGAACTCCAGTCACATTACTCGATCTCGT
>NODE_303603_length_56_cov_1.000000
CAGGATGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACATTACTCGATCTCGT

建议您提供一个输入文件和一个输出文件,以便更清楚地表达您要完成的任务。此外,请包括您尝试过的任何代码

让我试一试:

假设每个输入行如下所示:

>NODE_<node>_length_<length>_cov_<cov> <data>
<data1>
<data2>...
>NODE_<node>_length_<length>_cov_<cov> <data>
使用您的示例作为输入,没有输出。但这里有另一个示例输入文件:

>NODE_303603_length_560_cov_2.000000 CAGGATGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACATTACTCGATCTCGT
  more data - don't expect to see this output
>NODE_303603_length_505_cov_2.000000 CAGGATGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACATTACTCGATCTCGT
  more data - don't expect to see this output
>NODE_303603_length_505_cov_2.000001 CAGGATGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACATTACTCGATCTCGT
  more data
  this is the data we expect to see
>NODE_303303_length_504_cov_30.000000 CAGGATGTTGATCGGAAGAGCACACGTCTGAACTCCAGTCACATTACTCGATCTCGT
  more data - don't expect to see this output
这是当我们把它们放在一起时的输出:

 awk -F'[_ ]' '
  $1 == ">NODE" { p = 0 } 
  $1 == ">NODE" && $4 > 504 && $6 > 2 { p=1 } 
  p == 1 { print } 
' FASTQ_file

>NODE_303603_length_505_cov_2.000001 CAGGATGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACATTACTCGATCTCGT
  more data
  this is the data we expect to see

查找以“>”开头的行,并使用下划线作为字段分隔符,第4和第6个字段具有要检查的值。当一行匹配时,打印它,然后获取并打印下一行。标题本身是否在一行上,后面是一行或多行有效负载?谢谢,抱歉,我不清楚输入文件,但是,如果其格式是。>节点长度cov。或者数据可以是下一个标题之前的以下行。Ok@bio_bob_blob,我更新了代码以处理标题行之后的数据。
 awk -F'[_ ]' '
  $1 == ">NODE" { p = 0 } 
  $1 == ">NODE" && $4 > 504 && $6 > 2 { p=1 } 
  p == 1 { print } 
' FASTQ_file

>NODE_303603_length_505_cov_2.000001 CAGGATGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACATTACTCGATCTCGT
  more data
  this is the data we expect to see