Mercurial > repos > davidvanzessen > report_clonality_igg
changeset 23:5f0597a3fd8b draft
Uploaded
author | davidvanzessen |
---|---|
date | Fri, 16 Jan 2015 07:37:41 -0500 |
parents | 2555b94dbdb2 |
children | 5454af6fece1 |
files | RScript.r r_wrapper.sh report_clonality_igg.xml |
diffstat | 3 files changed, 178 insertions(+), 63 deletions(-) [+] |
line wrap: on
line diff
--- a/RScript.r Thu Jan 15 09:16:19 2015 -0500 +++ b/RScript.r Fri Jan 16 07:37:41 2015 -0500 @@ -166,23 +166,50 @@ PRODFJ = merge(PRODFJ, Total, by.x='Sample', by.y='Sample', all.x=TRUE) PRODFJ = ddply(PRODFJ, c("Sample", "Top.J.Gene"), summarise, relFreq= (Length*100 / Total)) -# ---------------------- Setting up the gene names for the different T/B, human/mouse and locus ---------------------- +# ---------------------- Setting up the gene names for the different species/loci ---------------------- -genes = read.table("genes.txt", sep="\t", header=TRUE, fill=T, comment.char="") +Vchain = "" +Dchain = "" +Jchain = "" -Vchain = genes[grepl(species, genes$Species) & genes$locus == locus & genes$region == "V",c("IMGT.GENE.DB", "chr.order")] -colnames(Vchain) = c("v.name", "chr.orderV") -Dchain = genes[grepl(species, genes$Species) & genes$locus == locus & genes$region == "D",c("IMGT.GENE.DB", "chr.order")] -colnames(Dchain) = c("v.name", "chr.orderD") -Jchain = genes[grepl(species, genes$Species) & genes$locus == locus & genes$region == "J",c("IMGT.GENE.DB", "chr.order")] -colnames(Jchain) = c("v.name", "chr.orderJ") +if(species == "custom"){ + print("Custom genes: ") + splt = unlist(strsplit(locus, ";")) + print(paste("V:", splt[1])) + print(paste("D:", splt[2])) + print(paste("J:", splt[3])) + + Vchain = unlist(strsplit(splt[1], ",")) + Vchain = data.frame(v.name = Vchain, chr.orderV = 1:length(Vchain)) + + Dchain = unlist(strsplit(splt[2], ",")) + if(length(Dchain) > 0){ + Dchain = data.frame(v.name = Dchain, chr.orderD = 1:length(Dchain)) + } else { + Dchain = data.frame(v.name = character(0), chr.orderD = numeric(0)) + } + + Jchain = unlist(strsplit(splt[3], ",")) + Jchain = data.frame(v.name = Jchain, chr.orderJ = 1:length(Jchain)) +} else { + genes = read.table("genes.txt", sep="\t", header=TRUE, fill=T, comment.char="") + + Vchain = genes[grepl(species, genes$Species) & genes$locus == locus & genes$region == "V",c("IMGT.GENE.DB", "chr.order")] + colnames(Vchain) = c("v.name", "chr.orderV") + Dchain = genes[grepl(species, genes$Species) & genes$locus == locus & genes$region == "D",c("IMGT.GENE.DB", "chr.order")] + colnames(Dchain) = c("v.name", "chr.orderD") + Jchain = genes[grepl(species, genes$Species) & genes$locus == locus & genes$region == "J",c("IMGT.GENE.DB", "chr.order")] + colnames(Jchain) = c("v.name", "chr.orderJ") +} useD = TRUE if(nrow(Dchain) == 0){ useD = FALSE cat("No D Genes in this species/locus") } +print(paste("useD:", useD)) + # ---------------------- merge with the frequency count ---------------------- PRODFV = merge(PRODFV, Vchain, by.x='Top.V.Gene', by.y='v.name', all.x=TRUE)
--- a/r_wrapper.sh Thu Jan 15 09:16:19 2015 -0500 +++ b/r_wrapper.sh Fri Jan 16 07:37:41 2015 -0500 @@ -10,8 +10,18 @@ dir="$(cd "$(dirname "$0")" && pwd)" useD="false" if grep -q "$species.*${locus}D" "$dir/genes.txt" ; then + echo "species D region in reference db" useD="true" fi +echo "$species" +if [[ "$species" == *"custom"* ]] ; then + loci=(${locus//;/ }) + useD="true" + echo "${loci[@]}" + if [[ "${#loci[@]}" -eq "2" ]] ; then + useD="false" + fi +fi mkdir $3 cp $dir/genes.txt $outputDir Rscript --verbose $dir/RScript.r $inputFile $outputDir $outputDir $clonalType "$species" "$locus" $filterproductive 2>&1
--- a/report_clonality_igg.xml Thu Jan 15 09:16:19 2015 -0500 +++ b/report_clonality_igg.xml Fri Jan 16 07:37:41 2015 -0500 @@ -1,7 +1,11 @@ <tool id="report_clonality_igg" name="Report Clonality" version="1.0"> <description> </description> <command interpreter="bash"> - r_wrapper.sh $in_file $out_file $out_file.files_path "$clonaltype" "$species" "$locus" $filterproductive +#if $gene_selection.source == "imgtdb" + r_wrapper.sh $in_file $out_file $out_file.files_path "$clonaltype" "${gene_selection.species}" "${gene_selection.locus}" $filterproductive +#else + r_wrapper.sh $in_file $out_file $out_file.files_path "$clonaltype" "custom" "${gene_selection.vgenes};${gene_selection.dgenes};${gene_selection.jgenes}" $filterproductive +#end if </command> <inputs> <param name="in_file" format="tabular" type="data" label="Data to Process" /> @@ -14,73 +18,147 @@ <option value="Top.V.Gene,Top.D.Gene,Top.J.Gene,CDR3.Seq.DNA">Top.V.Gene, Top.D.Gene, Top.J.Gene, CDR3.Seq.DNA</option> </param> - <param name="species" type="select" label="Species"> - <option value="Bos taurus">Bos taurus</option> - <option value="Bos taurus functional">Bos taurus functional</option> - <option value="Bos taurus non-functional">Bos taurus non-functional</option> - <option value="Camelus dromedarius">Camelus dromedarius</option> - <option value="Camelus dromedarius functional">Camelus dromedarius functional</option> - <option value="Camelus dromedarius non-functional">Camelus dromedarius non-functional</option> - <option value="Canis lupus familiaris">Canis lupus familiaris</option> - <option value="Canis lupus familiaris functional">Canis lupus familiaris functional</option> - <option value="Canis lupus familiaris non-functional">Canis lupus familiaris non-functional</option> - <option value="Danio rerio">Danio rerio</option> - <option value="Danio rerio functional">Danio rerio functional</option> - <option value="Danio rerio non-functional">Danio rerio non-functional</option> - <option value="Homo sapiens">Homo sapiens</option> - <option value="Homo sapiens functional">Homo sapiens functional</option> - <option value="Homo sapiens non-functional">Homo sapiens non-functional</option> - <option value="Macaca mulatta">Macaca mulatta</option> - <option value="Macaca mulatta functional">Macaca mulatta functional</option> - <option value="Macaca mulatta non-functional">Macaca mulatta non-functional</option> - <option value="Mus musculus">Mus musculus</option> - <option value="Mus musculus functional">Mus musculus functional</option> - <option value="Mus musculus non-functional">Mus musculus non-functional</option> - <option value="Mus spretus">Mus spretus</option> - <option value="Mus spretus functional">Mus spretus functional</option> - <option value="Mus spretus non-functional">Mus spretus non-functional</option> - <option value="Oncorhynchus mykiss">Oncorhynchus mykiss</option> - <option value="Oncorhynchus mykiss functional">Oncorhynchus mykiss functional</option> - <option value="Oncorhynchus mykiss non-functional">Oncorhynchus mykiss non-functional</option> - <option value="Ornithorhynchus anatinus">Ornithorhynchus anatinus</option> - <option value="Ornithorhynchus anatinus functional">Ornithorhynchus anatinus functional</option> - <option value="Ornithorhynchus anatinus non-functional">Ornithorhynchus anatinus non-functional</option> - <option value="Oryctolagus cuniculus">Oryctolagus cuniculus</option> - <option value="Oryctolagus cuniculus functional">Oryctolagus cuniculus functional</option> - <option value="Oryctolagus cuniculus non-functional">Oryctolagus cuniculus non-functional</option> - <option value="Rattus norvegicus">Rattus norvegicus</option> - <option value="Rattus norvegicus functional">Rattus norvegicus functional</option> - <option value="Rattus norvegicus non-functional">Rattus norvegicus non-functional</option> - <option value="Sus scrofa">Sus scrofa</option> - <option value="Sus scrofa functional">Sus scrofa functional</option> - <option value="Sus scrofa non-functional">Sus scrofa non-functional</option> - </param> - - <param name="locus" type="select" label="Locus"> - <option value="TRA">TRA</option> - <option value="TRD">TRD</option> - <option value="TRG">TRG</option> - <option value="TRB">TRB</option> - <option value="IGH">IGH</option> - <option value="IGI">IGI</option> - <option value="IGK">IGK</option> - <option value="IGL">IGL</option> - </param> + <conditional name="gene_selection" > + <param name="source" type="select" label="Gene reference" help="" > + <option value="imgtdb" selected="true">IMGT-DB</option> + <option value="custom">User defined</option> + </param> + <when value="imgtdb"> + <param name="species" type="select" label="Species"> + <option value="Homo sapiens functional">Homo sapiens functional</option> + <option value="Homo sapiens">Homo sapiens</option> + <option value="Homo sapiens non-functional">Homo sapiens non-functional</option> + <option value="Bos taurus">Bos taurus</option> + <option value="Bos taurus functional">Bos taurus functional</option> + <option value="Bos taurus non-functional">Bos taurus non-functional</option> + <option value="Camelus dromedarius">Camelus dromedarius</option> + <option value="Camelus dromedarius functional">Camelus dromedarius functional</option> + <option value="Camelus dromedarius non-functional">Camelus dromedarius non-functional</option> + <option value="Canis lupus familiaris">Canis lupus familiaris</option> + <option value="Canis lupus familiaris functional">Canis lupus familiaris functional</option> + <option value="Canis lupus familiaris non-functional">Canis lupus familiaris non-functional</option> + <option value="Danio rerio">Danio rerio</option> + <option value="Danio rerio functional">Danio rerio functional</option> + <option value="Danio rerio non-functional">Danio rerio non-functional</option> + <option value="Macaca mulatta">Macaca mulatta</option> + <option value="Macaca mulatta functional">Macaca mulatta functional</option> + <option value="Macaca mulatta non-functional">Macaca mulatta non-functional</option> + <option value="Mus musculus">Mus musculus</option> + <option value="Mus musculus functional">Mus musculus functional</option> + <option value="Mus musculus non-functional">Mus musculus non-functional</option> + <option value="Mus spretus">Mus spretus</option> + <option value="Mus spretus functional">Mus spretus functional</option> + <option value="Mus spretus non-functional">Mus spretus non-functional</option> + <option value="Oncorhynchus mykiss">Oncorhynchus mykiss</option> + <option value="Oncorhynchus mykiss functional">Oncorhynchus mykiss functional</option> + <option value="Oncorhynchus mykiss non-functional">Oncorhynchus mykiss non-functional</option> + <option value="Ornithorhynchus anatinus">Ornithorhynchus anatinus</option> + <option value="Ornithorhynchus anatinus functional">Ornithorhynchus anatinus functional</option> + <option value="Ornithorhynchus anatinus non-functional">Ornithorhynchus anatinus non-functional</option> + <option value="Oryctolagus cuniculus">Oryctolagus cuniculus</option> + <option value="Oryctolagus cuniculus functional">Oryctolagus cuniculus functional</option> + <option value="Oryctolagus cuniculus non-functional">Oryctolagus cuniculus non-functional</option> + <option value="Rattus norvegicus">Rattus norvegicus</option> + <option value="Rattus norvegicus functional">Rattus norvegicus functional</option> + <option value="Rattus norvegicus non-functional">Rattus norvegicus non-functional</option> + <option value="Sus scrofa">Sus scrofa</option> + <option value="Sus scrofa functional">Sus scrofa functional</option> + <option value="Sus scrofa non-functional">Sus scrofa non-functional</option> + </param> + + <param name="locus" type="select" label="Locus"> + <option value="TRA">TRA</option> + <option value="TRD">TRD</option> + <option value="TRG">TRG</option> + <option value="TRB">TRB</option> + <option value="IGH">IGH</option> + <option value="IGI">IGI</option> + <option value="IGK">IGK</option> + <option value="IGL">IGL</option> + </param> + </when> + <when value="custom"> + <param name="species" type="hidden" value="custom" size="50" /> + <param name="vgenes" type="text" label="V Genes, add the custom genes comma seperated, no spaces" size="100" /> + <param name="dgenes" type="text" label="D Genes" size="100" /> + <param name="jgenes" type="text" label="J Genes" size="100" /> + </when> + </conditional> <param name="filterproductive" type="select" label="Filter out the unproductive sequences"> <option value="yes">Yes</option> <option value="no">No</option> </param> - </inputs> <outputs> <data format="html" name="out_file" /> </outputs> - <help> + <help> **INPUT** One or more ARGalaxy proprietary format files combined with the ARGalaxy Experimental Design tool + +.. class:: warningmark + +Custom gene ordering based on position on genome: + +**Human** + +IGH:: + + V:IGHV3-74,IGHV3-73,IGHV3-72,IGHV2-70,IGHV1-69D,IGHV1-69-2,IGHV2-70D,IGHV1-69,IGHV3-66,IGHV3-64,IGHV4-61,IGHV4-59,IGHV1-58,IGHV3-53,IGHV5-51,IGHV3-49,IGHV3-48,IGHV1-46,IGHV1-45,IGHV3-43,IGHV4-39,IGHV3-43D,IGHV4-38-2,IGHV4-34,IGHV3-33,IGHV4-31,IGHV3-30-5,IGHV4-30-4,IGHV3-30-3,IGHV4-30-2,IGHV4-30-1,IGHV3-30,IGHV4-28,IGHV2-26,IGHV1-24,IGHV3-23D,IGHV3-23,IGHV3-21,IGHV3-20,IGHV1-18,IGHV3-15,IGHV3-13,IGHV3-11,IGHV5-10-1,IGHV3-9,IGHV1-8,IGHV3-64D,IGHV3-7,IGHV2-5,IGHV7-4-1,IGHV4-4,IGHV1-3,IGHV1-2,IGHV6-1 + D:IGHD1-1,IGHD2-2,IGHD3-3,IGHD4-4,IGHD5-5,IGHD6-6,IGHD1-7,IGHD2-8,IGHD3-9,IGHD3-10,IGHD5-12,IGHD6-13,IGHD2-15,IGHD3-16,IGHD4-17,IGHD5-18,IGHD6-19,IGHD1-20,IGHD2-21,IGHD3-22,IGHD5-24,IGHD6-25,IGHD1-26,IGHD7-27 + J:IGHJ1,IGHJ2,IGHJ3,IGHJ4,IGHJ5,IGHJ6 + + +IGK:: + + V:IGKV3D-7,IGKV1D-8,IGKV1D-43,IGKV3D-11,IGKV1D-12,IGKV1D-13,IGKV3D-15,IGKV1D-16,IGKV1D-17,IGKV3D-20,IGKV2D-26,IGKV2D-28,IGKV2D-29,IGKV2D-30,IGKV1D-33,IGKV1D-39,IGKV2D-40,IGKV2-40,IGKV1-39,IGKV1-33,IGKV2-30,IGKV2-29,IGKV2-28,IGKV1-27,IGKV2-24,IGKV3-20,IGKV1-17,IGKV1-16,IGKV3-15,IGKV1-13,IGKV1-12,IGKV3-11,IGKV1-9,IGKV1-8,IGKV1-6,IGKV1-5,IGKV5-2,IGKV4-1 + J:IGKJ1,IGKJ2,IGKJ3,IGKJ4,IGKJ5 + + +IGL:: + + V:IGLV4-69,IGLV8-61,IGLV4-60,IGLV6-57,IGLV5-52,IGLV1-51,IGLV9-49,IGLV1-47,IGLV7-46,IGLV5-45,IGLV1-44,IGLV7-43,IGLV1-41,IGLV1-40,IGLV5-39,IGLV5-37,IGLV1-36,IGLV3-27,IGLV3-25,IGLV2-23,IGLV3-22,IGLV3-21,IGLV3-19,IGLV2-18,IGLV3-16,IGLV2-14,IGLV3-12,IGLV2-11,IGLV3-10,IGLV3-9,IGLV2-8,IGLV4-3,IGLV3-1 + J:IGLJ1,IGLJ2,IGLJ3,IGLJ6,IGLJ7 + + +TRB:: + + V:TRBV2,TRBV3-1,TRBV4-1,TRBV5-1,TRBV6-1,TRBV4-2,TRBV6-2,TRBV4-3,TRBV6-3,TRBV7-2,TRBV6-4,TRBV7-3,TRBV9,TRBV10-1,TRBV11-1,TRBV10-2,TRBV11-2,TRBV6-5,TRBV7-4,TRBV5-4,TRBV6-6,TRBV5-5,TRBV7-6,TRBV5-6,TRBV6-8,TRBV7-7,TRBV6-9,TRBV7-8,TRBV5-8,TRBV7-9,TRBV13,TRBV10-3,TRBV11-3,TRBV12-3,TRBV12-4,TRBV12-5,TRBV14,TRBV15,TRBV16,TRBV18,TRBV19,TRBV20-1,TRBV24-1,TRBV25-1,TRBV27,TRBV28,TRBV29-1,TRBV30 + D:TRBD1,TRBD2 + J:TRBJ1-1,TRBJ1-2,TRBJ1-3,TRBJ1-4,TRBJ1-5,TRBJ1-6,TRBJ2-1,TRBJ2-2,TRBJ2-3,TRBJ2-4,TRBJ2-5,TRBJ2-6,TRBJ2-7 + + +TRA:: + + V:TRAV1-1,TRAV1-2,TRAV2,TRAV3,TRAV4,TRAV5,TRAV6,TRAV7,TRAV8-1,TRAV9-1,TRAV10,TRAV12-1,TRAV8-2,TRAV8-3,TRAV13-1,TRAV12-2,TRAV8-4,TRAV13-2,TRAV14/DV4,TRAV9-2,TRAV12-3,TRAV8-6,TRAV16,TRAV17,TRAV18,TRAV19,TRAV20,TRAV21,TRAV22,TRAV23/DV6,TRAV24,TRAV25,TRAV26-1,TRAV27,TRAV29/DV5,TRAV30,TRAV26-2,TRAV34,TRAV35,TRAV36/DV7,TRAV38-1,TRAV38-2/DV8,TRAV39,TRAV40,TRAV41 + J:TRAJ57,TRAJ56,TRAJ54,TRAJ53,TRAJ52,TRAJ50,TRAJ49,TRAJ48,TRAJ47,TRAJ46,TRAJ45,TRAJ44,TRAJ43,TRAJ42,TRAJ41,TRAJ40,TRAJ39,TRAJ38,TRAJ37,TRAJ36,TRAJ34,TRAJ33,TRAJ32,TRAJ31,TRAJ30,TRAJ29,TRAJ28,TRAJ27,TRAJ26,TRAJ24,TRAJ23,TRAJ22,TRAJ21,TRAJ20,TRAJ18,TRAJ17,TRAJ16,TRAJ15,TRAJ14,TRAJ13,TRAJ12,TRAJ11,TRAJ10,TRAJ9,TRAJ8,TRAJ7,TRAJ6,TRAJ5,TRAJ4,TRAJ3 + + +TRG:: + + V:TRGV9,TRGV8,TRGV5,TRGV4,TRGV3,TRGV2 + J:TRGJ2,TRGJP2,TRGJ1,TRGJP1 + + +TRD:: + + V:TRDV1,TRDV2,TRDV3 + D:TRDD1,TRDD2,TRDD3 + J:TRDJ1,TRDJ4,TRDJ2,TRDJ3 + + +**Mouse** + +TRB:: + + V:TRBV1,TRBV2,TRBV3,TRBV4,TRBV5,TRBV12-1,TRBV13-1,TRBV12-2,TRBV13-2,TRBV13-3,TRBV14,TRBV15,TRBV16,TRBV17,TRBV19,TRBV20,TRBV23,TRBV24,TRBV26,TRBV29,TRBV30,TRBV31 + D:TRBD1,TRBD2 + J:TRBJ1-1,TRBJ1-2,TRBJ1-3,TRBJ1-4,TRBJ1-5,TRBJ2-1,TRBJ2-2,TRBJ2-3,TRBJ2-4,TRBJ2-5,TRBJ2-6,TRBJ2-7 + + **OUTPUT** It generates the following result: