Thank you for your comments, really appreciate for the support. However, have tried to work on both options you provided and here is one of the worked options, the answers in both cases remain the same. Does the problem perhaps inherent within the sequence themselves? You may have a look on the sequence below.
> rcds[[1]]
[1] "c" "t" "c" "c" "a" "t" "g" "c" "c" "a" "c"
[12] "c" "a" "c" "a" "a" "a" "c" "c" "a" "c" "a"
[23] "a" "t" "a" "t" "t" "t" "c" "a" "a" "a" "a"
[34] "t" "a" "a" "a" "g" "t" "a" "g" "t" "g" "t"
[45] "t" "c" "t" "t" "t" "a" "g" "a" "t" "a" "t"
[56] "g" "t" "g" "c" "t" "g" "t" "g" "t" "g" "g"
[67] "c" "c" "a" "g" "t" "a" "t" "t" "t" "t" "t"
[78] "t" "t" "a" "g" "c" "a" "a" "g" "a" "g" "c"
[89] "c" "t" "g" "c" "a" "g" "a" "g" "a" "a" "a"
[100] "t" "t" "g" "g" "a" "g" "t" "a" "g" "a" "c"
[111] "a" "t" "a" "t" "t" "t" "t" "t" "t" "t" "t"
[122] "t" "g" "c" "a" "a" "a" "a" "t" "g" "g" "t"
[133] "t" "t" "a" "a" "g" "t" "t" "t" "t" "t" "c"
[144] "a" "a" "g" "a" "a" "t" "a" "c" "a" "g" "a"
[155] "t" "t" "g" "g" "a" "t" "a" "a" "a" "t" "t"
[166] "a" "g" "g" "t" "t" "g" "t" "t" "g" "a" "c"
[177] "t" "t" "a" "g" "t" "t" "a" "c" "a" "g" "g"
[188] "a" "g" "g" "t" "a" "t" "t" "a" "a" "a" "t"
[199] "a" "t" "t" "a" "t" "g" "t" "a" "g" "a" "c"
[210] "a" "t" "a" "a" "a" "a" "a" "t" "g" "a" "g"
[221] "a" "t" "c" "c" "t" "c" "c" "a" "a" "a" "a"
[232] "a" "a" "a" "t" "a" "a" "a" "c" "a" "a" "c"
[243] "a" "a" "a" "a" "a" "a" "a" "a" "t" "a" "a"
[254] "a" "c" "a" "a" "c" "a" "a" "a" "a" "a" "a"
[265] "a" "a" "a" "t" "a" "t" "g" "t" "t" "t" "a"
[276] "a" "t" "a" "t" "t" "a" "a" "a" "a" "t" "g"
[287] "a" "c" "a" "a" "t" "t" "t" "c" "t" "a" "c"
[298] "a" "t" "t" "g" "c" "t" "t" "a" "t" "t" "g"
[309] "c" "t" "c" "t" "t" "a" "t" "t" "a" "t" "a"
[320] "c" "t" "a" "c" "t" "t" "a" "t" "t" "a" "t"
[331] "t" "a" "t" "t" "t" "t" "a" "g" "t" "a" "g"
[342] "t" "g" "t" "t" "t" "t" "t" "a" "t" "a" "c"
[353] "t" "a" "t" "a" "a" "g" "a" "a" "a" "c" "a"
[364] "a" "c" "a" "a" "c" "c" "a" "c" "c" "g" "a"
[375] "a" "a" "a" "a" "g" "g" "t" "c" "t" "g" "t"
[386] "a" "a" "a" "g" "t" "a" "g" "a" "t" "a" "a"
[397] "a" "g" "a" "t" "t" "g" "t" "g" "g" "t" "a"
[408] "g" "t" "g" "g" "a" "g" "a" "g" "c" "a" "t"
[419] "t" "g" "t" "g" "t" "t" "c" "g" "t" "g" "g"
[430] "a" "t" "c" "a" "t" "g" "t" "a" "g" "c" "t"
[441] "c" "a" "t" "t" "g" "a" "g" "c" "t" "g" "c"
[452] "t" "t" "a" "g" "a" "t" "g" "c" "c" "g" "t"
[463] "a" "a" "a" "a" "a" "t" "g" "g" "a" "c" "a"
[474] "a" "a" "c" "g" "a" "a" "a" "t" "a" "t" "t"
[485] "a" "a" "g" "a" "t" "a" "g" "a" "t" "t" "c"
[496] "t" "a" "a" "g" "a" "t" "t" "t" "c" "c" "t"
[507] "c" "a" "t" "g" "c" "g" "a" "a" "t" "t" "c"
[518] "a" "c" "t" "c" "c" "c" "a" "a" "t" "t" "t"
[529] "t" "t" "a" "c" "c" "g" "t" "t" "t" "t" "a"
[540] "c" "g" "g" "a" "t" "a" "c" "t" "g" "c" "t"
[551] "g" "c" "t" "g" "a" "t" "g" "a" "g" "c" "a"
[562] "g" "c" "a" "a" "g" "a" "a" "t" "t" "t" "g"
[573] "g" "a" "a" "a" "a" "a" "c" "a" "c" "g" "g"
[584] "c" "a" "t" "c" "c" "t" "a" "t" "a" "a" "a"
[595] "a" "a" "t" "a" "a" "c" "t" "c" "c" "a" "t"
[606] "c" "t" "c" "c" "a" "a" "g" "t" "g" "a" "a"
[617] "t" "c" "c" "c" "a" "t" "a" "g" "c" "c" "c"
[628] "c" "c" "a" "a" "g" "a" "g" "g" "t" "g" "t"
[639] "g" "t" "g" "a" "a" "a" "a" "a" "t" "a" "t"
[650] "t" "g" "t" "t" "c" "a" "t" "g" "g" "g" "g"
[661] "a" "a" "c" "c" "g" "a" "t" "g" "a" "c" "t"
[672] "g" "t" "a" "c" "a" "g" "g" "t" "t" "g" "g"
[683] "g" "a" "a" "t" "a" "t" "g" "t" "t" "g" "g"
[694] "t" "g" "a" "t" "g" "a" "a"
attr(,"name")
[1] "MW856068.1"
attr(,"Annot")
[1] ">MW856068.1 African swine fever virus strain MAL/19/Karonga, complete genome"
attr(,"class")
[1] "SeqFastadna"
> uco( rcds, index = "freq")
aaa aac aag aat aca acc acg act aga agc agg agt
0 0 0 0 0 0 0 0 0 0 0 0
ata atc atg att caa cac cag cat cca ccc ccg cct
0 0 0 0 0 0 0 0 0 0 0 0
cga cgc cgg cgt cta ctc ctg ctt gaa gac gag gat
0 0 0 0 0 0 0 0 0 0 0 0
gca gcc gcg gct gga ggc ggg ggt gta gtc gtg gtt
0 0 0 0 0 0 0 0 0 0 0 0
taa tac tag tat tca tcc tcg tct tga tgc tgg tgt
0 0 0 0 0 0 0 0 0 0 0 0
tta ttc ttg ttt
0 0 0 0
> uco( rcds, index = "eff")
aaa aac aag aat aca acc acg act aga agc agg agt
0 0 0 0 0 0 0 0 0 0 0 0
ata atc atg att caa cac cag cat cca ccc ccg cct
0 0 0 0 0 0 0 0 0 0 0 0
cga cgc cgg cgt cta ctc ctg ctt gaa gac gag gat
0 0 0 0 0 0 0 0 0 0 0 0
gca gcc gcg gct gga ggc ggg ggt gta gtc gtg gtt
0 0 0 0 0 0 0 0 0 0 0 0
taa tac tag tat tca tcc tcg tct tga tgc tgg tgt
0 0 0 0 0 0 0 0 0 0 0 0
tta ttc ttg ttt
0 0 0 0
> uco( rcds, index = "rscu")
aaa aac aag aat aca acc acg act aga agc agg agt
NA NA NA NA NA NA NA NA NA NA NA NA
ata atc atg att caa cac cag cat cca ccc ccg cct
NA NA NA NA NA NA NA NA NA NA NA NA
cga cgc cgg cgt cta ctc ctg ctt gaa gac gag gat
NA NA NA NA NA NA NA NA NA NA NA NA
gca gcc gcg gct gga ggc ggg ggt gta gtc gtg gtt
NA NA NA NA NA NA NA NA NA NA NA NA
taa tac tag tat tca tcc tcg tct tga tgc tgg tgt
NA NA NA NA NA NA NA NA NA NA NA NA
tta ttc ttg ttt
NA NA NA NA
> uco( rcds, as.data.frame = TRUE)
AA codon eff freq RSCU
aaa Lys aaa 0 0 NA
aac Asn aac 0 0 NA
aag Lys aag 0 0 NA
aat Asn aat 0 0 NA
aca Thr aca 0 0 NA
acc Thr acc 0 0 NA
acg Thr acg 0 0 NA
act Thr act 0 0 NA
aga Arg aga 0 0 NA
agc Ser agc 0 0 NA
agg Arg agg 0 0 NA
agt Ser agt 0 0 NA
ata Ile ata 0 0 NA
atc Ile atc 0 0 NA
atg Met atg 0 0 NA
att Ile att 0 0 NA
caa Gln caa 0 0 NA
cac His cac 0 0 NA
cag Gln cag 0 0 NA
cat His cat 0 0 NA
cca Pro cca 0 0 NA
ccc Pro ccc 0 0 NA
ccg Pro ccg 0 0 NA
cct Pro cct 0 0 NA
cga Arg cga 0 0 NA
cgc Arg cgc 0 0 NA
cgg Arg cgg 0 0 NA
cgt Arg cgt 0 0 NA
cta Leu cta 0 0 NA
ctc Leu ctc 0 0 NA
ctg Leu ctg 0 0 NA
ctt Leu ctt 0 0 NA
gaa Glu gaa 0 0 NA
gac Asp gac 0 0 NA
gag Glu gag 0 0 NA
gat Asp gat 0 0 NA
gca Ala gca 0 0 NA
gcc Ala gcc 0 0 NA
gcg Ala gcg 0 0 NA
gct Ala gct 0 0 NA
gga Gly gga 0 0 NA
ggc Gly ggc 0 0 NA
ggg Gly ggg 0 0 NA
ggt Gly ggt 0 0 NA
gta Val gta 0 0 NA
gtc Val gtc 0 0 NA
gtg Val gtg 0 0 NA
gtt Val gtt 0 0 NA
taa Stp taa 0 0 NA
tac Tyr tac 0 0 NA
tag Stp tag 0 0 NA
tat Tyr tat 0 0 NA
tca Ser tca 0 0 NA
tcc Ser tcc 0 0 NA
tcg Ser tcg 0 0 NA
tct Ser tct 0 0 NA
tga Stp tga 0 0 NA
tgc Cys tgc 0 0 NA
tgg Trp tgg 0 0 NA
tgt Cys tgt 0 0 NA
tta Leu tta 0 0 NA
ttc Phe ttc 0 0 NA
ttg Leu ttg 0 0 NA
ttt Phe ttt 0 0 NA
>
## Use a real coding sequence:
rcds <- read.fasta("virus.fasta")
uco( rcds, index = "freq")
uco( rcds, index = "eff")
uco( rcds, index = "rscu")
uco( rcds, as.data.frame = TRUE)
Guys, anyone to help me. I used those functions as directed in uco(seqinr) package for relative synonymous codon usage (rscu) computaion the results were as shown below. The fasta file has multiple fasta sequences. What is wrong?
aaa aac aag aat aca acc acg act aga agc agg agt
0 0 0 0 0 0 0 0 0 0 0 0
ata atc atg att caa cac cag cat cca ccc ccg cct
0 0 0 0 0 0 0 0 0 0 0 0
cga cgc cgg cgt cta ctc ctg ctt gaa gac gag gat
0 0 0 0 0 0 0 0 0 0 0 0
gca gcc gcg gct gga ggc ggg ggt gta gtc gtg gtt
0 0 0 0 0 0 0 0 0 0 0 0
taa tac tag tat tca tcc tcg tct tga tgc tgg tgt
0 0 0 0 0 0 0 0 0 0 0 0
tta ttc ttg ttt
0 0 0 0
> uco( rcds, index = "eff")
aaa aac aag aat aca acc acg act aga agc agg agt
0 0 0 0 0 0 0 0 0 0 0 0
ata atc atg att caa cac cag cat cca ccc ccg cct
0 0 0 0 0 0 0 0 0 0 0 0
cga cgc cgg cgt cta ctc ctg ctt gaa gac gag gat
0 0 0 0 0 0 0 0 0 0 0 0
gca gcc gcg gct gga ggc ggg ggt gta gtc gtg gtt
0 0 0 0 0 0 0 0 0 0 0 0
taa tac tag tat tca tcc tcg tct tga tgc tgg tgt
0 0 0 0 0 0 0 0 0 0 0 0
tta ttc ttg ttt
0 0 0 0
> uco( rcds, index = "rscu")
aaa aac aag aat aca acc acg act aga agc agg agt
NA NA NA NA NA NA NA NA NA NA NA NA
ata atc atg att caa cac cag cat cca ccc ccg cct
NA NA NA NA NA NA NA NA NA NA NA NA
cga cgc cgg cgt cta ctc ctg ctt gaa gac gag gat
NA NA NA NA NA NA NA NA NA NA NA NA
gca gcc gcg gct gga ggc ggg ggt gta gtc gtg gtt
NA NA NA NA NA NA NA NA NA NA NA NA
taa tac tag tat tca tcc tcg tct tga tgc tgg tgt
NA NA NA NA NA NA NA NA NA NA NA NA
tta ttc ttg ttt
NA NA NA NA
> uco( rcds, as.data.frame = TRUE)
AA codon eff freq RSCU
aaa Lys aaa 0 0 NA
aac Asn aac 0 0 NA
aag Lys aag 0 0 NA
aat Asn aat 0 0 NA
aca Thr aca 0 0 NA
acc Thr acc 0 0 NA
acg Thr acg 0 0 NA
act Thr act 0 0 NA
aga Arg aga 0 0 NA
agc Ser agc 0 0 NA
agg Arg agg 0 0 NA
agt Ser agt 0 0 NA
ata Ile ata 0 0 NA
atc Ile atc 0 0 NA
atg Met atg 0 0 NA
att Ile att 0 0 NA
caa Gln caa 0 0 NA
cac His cac 0 0 NA
cag Gln cag 0 0 NA
cat His cat 0 0 NA
cca Pro cca 0 0 NA
ccc Pro ccc 0 0 NA
ccg Pro ccg 0 0 NA
cct Pro cct 0 0 NA
cga Arg cga 0 0 NA
cgc Arg cgc 0 0 NA
cgg Arg cgg 0 0 NA
cgt Arg cgt 0 0 NA
cta Leu cta 0 0 NA
ctc Leu ctc 0 0 NA
ctg Leu ctg 0 0 NA
ctt Leu ctt 0 0 NA
gaa Glu gaa 0 0 NA
gac Asp gac 0 0 NA
gag Glu gag 0 0 NA
gat Asp gat 0 0 NA
gca Ala gca 0 0 NA
gcc Ala gcc 0 0 NA
gcg Ala gcg 0 0 NA
gct Ala gct 0 0 NA
gga Gly gga 0 0 NA
ggc Gly ggc 0 0 NA
ggg Gly ggg 0 0 NA
ggt Gly ggt 0 0 NA
gta Val gta 0 0 NA
gtc Val gtc 0 0 NA
gtg Val gtg 0 0 NA
gtt Val gtt 0 0 NA
taa Stp taa 0 0 NA
tac Tyr tac 0 0 NA
tag Stp tag 0 0 NA
tat Tyr tat 0 0 NA
tca Ser tca 0 0 NA
tcc Ser tcc 0 0 NA
tcg Ser tcg 0 0 NA
tct Ser tct 0 0 NA
tga Stp tga 0 0 NA
tgc Cys tgc 0 0 NA
tgg Trp tgg 0 0 NA
tgt Cys tgt 0 0 NA
tta Leu tta 0 0 NA
ttc Phe ttc 0 0 NA
ttg Leu ttg 0 0 NA
ttt Phe ttt 0 0 NA
>
2 answers
## Finally have resolved that problem using arrangement of the following functions:
## Use a real coding sequence:
rcds <- read.fasta("virus.fasta")[[1]]
uco( rcds, index = "freq")
uco( rcds, index = "eff")
uco( rcds, index = "rscu")
uco( rcds, as.data.frame = TRUE, NA.rscu = NA)
The output dataframe is as indicated below:
> uco( rcds, as.data.frame = TRUE, NA.rscu = NA)
AA codon eff freq RSCU
aaa Lys aaa 16 0.068669528 1.8823529
aac Asn aac 6 0.025751073 0.9230769
aag Lys aag 1 0.004291845 0.1176471
aat Asn aat 7 0.030042918 1.0769231
aca Thr aca 7 0.030042918 1.8666667
acc Thr acc 3 0.012875536 0.8000000
acg Thr acg 2 0.008583691 0.5333333
act Thr act 3 0.012875536 0.8000000
aga Arg aga 8 0.034334764 3.6923077
agc Ser agc 0 0.000000000 0.0000000
agg Arg agg 2 0.008583691 0.9230769
agt Ser agt 6 0.025751073 2.5714286
ata Ile ata 6 0.025751073 1.0588235
atc Ile atc 3 0.012875536 0.5294118
atg Met atg 4 0.017167382 1.0000000
att Ile att 8 0.034334764 1.4117647
caa Gln caa 4 0.017167382 1.3333333
cac His cac 2 0.008583691 1.3333333
cag Gln cag 2 0.008583691 0.6666667
cat His cat 1 0.004291845 0.6666667
cca Pro cca 4 0.017167382 2.0000000
ccc Pro ccc 1 0.004291845 0.5000000
ccg Pro ccg 1 0.004291845 0.5000000
cct Pro cct 2 0.008583691 1.0000000
cga Arg cga 2 0.008583691 0.9230769
cgc Arg cgc 0 0.000000000 0.0000000
cgg Arg cgg 0 0.000000000 0.0000000
cgt Arg cgt 1 0.004291845 0.4615385
cta Leu cta 1 0.004291845 0.2857143
ctc Leu ctc 3 0.012875536 0.8571429
ctg Leu ctg 3 0.012875536 0.8571429
ctt Leu ctt 2 0.008583691 0.5714286
gaa Glu gaa 2 0.008583691 0.5714286
gac Asp gac 1 0.004291845 0.5000000
gag Glu gag 5 0.021459227 1.4285714
gat Asp gat 3 0.012875536 1.5000000
gca Ala gca 5 0.021459227 2.5000000
gcc Ala gcc 1 0.004291845 0.5000000
gcg Ala gcg 0 0.000000000 0.0000000
gct Ala gct 2 0.008583691 1.0000000
gga Gly gga 4 0.017167382 2.0000000
ggc Gly ggc 0 0.000000000 0.0000000
ggg Gly ggg 1 0.004291845 0.5000000
ggt Gly ggt 3 0.012875536 1.5000000
gta Val gta 2 0.008583691 1.1428571
gtc Val gtc 0 0.000000000 0.0000000
gtg Val gtg 2 0.008583691 1.1428571
gtt Val gtt 3 0.012875536 1.7142857
taa Stp taa 11 0.047210300 1.2222222
tac Tyr tac 4 0.017167382 0.5333333
tag Stp tag 8 0.034334764 0.8888889
tat Tyr tat 11 0.047210300 1.4666667
tca Ser tca 2 0.008583691 0.8571429
tcc Ser tcc 4 0.017167382 1.7142857
tcg Ser tcg 1 0.004291845 0.4285714
tct Ser tct 1 0.004291845 0.4285714
tga Stp tga 8 0.034334764 0.8888889
tgc Cys tgc 4 0.017167382 1.1428571
tgg Trp tgg 6 0.025751073 1.0000000
tgt Cys tgt 3 0.012875536 0.8571429
tta Leu tta 4 0.017167382 1.1428571
ttc Phe ttc 4 0.017167382 0.6153846
ttg Leu ttg 8 0.034334764 2.2857143
ttt Phe ttt 9 0.038626609 1.3846154
>
Thank you again in advance!
It seems the uco function only works on a sequence at a time. When you apply it to an object containing multiple sequences, it doesn't know which one to use so it runs on a empty string.
You can use names(rcds) to print the list of sequences in your fasta file.
Then, you can apply the uco function to each sequence separately, accessing them via rcds$<name of the sequence> or rcds[[1]]. A loop or apply will do the trick to calculate it for all the sequences.
Log in to answer this question.
Tip: use the code
formatting when posting examples, it will make it your question easier to read. For this time I've reformatted it for you.