Si vous voulez tous les transcriptions de ce fichier gtf dont le type n'est pas "protein_coding", vous pouvez utiliser presque la même commande, il suffit de changer ==
("is") en ! =
("n'est pas"):
awk '{if ( $ 3 == "transcript" && $ span > 20! = "\" Protein_coding \ ";") {print $ 0}} 'gencode.gtf
Ou, une version plus simple:
awk ' $ 3 == "transcript" && $ 20! = "\" protein_coding \ ";"' gencode.gtf
Remarque que cela n'inclura aucune des transcriptions de la havane dans le fichier, mais je suppose que c'est ce que vous voulez puisque c'est ce que votre commande d'origine a fait.
Plus précisément, la commande retournera les types de transcription suivants (les nombres à gauche sont le nombre de ces transcriptions dans le fichier):
awk ' $ 3 == "transcript" && $ 20! = "\" protein_coding \ ";" {print $ 20} 'gencode.gtf | trier | uniq -c | sort -nk1 1 "pseudogène_procédé_ traduit"; 2 "Mt_rRNA"; 3 "IG_J_pseudogène"; 3 "TR_D_gene"; 4 "TR_J_pseudogène"; 5 "TR_C_gene"; 10 "IG_C_pseudogène"; 18 "IG_C_gene"; 18 "IG_J_gene"; 22 "Mt_tRNA"; 25 "3prime_overlapping_ncrna"; 27 "TR_V_pseudogène"; 37 "IG_D_gene"; 58 "non_stop_decay"; 59 "polymorphic_pseudogene"; 74 "TR_J_gene"; 97 "TR_V_gene"; 144 "IG_V_gene"; 182 "pseudogène_unitaire"; 196 "IG_V_pseudogène"; 330 "chevauchement_sens"; 387 "pseudogène"; 442 "pseudogène_procédé_ transcrit"; 531 "ARNr"; 802 "sense_intronic"; 860 "pseudogène_ non traité_ transcrit"; 1529 "snoRNA"; 1923 "snRNA"; 2050 "ARN_ divers"; 2549 "pseudogène_ non traité"; 3116 "miARN"; 9710 "antisens"; 10623 "pseudogène_traité"; 11780 "lincRNA"; 13052 "nonsense_mediated_decay"; 25955 "intron_ retenu"; 28082 "processing_transcript";
Vous voudrez peut-être également supprimer ce "Translated_processed_pseudogene" car il est en fait traduit en protéine et est donc techniquement codant:
awk ' $ 3 = = "transcription" && $ 20! = "\" protein_coding \ ";" && $ 20! = "\" Translate_processed_pseudogene \ ";" 'gencode.gtf