sed 'N;N;N;/\n\n/d' file.fastq >new-file.fastq
Isso seria lido nas quatro linhas de um registro FastQ e, em seguida, verificar se ele contém dois caracteres de nova linha consecutivos. Em caso afirmativo, todo o registro é ignorado. Se isso não acontecer, é impresso. Isso seria repetido para todas as entradas no arquivo. Todos os registros impressos vão para um novo arquivo (aqui new-file.fastq
).
O script sed
, com anotações:
# (implicit: read a line)
N; # read a second line, append it to the pattern space with embedded \n in-between
N; # read a third line
N; # read a fourth line
/\n\n/d # if there are two consecutive newlines, delete and continue from top
# (implicit: print)
Comentário de um colega:
Fastq records are often paired, and software tends to throw a fit when pair mates are not found without explicitly telling it mates are missing. Several tools have a minimum length option like trimmomatic that will keep pairing, and separate orphaned records.
Isso significa que, se as leituras em seu arquivo estiverem emparelhadas e um dos pares estiver vazio, você poderá alterar o emparelhamento apenas removendo o registro vazio.
Remover o posicionamento da leitura vazia seria muito mais complicado, a menos que se usem ferramentas de bioinformática já existentes. Com as ferramentas na caixa de ferramentas padrão do Unix, isso provavelmente envolveria salvar as leituras vazias em um arquivo separado e, usando os cabeçalhos FastQ, procurar e excluir os correspondentes.
Os dados mostrados na pergunta parecem ser apenas leituras não pareadas.