mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-06-29 16:20:46 +00:00
Adds some new columns to the ratio file.
Former-commit-id: 1b2d6116622b754670e86b683077aceac2db4ce7
This commit is contained in:
@ -26,6 +26,10 @@ type Ratio struct {
|
|||||||
CTo int
|
CTo int
|
||||||
Pos int
|
Pos int
|
||||||
Length int
|
Length int
|
||||||
|
A int
|
||||||
|
C int
|
||||||
|
G int
|
||||||
|
T int
|
||||||
}
|
}
|
||||||
|
|
||||||
type Edge struct {
|
type Edge struct {
|
||||||
@ -94,16 +98,16 @@ func EmpiricalDistCsv(filename string, data [][]Ratio) {
|
|||||||
progressbar.OptionSetWidth(15),
|
progressbar.OptionSetWidth(15),
|
||||||
progressbar.OptionShowIts(),
|
progressbar.OptionShowIts(),
|
||||||
progressbar.OptionSetPredictTime(true),
|
progressbar.OptionSetPredictTime(true),
|
||||||
progressbar.OptionSetDescription("[Save CSV stat ratio file"),
|
progressbar.OptionSetDescription("[Save CSV stat ratio file]"),
|
||||||
)
|
)
|
||||||
|
|
||||||
bar := progressbar.NewOptions(len(data), pbopt...)
|
bar := progressbar.NewOptions(len(data), pbopt...)
|
||||||
|
|
||||||
fmt.Fprintln(file, "Sample,Father_id,Father_status,From,To,Weight_from,Weight_to,Count_from,Count_to,Position,length")
|
fmt.Fprintln(file, "Sample,Father_id,Father_status,From,To,Weight_from,Weight_to,Count_from,Count_to,Position,length,A,C,G,T")
|
||||||
for code, dist := range data {
|
for code, dist := range data {
|
||||||
a1, a2 := intToNucPair(code)
|
a1, a2 := intToNucPair(code)
|
||||||
for _, ratio := range dist {
|
for _, ratio := range dist {
|
||||||
fmt.Fprintf(file, "%s,%s,%s,%c,%c,%d,%d,%d,%d,%d,%d\n",
|
fmt.Fprintf(file, "%s,%s,%s,%c,%c,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
|
||||||
ratio.Sample,
|
ratio.Sample,
|
||||||
ratio.SeqID,
|
ratio.SeqID,
|
||||||
ratio.status,
|
ratio.status,
|
||||||
@ -113,7 +117,12 @@ func EmpiricalDistCsv(filename string, data [][]Ratio) {
|
|||||||
ratio.CFrom,
|
ratio.CFrom,
|
||||||
ratio.CTo,
|
ratio.CTo,
|
||||||
ratio.Pos,
|
ratio.Pos,
|
||||||
ratio.Length)
|
ratio.Length,
|
||||||
|
ratio.A,
|
||||||
|
ratio.C,
|
||||||
|
ratio.G,
|
||||||
|
ratio.T,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
bar.Add(1)
|
bar.Add(1)
|
||||||
}
|
}
|
||||||
@ -137,7 +146,7 @@ func Gml(seqs *[]*seqPCR, sample string, statThreshold int) string {
|
|||||||
h {{ Sqrt $data.Count }}
|
h {{ Sqrt $data.Count }}
|
||||||
w {{ Sqrt $data.Count }}
|
w {{ Sqrt $data.Count }}
|
||||||
]
|
]
|
||||||
|
weight {{$data.Count}}
|
||||||
]
|
]
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
@ -467,13 +476,18 @@ func EstimateRatio(samples map[string]*[]*seqPCR, minStatRatio int) [][]Ratio {
|
|||||||
for _, edge := range seq.Edges {
|
for _, edge := range seq.Edges {
|
||||||
father := (*seqs)[edge.Father]
|
father := (*seqs)[edge.Father]
|
||||||
if father.Weight >= minStatRatio && edge.Dist == 1 {
|
if father.Weight >= minStatRatio && edge.Dist == 1 {
|
||||||
|
s := father.Sequence.Sequence()
|
||||||
ratio[edge.NucPair] = append(ratio[edge.NucPair],
|
ratio[edge.NucPair] = append(ratio[edge.NucPair],
|
||||||
Ratio{name,
|
Ratio{name,
|
||||||
father.Sequence.Id(), Status(father.Sequence)[name],
|
father.Sequence.Id(), Status(father.Sequence)[name],
|
||||||
father.Weight, seq.Weight,
|
father.Weight, seq.Weight,
|
||||||
father.Count, seq.Count,
|
father.Count, seq.Count,
|
||||||
edge.Pos,
|
edge.Pos,
|
||||||
father.Sequence.Len()})
|
father.Sequence.Len(),
|
||||||
|
bytes.Count(s, []byte("a")),
|
||||||
|
bytes.Count(s, []byte("c")),
|
||||||
|
bytes.Count(s, []byte("g")),
|
||||||
|
bytes.Count(s, []byte("t"))})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user