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: