Commit dc23b0ce authored by khalid's avatar khalid
Browse files

With Polo changes

parent 6a48544b
This diff is collapsed.
No preview for this file type
......@@ -56,15 +56,15 @@ if [ $RECAT == "no" ]; then
START_TIME2=$SECONDS
### index contigs for the selected tool
echo -e "\nBuilding index : $out/$toolidx\n"
case "$TOOL" in
B) toolidx="ALL_transcripts_bowtie_index"; if [ ! -d $out/$toolidx ]; then mkdir $out/$toolidx; bowtie-build --offrate 3 $out/ALL_transcripts.fasta $out/$toolidx/$toolidx ;fi ;;
B2) toolidx="ALL_transcripts_bowtie2_index"; if [ ! -d $out/$toolidx ]; then mkdir $out/$toolidx; bowtie2-build --offrate 3 $out/ALL_transcripts.fasta $out/$toolidx/$toolidx ;fi ;;
K) toolidx="ALL_transcripts_kallisto_index"; if [ ! -f $out/$toolidx ]; then kallisto index -i $out/$toolidx $out/ALL_transcripts.fasta; fi ;;
S) toolidx="ALL_transcripts_salmon_index" ; if [ ! -d $out/$toolidx ]; then salmon --no-version-check index -t $out/ALL_transcripts.fasta -i $out/$toolidx; fi ;;
R) toolidx="ALL_transcripts_rapmap_index" ; if [ ! -d $out/$toolidx ]; then rapmap quasiindex -t $out/ALL_transcripts.fasta -i $out/$toolidx; fi ;;
R) toolidx="ALL_transcripts_rapmap_index" ; if [ ! -d $out/$toolidx ]; then rapmap quasiindex -t $out/ALL_transcripts.fasta -p -x $PROCESSORS -i $out/$toolidx; fi ;;
H) toolidx="ALL_transcripts_hpg_index" ; if [ ! -d $out/$toolidx ]; then mkdir $out/$toolidx; hpg-aligner build-sa-index -g $out/ALL_transcripts.fasta -i $out/$toolidx; fi ;;
esac
echo -e "\nIndex built : $out/$toolidx\n"
for (( j=0; j <i; j++ ))
do
......@@ -100,12 +100,12 @@ if [ $RECAT == "no" ]; then
else
fastq=" -1 "$INDIR"/"${fasta_array[$k]}".L.fastq -2 "$INDIR"/"${fasta_array[$k]}".R.fastq"
fi
bowtie -p $PROCESSORS $ADDOPT -a --trim5 $TRIM5 --trim3 $TRIM3 --suppress 1,2,4,5,6,7,8 $out/$toolidx/$toolidx $fastq > $out/${fasta_array[$k]}".mapping"
bowtie -p $PROCESSORS $ADDOPT -a --trim5 $TRIM5 --trim3 $TRIM3 --chunkmbs 2000 --suppress 1,2,4,5,6,7,8 $out/$toolidx/$toolidx $fastq | \
awk -v reads=$reads -v refseqs=$refseqALL 'BEGIN{OFS="\t"; while ((getline sequ < refseqs) > 0) {split(sequ,a,"\t");ctg[a[1]] = 0; ctgsize[a[1]]= a[2];}; close(refseqs) } {ctg[$1]++}
END{
print "Contig", reads;
for (i in ctg) totRPK += ctg[i]/ctgsize[i];
for (i in ctg) {if (totRPK > 0) {print i, (ctg[i]/ctgsize[i])*(1/totRPK)*1000000 } else {print i,"0"}} }' < $out/${fasta_array[$k]}".mapping" > $fileout
for (i in ctg) {if (totRPK > 0) {print i, (ctg[i]/ctgsize[i])*(1/totRPK)*1000000 } else {print i,"0"}} }' > $fileout
;;
B2) if [ $MODE == "u" ]
then
......@@ -379,7 +379,7 @@ fi
### miscellaneous
if [ $RECAT == "no" ]; then
mkdir utility_files_CroCo
mv *.outblast *.suspects *.blastdb.* *_index *.ctgs *.out *.all_quants *.fasta_mod *.fasta_suspect ALL_transcripts.* utility_files_CroCo/
mv *.outblast *.suspects *.blastdb.* *_index *.ctgs *.out *.all_quants *.fasta_mod *.fasta_suspect utility_files_CroCo/
fi
cd ../
......
......@@ -56,15 +56,15 @@ if [ $RECAT == "no" ]; then
START_TIME2=$SECONDS
### index contigs for the selected tool
echo -e "\nBuilding index : $out/$toolidx\n"
case "$TOOL" in
B) toolidx="ALL_transcripts_bowtie_index"; if [ ! -d $out/$toolidx ]; then mkdir $out/$toolidx; bowtie-build --offrate 3 $out/ALL_transcripts.fasta $out/$toolidx/$toolidx ;fi ;;
B2) toolidx="ALL_transcripts_bowtie2_index"; if [ ! -d $out/$toolidx ]; then mkdir $out/$toolidx; bowtie2-build --offrate 3 $out/ALL_transcripts.fasta $out/$toolidx/$toolidx ;fi ;;
K) toolidx="ALL_transcripts_kallisto_index"; if [ ! -f $out/$toolidx ]; then kallisto index -i $out/$toolidx $out/ALL_transcripts.fasta; fi ;;
S) toolidx="ALL_transcripts_salmon_index" ; if [ ! -d $out/$toolidx ]; then salmon --no-version-check index -t $out/ALL_transcripts.fasta -i $out/$toolidx; fi ;;
R) toolidx="ALL_transcripts_rapmap_index" ; if [ ! -d $out/$toolidx ]; then rapmap quasiindex -t $out/ALL_transcripts.fasta -i $out/$toolidx; fi ;;
R) toolidx="ALL_transcripts_rapmap_index" ; if [ ! -d $out/$toolidx ]; then rapmap quasiindex -t $out/ALL_transcripts.fasta -p -x $PROCESSORS -i $out/$toolidx; fi ;;
H) toolidx="ALL_transcripts_hpg_index" ; if [ ! -d $out/$toolidx ]; then mkdir $out/$toolidx; hpg-aligner build-sa-index -g $out/ALL_transcripts.fasta -i $out/$toolidx; fi ;;
esac
echo -e "\nIndex built : $out/$toolidx\n"
for (( j=0; j <i; j++ ))
do
......@@ -100,12 +100,12 @@ if [ $RECAT == "no" ]; then
else
fastq=" -1 "$INDIR"/"${fasta_array[$k]}".L.fastq -2 "$INDIR"/"${fasta_array[$k]}".R.fastq"
fi
bowtie -p $PROCESSORS $ADDOPT -a --trim5 $TRIM5 --trim3 $TRIM3 --suppress 1,2,4,5,6,7,8 $out/$toolidx/$toolidx $fastq > $out/${fasta_array[$k]}".mapping"
bowtie -p $PROCESSORS $ADDOPT -a --trim5 $TRIM5 --trim3 $TRIM3 --chunkmbs 2000 --suppress 1,2,4,5,6,7,8 $out/$toolidx/$toolidx $fastq | \
awk -v reads=$reads -v refseqs=$refseqALL 'BEGIN{OFS="\t"; while ((getline sequ < refseqs) > 0) {split(sequ,a,"\t");ctg[a[1]] = 0; ctgsize[a[1]]= a[2];}; close(refseqs) } {ctg[$1]++}
END{
print "Contig", reads;
for (i in ctg) totRPK += ctg[i]/ctgsize[i];
for (i in ctg) {if (totRPK > 0) {print i, (ctg[i]/ctgsize[i])*(1/totRPK)*1000000 } else {print i,"0"}} }' < $out/${fasta_array[$k]}".mapping" > $fileout
for (i in ctg) {if (totRPK > 0) {print i, (ctg[i]/ctgsize[i])*(1/totRPK)*1000000 } else {print i,"0"}} }' > $fileout
;;
B2) if [ $MODE == "u" ]
then
......@@ -379,7 +379,7 @@ fi
### miscellaneous
if [ $RECAT == "no" ]; then
mkdir utility_files_CroCo
mv *.outblast *.suspects *.blastdb.* *_index *.ctgs *.out *.all_quants *.fasta_mod *.fasta_suspect ALL_transcripts.* utility_files_CroCo/
mv *.outblast *.suspects *.blastdb.* *_index *.ctgs *.out *.all_quants *.fasta_mod *.fasta_suspect utility_files_CroCo/
fi
cd ../
......
......@@ -4,7 +4,7 @@ FOLD=2 # how many fold enrichment of correct source over others is required to
MINCOV=0.2 # min coverage of contig by "own's" read to
PROCESSORS=1 # number of threads for running the tool
OUTPUTPREFIX="" # prefix of output directory that will be created
OUTPUTLEVEL=2 # "verbosity" level for outputs
OUTPUTLEVEL=1 # "verbosity" level for fasta outputs
GRAPH=no # wether to produce a graphical output of the crosscontamination network
ADDOPT="" # string that will be added to the mapper command line
TRIM5=0 # number of bases to trim from read's 5'
......@@ -13,5 +13,5 @@ FRAGLENGTH=none # average fragment length
FRAGSD=none # standard deviation of fragment length
SUSPID=95 # blast minimum id% for being a potential suspect of cross contamination
SUSPLEN=40 # blast minimum id% for being a potential suspect of cross contamination
OVEREXP=1000 # expression level (TPM) above which a transcript might be considered "overexpressed"
OVEREXP=300 # expression level (TPM) above which a transcript might be considered "overexpressed"
RECAT=no # previous CroCo output directory to be used to re-categorize transcripts
......@@ -69,7 +69,7 @@ elif [ $OUTPUTLEVEL == "3" ]; then
cat $out/$ref".togrep" | while read line; do
ctg=`echo $line | cut -d' ' -f1`
go="_clean"
if LC_ALL=C grep -F -q -w -m1 "$ctg" $out/$ref.lowcov && LC_ALL=C grep -F -q -w -m1 "$ctg" $out/$ref.all ; then go="_lowcov" # attention : $out/$ref.lowcov contient aussi les non-supect !!!
if LC_ALL=C grep -F -q -w -m1 "$ctg" $out/$ref.lowcov && LC_ALL=C grep -F -q -w -m1 "$ctg" $out/$ref.all ; then go="_lowcov" # attention : $out/$ref.lowcov contient aussi les non-supect !!!
elif LC_ALL=C grep -F -q -w -m1 "$ctg" $out/$ref.contam && LC_ALL=C grep -F -q -w -m1 "$ctg" $out/$ref.all ; then go="_contam"
elif LC_ALL=C grep -F -q -w -m1 "$ctg" $out/$ref.dubious && LC_ALL=C grep -F -q -w -m1 "$ctg" $out/$ref.all ; then go="_dubious"
elif LC_ALL=C grep -F -q -w -m1 "$ctg" $out/$ref.overexp && LC_ALL=C grep -F -q -w -m1 "$ctg" $out/$ref.all ; then go="_overexp"
......
......@@ -13,15 +13,15 @@ for f in $out"/"*".all"
tot_ctgs=`grep -c '>' $INDIR/$ff.fasta`
tot_suspects=`grep -c '>' $out/$ff.fasta_suspect`
never_suspected=$(($tot_ctgs-$tot_suspects))
clean_ctgs=`grep -c 'clean' $f`
clean_ctgs=`grep -c -w 'clean' $f`
clean_percent=`echo "scale=2; ($clean_ctgs + ($tot_ctgs-$tot_suspects) ) * 100 / $tot_ctgs " | bc -l | awk '{printf "%.2f", $0}'`
contam_ctgs=`grep -c 'contam' $f`
contam_ctgs=`grep -c -w 'contam' $f`
contam_percent=`echo "scale=2; $contam_ctgs * 100 / $tot_ctgs " | bc -l | awk '{printf "%.2f", $0}'`
dubious_ctgs=`grep -c 'dubious' $f`
dubious_ctgs=`grep -c -w 'dubious' $f`
dubious_percent=`echo "scale=2; $dubious_ctgs * 100 / $tot_ctgs " | bc -l | awk '{printf "%.2f", $0}'`
lowcov_ctgs=`grep -c 'lowcov' $f`
lowcov_ctgs=`grep -c -w 'lowcov' $f`
lowcov_percent=`echo "scale=2; $lowcov_ctgs * 100 / $tot_ctgs " | bc -l | awk '{printf "%.2f", $0}'`
overexp_ctgs=`grep -c 'overexp' $f`
overexp_ctgs=`grep -c -w 'overexp' $f`
overexp_percent=`echo "scale=2; $overexp_ctgs * 100 / $tot_ctgs " | bc -l | awk '{printf "%.2f", $0}'`
echo -e "$ff\t"$tot_ctgs"\t"$never_suspected"\t"$tot_suspects"\t"$clean_ctgs"\t"$lowcov_ctgs"\t"$overexp_ctgs"\t"$dubious_ctgs"\t"$contam_ctgs"\t"$clean_percent"\t"$lowcov_percent"\t"$overexp_percent"\t"$dubious_percent"\t"$contam_percent >> $out"/CroCo_summary"
#sed 's/\./,/g' $out"/CroCo_summary" > $out"/CroCo_summary.tmp"
......
......@@ -13,15 +13,15 @@ for f in $out"/"*".all"
tot_ctgs=`grep -c '>' $INDIR/$ff.fasta`
tot_suspects=`grep -c '>' $out/$ff.fasta_suspect`
never_suspected=$(($tot_ctgs-$tot_suspects))
clean_ctgs=`grep -c 'clean' $f`
clean_ctgs=`grep -c -w 'clean' $f`
clean_percent=`echo "scale=2; ($clean_ctgs + ($tot_ctgs-$tot_suspects) ) * 100 / $tot_ctgs " | bc -l | awk '{printf "%.2f", $0}'`
contam_ctgs=`grep -c 'contam' $f`
contam_ctgs=`grep -c -w 'contam' $f`
contam_percent=`echo "scale=2; $contam_ctgs * 100 / $tot_ctgs " | bc -l | awk '{printf "%.2f", $0}'`
dubious_ctgs=`grep -c 'dubious' $f`
dubious_ctgs=`grep -c -w 'dubious' $f`
dubious_percent=`echo "scale=2; $dubious_ctgs * 100 / $tot_ctgs " | bc -l | awk '{printf "%.2f", $0}'`
lowcov_ctgs=`grep -c 'lowcov' $f`
lowcov_ctgs=`grep -c -w 'lowcov' $f`
lowcov_percent=`echo "scale=2; $lowcov_ctgs * 100 / $tot_ctgs " | bc -l | awk '{printf "%.2f", $0}'`
overexp_ctgs=`grep -c 'overexp' $f`
overexp_ctgs=`grep -c -w 'overexp' $f`
overexp_percent=`echo "scale=2; $overexp_ctgs * 100 / $tot_ctgs " | bc -l | awk '{printf "%.2f", $0}'`
echo -e "$ff\t"$tot_ctgs"\t"$never_suspected"\t"$tot_suspects"\t"$clean_ctgs"\t"$lowcov_ctgs"\t"$overexp_ctgs"\t"$dubious_ctgs"\t"$contam_ctgs"\t"$clean_percent"\t"$lowcov_percent"\t"$overexp_percent"\t"$dubious_percent"\t"$contam_percent >> $out"/CroCo_summary"
#sed 's/\./,/g' $out"/CroCo_summary" > $out"/CroCo_summary.tmp"
......
......@@ -2,41 +2,41 @@ function printUsage(){
echo -e "\n`basename $0` is a program that can detect potential cross-contaminations in assembled transcriptomes using sequencing reads to find true origin of transcripts.
Usage :
$0 [--mode p|u] [--tool B|B2|K|R|S] [--fold-threshold INT] [--minimum-coverage FLOAT] [--threads INT] [--output-prefix STR] [--output-level 1|2|3] [--graph yes|no] [--trim5 INT] [--trim3 INT] [--frag-length FLOAT] [--frag-sd FLOAT] [--suspect-id INT] [--suspect-len INT] [--add-option STR] [--recat STR]
$0 [--mode p|u] [--tool B|B2|K|R|S] [--fold-threshold INT] [--minimum-coverage FLOAT] [--threads INT] [--output-prefix STR] [--output-level 1|2|3] [--graph yes|no] [--trim5 INT] [--trim3 INT] [--frag-length FLOAT] [--frag-sd FLOAT] [--suspect-id INT] [--suspect-len INT] [--add-option 'STR'] [--recat STR]
--mode p|u :\t\t\t'p' for paired and 'u' for unpaired (default : 'p') [short: -m]
--in STR :\t\t\tName of the directory containing the fasta files to be analyzed (DEFAULT : working directory) [short: -i]
--tool B|B2|K|R|S|H :\t\t'B' for bowtie, 'B2' for bowtie2, 'K' for kallisto, 'S' for salmon, 'R' for rapmap (DEFAULT : 'B') [short: -t]
--in STR :\t\t\tName of the directory containing the input files to be analyzed (DEFAULT : working directory) [short: -i]
--tool B|K|R :\t\t'B' for bowtie, 'K' for kallisto, 'R' for rapmap (DEFAULT : 'R') [short: -t]
--fold-threshold FLOAT :\tValue between 1 and N (DEFAULT : 2) [short: -f]
--minimum-coverage FLOAT :\tValue in TPM (DEFAULT : 0.2) [short: -c]
--minimum-coverage FLOAT :\tTPM value (DEFAULT : 0.2) [short: -c]
--overexp FLOAT :\t\t\tTPM value (DEFAULT : 300) [short: -d]
--threads INT :\t\t\tNumber of threads to use (DEFAULT : 1) [short: -n]
--output-prefix STR :\t\tPrefix of output directory that will be created (DEFAULT : empty) [short: -p]
--output-level 1|2|3 :\t\tSelect the fasta files to output. '1' for none, '2' for clean and lowcov, '3' for all (DEFAULT : 2) [short: -l]
--graph yes|no :\t\tProduce graphical output using R (DEFAULT : no) [short: -g]
--add-option STR :\t\tThis text string will be understood as additional options for the mapper/quantifier used (DEFAULT : empty) [short: -a]
--recat SRT :\t\t\tName of the previous CroCo output folder of which you wish to re-categorize transcripts (DEFAULT : no) [short: -r]
--add-option 'STR' :\t\tThis text string will be understood as additional options for the mapper/quantifier used (DEFAULT : empty) [short: -a]
--recat SRT :\t\t\tName of a previous CroCo output directory you wish to use to re-categorize transcripts (DEFAULT : no) [short: -r]
--trim5 INT :\t\t\tnb bases trimmed from 5' (DEFAULT : 0) [short: -x]
--trim3 INT :\t\t\tnb bases trimmed from 3' (DEFAULT : 0) [short: -y]
--suspect-id INT :\t\tIndicate the minimum percent identity between two transcripts to suspect a cross contamination (DEFAULT : 95) [short: -s]
--suspect-len INT :\t\tIndicate the minimum length of an alignment between two transcripts to suspect a cross contamination (DEFAULT : 40) [short: -w]
--frag-length FLOAT :\t\tEstimated average fragment length (no default value). Only used in specific combinations of --mode and --tool [short: -u]
--frag-sd FLOAT :\t\tEstimated standard deviation of fragment length (no default value). Only used in specific combinations of --mode and --tool [short: -v]
--recat STR :\t\t\tIndicate the name of a previous CroCo output directory to be used to re-categorize transcripts (DEFAULT : no) [short: -r]
It is good practice to redirect information about each CroCo run into an output log file using the following structure :
'| tee log_file'
'2>&1 | tee log_file'
Minimal working example :
CroCo_v0.1.sh --mode p | tee log_file
CroCo_v0.1.sh --mode p 2>&1 | tee log_file
Exhaustive example :
CroCo_v0.1.sh --mode p --in data_folder_name --tool B --fold-threshold 2 --minimum-coverage 0.2 --threads 8 --output-prefix test1_ --output-level 2 --graph yes --add-option '-v 0' --trim5 0 --trim3 0 --suspect-id 95 --suspect-len 40 --recat no | tee log_file
CroCo_v0.1.sh --mode p --in data_folder_name --tool B --fold-threshold 2 --minimum-coverage 0.2 --overexp 300 --threads 8 --output-prefix test1_ --output-level 2 --graph yes --add-option '-v 0' --trim5 0 --trim3 0 --suspect-id 95 --suspect-len 40 --recat no 2>&1 | tee log_file
Exhaustive example using shortcuts :
CroCo_v0.1.sh -m p -i data_folder_name -t B -f 2 -c 0.2 -n 8 -p test1_ -l 2 -g yes -a '-v 0' -x 0 -y 0 -s 95 -w 40 -r no | tee log_file
CroCo_v0.1.sh -m p -i data_folder_name -t B -f 2 -c 0.2 -d 300 -n 8 -p test1_ -l 2 -g yes -a '-v 0' -x 0 -y 0 -s 95 -w 40 -r no 2>&1 | tee log_file
Example for re-categorizing previous CroCo results
CroCo_v0.1.sh -i data_folder_name -r previous_CroCo_results_folder_name -f 10 -c 0.5 -g yes | tee log_file
CroCo_v0.1.sh -i data_folder_name -r previous_CroCo_results_folder_name -f 10 -c 0.5 -g yes 2>&1 | tee log_file
"
}
......@@ -54,7 +54,7 @@ function printAndUsageAndExit(){
number_re='^[0-9]+$'
float_re='^[0-9]+([.][0-9]+)?$'
ARGS=$(getopt -o m:i:f:x:y:c:t:n:p:l:g:a:u:v:s:r:w: --long mode:,in:,fold-threshold:,trim5:,trim3:,minimum-coverage:,tool:,threads:,output-prefix:,output-level:,graph:,add-option:,frag-length:,frag-sd:,suspect-id:,recat:,suspect-len: -n "$0" -- "$@");
ARGS=$(getopt -o m:i:f:x:y:c:t:n:p:l:g:a:u:v:s:r:w:d: --long mode:,in:,fold-threshold:,trim5:,trim3:,minimum-coverage:,tool:,threads:,output-prefix:,output-level:,graph:,add-option:,frag-length:,frag-sd:,suspect-id:,recat:,suspect-len:,overexp: -n "$0" -- "$@");
#Bad arguments
if [ $? -ne 0 ] || [ $# -eq 0 ];
......@@ -213,6 +213,19 @@ while true; do
fi
shift;
;;
-d|--overexp)
shift;
if [ -n "$1" ]; then
if ! [[ $1 =~ $float_re ]] ; then
printAndUsageAndExit "Value for option --overexp must be float ('$1' was given)"
else
OVEREXP=$1
fi
else
printAndUsageAndExit "You have to set a non-empty value for option --overexp"
fi
shift;
;;
-f|--fold-threshold)
shift;
if [ -n "$1" ]; then
......
......@@ -25,15 +25,15 @@ input_edges_dubious <- input_edges_dubious[!(input_edges_dubious$contamination==
rbPal <- colorRampPalette(c('ghostwhite', 'firebrick1'))
BorderrbPal <- colorRampPalette(c('grey', 'black'))
EdgesrbPal <- colorRampPalette(c('grey', 'black'))
input_nodes$Colors <- rbPal(50)[as.numeric(cut(input_nodes$NB_norm_contaminated, breaks = 10))]
input_nodes$BorderColors <- BorderrbPal(50)[as.numeric(cut(input_nodes$NB_norm_contaminated, breaks = 10))]
input_edges$Colors<- EdgesrbPal(50)[as.numeric(cut(input_edges$contamination, breaks = 10))]
input_edges2$Colors<- EdgesrbPal(50)[as.numeric(cut(input_edges2$Weight, breaks = 10))]
input_nodes_dubious$Colors <- rbPal(50)[as.numeric(cut(input_nodes_dubious$NB_norm_contaminated, breaks = 10))]
input_nodes_dubious$BorderColors <- BorderrbPal(50)[as.numeric(cut(input_nodes_dubious$NB_norm_contaminated, breaks = 10))]
input_edges_dubious$Colors<- EdgesrbPal(50)[as.numeric(cut(input_edges_dubious$contamination, breaks = 10))]
input_edges2_dubious$Colors<- EdgesrbPal(50)[as.numeric(cut(input_edges2_dubious$Weight, breaks = 10))]
input_nodes$Colors <- rbPal(50)[as.numeric(cut(input_nodes$NB_norm_contaminated, breaks = 50))]
input_nodes$BorderColors <- BorderrbPal(50)[as.numeric(cut(input_nodes$NB_norm_contaminated, breaks = 50))]
input_edges$Colors<- EdgesrbPal(50)[as.numeric(cut(input_edges$contamination, breaks = 50))]
input_edges2$Colors<- EdgesrbPal(50)[as.numeric(cut(input_edges2$Weight, breaks = 50))]
input_nodes_dubious$Colors <- rbPal(50)[as.numeric(cut(input_nodes_dubious$NB_norm_contaminated, breaks = 50))]
input_nodes_dubious$BorderColors <- BorderrbPal(50)[as.numeric(cut(input_nodes_dubious$NB_norm_contaminated, breaks = 50))]
input_edges_dubious$Colors<- EdgesrbPal(50)[as.numeric(cut(input_edges_dubious$contamination, breaks = 50))]
input_edges2_dubious$Colors<- EdgesrbPal(50)[as.numeric(cut(input_edges2_dubious$Weight, breaks = 50))]
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment