Template:JAS/MutationStat: Difference between revisions

No edit summary
mNo edit summary
Line 42: Line 42:
|
|
{{#lua:
{{#lua:
   local M=0, D=0, I=0, DI=0, O=0
   local M=0 D=0 I=0 DI=0 O=0
   local total =0
   local total =0
   for type in stdin:gmatch("&&{{{1}}}/(%w+)/") do
   for type in stdin:gmatch("&&{{{1}}}/(%w+)/") do

Revision as of 17:19, 19 July 2012


The number of mutations (E = exon; I = intron)

{{#lua:

 function SortAndPrint(prefix, T)
   local idx = {}
   for k,v in pairs(T) do
     table.insert(idx, k)
   end
   table.sort(idx)
   for i=1, #idx do
     print(prefix .. idx[i] .. "
" .. T[idx[i]] .."\n|") end end
 local exn = {}
 local inn = {}
 local etc = {}
 local total =0
 for gene in stdin:gmatch("&&(%w+)\n") do
   total = total+1
   local n = tonumber(string.match(gene,"(%d+)"))
   if (string.match(gene,"exon")) then
     if (exn[n] == nil) then exn[n] = 1 else exn[n] = exn[n]+1 end
   elseif (string.match(gene,"intron")) then
     if (inn[n] == nil) then inn[n] = 1 else inn[n] = inn[n]+1 end
   else
     if (etc[gene] == nil) then etc[gene] = 1 else etc[gene] = etc[gene]+1 end
   end
 end
 SortAndPrint("E", exn)
 SortAndPrint("I", inn)
 SortAndPrint("", etc)
 print("Total
" .. total)
}}
The type of mutations (M = single-nucleotide mutation; D = deletion; I = insertion)

{{#lua:

 local M=0 D=0 I=0 DI=0 O=0
 local total =0
 for type in stdin:gmatch("&&{{{1}}}/(%w+)/") do
   total = total+1
   if (string.match(type,"Mut")) then M = M+1
   elseif (string.match(type,"Ins")) then I = I+1
   elseif (string.match(type,"Del")) then D = D+1
   elseif (string.match(type,"InsDel")) then DI = DI+1
   else O = O+1
   end
 end
 print("M
" .. M .. "\n|D
" .. D .. "\n|I
" .. I .. "\n|DI
" .. DI .. "\n|O
" .. O) print("\n|Total
" .. total)
}}