class GffContig

Public Instance Methods

report(contig,seqid,parent,name_mode) click to toggle source
# File lib/gene_assembler/gff_contig.rb, line 9
def report(contig,seqid,parent,name_mode)
        features_parent=nil
        seq=nil # Para especificar la secuencia del contig o del hit
        
        #Contig
        if !parent.nil? #Caso de q cada contig sea una unidad independiente
                seqid=parent #Se redefine el seqid  con el nombre del contig q actua de parent
                if !contig.seq.nil? #Se especifica secuencia para el contig hijo ya q Gbrowse toma como secuencia aquella perteneciente al parent, por lo q hay especificar la secuencia del contig en el gff
                        seq=contig.seq
                end
        end
        parent_hit=nil
        contig_text=[]
        if parent.nil? #Caso de cada contig sea una unidad independiente
                parent_hit=contig.name
                text="#{seqid}\tunknown\t#{contig.type}\t1\t#{contig.length}\t.\t+\t.\tID=#{contig.name};Name=#{contig.name}"
                contig_text << text
        end
        
        #Hit
        gff_hit=GffHit.new
        contig.each_hit{|hit| 
                text,features_parent= gff_hit.report(hit, parent_hit, seqid, contig.name, name_mode, seq) #En caso de que un contig dependa de otro, features_parent proporcio
                contig_text << text
        }

        #Frameshift
        gff_frameshift=GffFrameshift.new
        contig.each_q_frameshift{|fs|
                contig_text << gff_frameshift.report(fs,features_parent,seqid)
        }     

        #Stop
        gff_stop=GffStop.new
        contig.each_stop{|stop|
                contig_text << gff_stop.report(stop,features_parent,seqid)
        }     
        
        #SNP
        gff_snp=GffSNP.new
        contig.each_snp_with_index{|snp,n|
                contig_text << gff_snp.report(snp, features_parent, seqid,n)
        }
        
        #GO
        gff_go=GffGo.new
        contig.each_go{|go|
                contig_text << gff_go.report(go, features_parent, seqid)     
        }

        #Localization
        gff_localization=Localization.new
        contig.each_localization_with_index{|localization,n|
                contig_text << gff_localization.report(localization,features_parent, seqid, contig, n)       
        }
        
        return contig_text
end