Class: GffContig

Inherits:
Object
  • Object
show all
Defined in:
lib/gene_assembler/gff_contig.rb

Instance Method Summary collapse

Instance Method Details

#report(contig, seqid, parent, name_mode) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 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