Unconfigured Ad

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • bioBob
    Member
    • Mar 2011
    • 72

    #1

    parsing gff3 from NCBI

    Hi,

    I need some help parsing a gff3 file. Essentially, I am trying to pull out specific fields out of the info section using awk. I can't simply use the column arrangement because the lines do not all have the same info in them so I need to do a match. Here are a couple of lines from the file:

    HTML Code:
    NC_015011.2     Gnomon  gene    18691   26481   .       +       .       ID=gene0;Dbxref=GeneID:100538868;Name=LOC100538868;gbkey=Gene;gene=LOC100538868;partial=true;start_range=.,18691
    NC_015011.2     Gnomon  mRNA    18691   26481   .       +       .       ID=rna0;Parent=gene0;Dbxref=GeneID:100538868,Genbank:XM_010707932.1;Name=XM_010707932.1;gbkey=mRNA;gene=LOC100538868;partial=true;product=hematopoietic lineage cell-specific protein-like;start_range=.,18691;transcript_id=XM_010707932.1
    NC_015011.2     Gnomon  exon    18691   18743   .       +       .       ID=id1;Parent=rna0;Dbxref=GeneID:100538868,Genbank:XM_010707932.1;gbkey=mRNA;gene=LOC100538868;partial=true;product=hematopoietic lineage cell-specific protein-like;start_range=.,18691;transcript_id=XM_010707932.1
    NC_015011.2     Gnomon  exon    18865   18994   .       +       .       ID=id2;Parent=rna0;Dbxref=GeneID:100538868,Genbank:XM_010707932.1;gbkey=mRNA;gene=LOC100538868;partial=true;product=hematopoietic lineage cell-specific protein-like;transcript_id=XM_010707932.1
    What I am doing is using awk to pull out the last field, i.e. $9, substitute tabs for semicolons, then further parse using a match function to get the fields I want. The issue is that my printf does not seem to be printing only my matching fields. Here is what I have:

    Code:
    awk -F "\t" '{ print $9 }' mga_ref_Turkey_5.0_NCBI_FINAL_no_GI_no_region.gff3.txt | grep product | awk -F ";" '{ gsub(";","\t",$0);print $0 }' | awk -F "\t" '{for(i=0;i<NF;i++){if($i~/gene\=/){printf $i};if($i~/product\=/){printf $i }}printf "\n"}' | head
    My output looks like :

    HTML Code:
    ID=rna0	Parent=gene0	Dbxref=GeneID:100538868,Genbank:XM_010707932.1	Name=XM_010707932.1	gbkey=mRNA	gene=LOC100538868	partial=true	product=hematopoietic lineage cell-specific protein-like	start_range=.,18691	transcript_id=XM_010707932.1ID=rna0	Parent=gene0	Dbxref=GeneID:100538868,Genbank:XM_010707932.1	Name=XM_010707932.1	gbkey=mRNA	gene=LOC100538868	partial=true	product=hematopoietic lineage cell-specific protein-like	start_range=.,18691	transcript_id=XM_010707932.1gene=LOC100538868product=hematopoietic lineage cell-specific protein-like
    ID=id1	Parent=rna0	Dbxref=GeneID:100538868,Genbank:XM_010707932.1	gbkey=mRNA	gene=LOC100538868	partial=true	product=hematopoietic lineage cell-specific protein-like	start_range=.,18691	transcript_id=XM_010707932.1ID=id1	Parent=rna0	Dbxref=GeneID:100538868,Genbank:XM_010707932.1	gbkey=mRNA	gene=LOC100538868	partial=true	product=hematopoietic lineage cell-specific protein-like	start_range=.,18691	transcript_id=XM_010707932.1gene=LOC100538868product=hematopoietic lineage cell-specific protein-like
    ID=id2	Parent=rna0	Dbxref=GeneID:100538868,Genbank:XM_010707932.1	gbkey=mRNA	gene=LOC100538868	partial=true	product=hematopoietic lineage cell-specific protein-like	transcript_id=XM_010707932.1ID=id2	Parent=rna0	Dbxref=GeneID:100538868,Genbank:XM_010707932.1	gbkey=mRNA	gene=LOC100538868	partial=true	product=hematopoietic lineage cell-specific protein-like	transcript_id=XM_010707932.1gene=LOC100538868product=hematopoietic lineage cell-specific protein-like
    OK, so it looks like it works up to the last awk, i.e. if I change the last awk to print $3, I get the expected result, what doesn't seem to be happening is my match is not printing ONLY the matching field. What am I doing wrong in my last awk such that it isn't printing the $i that gets the match???
  • bioBob
    Member
    • Mar 2011
    • 72

    #2
    OK, figured it out. I should start my loop at 1, not 0. !!

    Comment

    Latest Articles

    Collapse

    • SEQadmin2
      Multiomic Liquid Biopsy: What DNA/RNA Panels Reveal That DNA Alone Can’t
      by SEQadmin2



      Tumors contain complex mixtures of cell populations that evolve in response to treatment and host-specific factors. Tissue biopsies provide only static snapshots of a tumor’s state. But what if we could follow that evolution over time using a minimally invasive technique?

      Liquid biopsies can detect tumor-derived material circulating in the bloodstream, providing a way to study treatment response, detect emerging resistance, and discover new biomarkers. Circulating
      ...
      10-14-2026, 09:55 AM
    • SEQadmin2
      New Genomics Technologies Take Aim at Long-Standing Limits
      by SEQadmin2


      Researchers using sequencing and genomics tools often have to make trade-offs. They can choose between speed or scale, short reads or long-range information, or targeted panels or a view of the whole transcriptome. New technologies that have been released this year are built to address those tough choices.

      We asked six companies the same four questions to learn about their latest products. The new technologies bring a lot to the table, including rethinking sequencing
      ...
      09-28-2026, 10:25 AM

    ad_right_rmr

    Collapse

    News

    Collapse

    Topics Statistics Last Post
    Started by SEQadmin2, 10-22-2026, 11:13 AM
    0 responses
    26 views
    0 reactions
    Last Post SEQadmin2  
    Started by SEQadmin2, 10-22-2026, 10:48 AM
    0 responses
    20 views
    0 reactions
    Last Post SEQadmin2  
    Started by SEQadmin2, 10-15-2026, 10:52 AM
    0 responses
    36 views
    0 reactions
    Last Post SEQadmin2  
    Started by SEQadmin2, 10-14-2026, 05:39 AM
    0 responses
    43 views
    0 reactions
    Last Post SEQadmin2  
    Working...