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

    • kinpict.com
      Reply to 16S/ITS Profiling vs. Shotgun Metagenomics: What Changes in Your Workflow?
      by kinpict.com
      The part about this topic feels surprisingly grounded, and the details on the page is the bit that made me slow down. I’d keep <a href="https://kinpict.com/">ai family photo generator</a> bookmarked for later.
      Today, 06:37 PM
    • SEQadmin2
      16S/ITS Profiling vs. Shotgun Metagenomics: What Changes in Your Workflow?
      by SEQadmin2





      NGS has revolutionized clinical microbiology by offering new ways to identify and surveil pathogens without prior knowledge of the target. One popular approach is 16S rRNA and ITS amplicon sequencing, which targets specific microbial markers. But studies are increasingly incorporating shotgun metagenomics, a technique that sequences all DNA from a sample without targeting specific microbial markers. This approach allows more detailed taxonomic classification,...
      10-30-2026, 06:46 AM

    ad_right_rmr

    Collapse

    News

    Collapse

    Topics Statistics Last Post
    Started by SEQadmin2, 11-12-2026, 07:59 AM
    0 responses
    26 views
    0 reactions
    Last Post SEQadmin2  
    Started by SEQadmin2, 11-05-2026, 09:25 AM
    0 responses
    35 views
    0 reactions
    Last Post SEQadmin2  
    Started by SEQadmin2, 11-03-2026, 11:54 AM
    2 responses
    56 views
    0 reactions
    Last Post kinpict.com  
    Started by SEQadmin2, 10-28-2026, 09:57 AM
    0 responses
    175 views
    0 reactions
    Last Post SEQadmin2  
    Working...