For R1 Primer, you put down "${all_answers[6]}" which gave you the mark ${MARR1primers_display}.
`;
@@ -856,13 +856,7 @@ function submitAnswers() {
);
all_marks.push(studentMark, studentMarkPercentage);
- document.getElementById("options_label").innerHTML =
- "Would you like to see feedback on your answers or start a new assignment?";
- document.getElementById("seeFeedback").removeAttribute("hidden");
-
showFeedback();
-
- $("#feedbackButton").click();
}, 750);
}
diff --git a/core/scripts/crispr_scripts.min.js b/core/scripts/crispr_scripts.min.js
index 719bb19..512c6bb 100644
--- a/core/scripts/crispr_scripts.min.js
+++ b/core/scripts/crispr_scripts.min.js
@@ -24,4 +24,4 @@ let selection_inMode="practice";const listOfGenes=["eBFP","ACTN3","HBB","CCR5","
- `,e+='
',e+='',e+='',e+='This would be your off-target score for your gRNA. NOTE: This input only takes numbers',e+="
",e+='
',e+='',e+='',e+='This would be your forward primer (F1) for your gRNA',e+="
",e+='
',e+='',e+='',e+='This would be your reverse primer (R1) for your gRNA',e+="
",e+='Save',e+='Submit',e+="",e+="
",$("#work").append(e)}else(gene_backgroundInfo===""||!gene_backgroundInfo||!backgroundInfo?.[0].gene_list[current_gene])&&alert("Error code lFS50-66 occurred. Please contact admin or TA!")}function isNumberOrDashKey(e){const n=e.which?e.which:e.keyCode;return!(n!==46&&n!==45&&n>31&&(n<48||n>57))}let MARgRNAseq=!1,MARgRNAseq_degree=0,MARPAMseq=!1,MARCutPos=!1,MARstrand=!1,MAROffTarget=!1,MAROffTarget_degree=0,MAROffTarget_aboveOpt=!1,MAROffTarget_above35=!1,MAROffTarget_onlyOption=!1,MARF1primers=!1,MARR1primers=!1,possible_comparable_answers=[],correctNucleotideIncluded=!1,true_counts=0,checkAnswers_executed=!1;function checkAnswers(){MARgRNAseq=!1,MARgRNAseq_degree=0,MARPAMseq=!1,MARCutPos=!1,MARstrand=!1,correctNucleotideIncluded=!1,true_counts=0;const e=gene_backgroundInfo.gene_list[current_gene]["Target position"]-1,n=document?.getElementById("sequence_input")?.value?.trim()||void 0;if(possible_comparable_answers=[],n)for(const t of benchling_gRNA_outputs.gene_list[current_gene])t.Sequence===n&&possible_comparable_answers.push(t);if(possible_comparable_answers.length>0)for(const t of possible_comparable_answers){if(true_counts=0,correctNucleotideIncluded=!1,t.Strand===1){const i=t.Position-1-1+3,r=t.Position-1-17;e>=r&&e<=i&&(correctNucleotideIncluded=!0)}else if(t.Strand===-1){const i=t.Position-1+17,r=t.Position-1-3;e>=r&&e<=i&&(correctNucleotideIncluded=!0)}if(correctNucleotideIncluded){let i,r;if(t.Strand===1?(i=t.Position-1+2,r=t.Position-1+4,document.getElementById("strand_input").value==="Sense (+)"&&(MARstrand=!0,true_counts+=1)):t.Strand===-1&&(i=t.Position-1-2,r=t.Position-1-4,document.getElementById("strand_input").value==="Antisense (-)"&&(MARstrand=!0,true_counts+=1)),e>=i&&e<=r?(MARgRNAseq=!1,MARgRNAseq_degree=0):e>=t.Position-1+1&&e<=t.Position-1+10||e<=t.Position-1-1&&e>=t.Position-1-10?(MARgRNAseq=!0,MARgRNAseq_degree=1,true_counts+=1):e>=t.Position-1&&e<=t.Position-1+20||e<=t.Position-1&&e>=t.Position-1-20?(MARgRNAseq=!0,MARgRNAseq_degree=2,true_counts+=1):(e>=t.Position-1&&e<=t.Position-1+30||e<=t.Position-1&&e>=t.Position-1-30)&&(MARgRNAseq=!0,MARgRNAseq_degree=3,true_counts+=1),MARgRNAseq){const o=t;o.Position&&parseInt(o.Position,10)===parseInt(document.getElementById("position_input").value,10)?(MARCutPos=!0,true_counts+=1):(o.Position===null||o.Position===void 0)&&alert("Error code cA302-307: retrieving server information on 'Position' answers occurred. Please contact admin or TA!"),(o.PAM||o.PAM)&&o.PAM===document.getElementById("pam_input").value.trim()?(MARPAMseq=!0,true_counts+=1):(o.PAM===null||o.PAM===void 0)&&alert("Error code cA311-317: retrieving server information on 'PAM' answers occurred. Please contact admin or TA!"),o["Specificity Score"]||o["Specificity Score"]?checkOffTarget(o["Specificity Score"]):(o["Specificity Score"]===null||o["Specificity Score"]===void 0)&&alert("Error code cA342-348: retrieving server information on 'Specificity Score' answers occurred. Please contact admin or TA!"),checkF1Primers(document?.getElementById("sequence_input")?.value?.trim()||""),checkR1Primers(document?.getElementById("sequence_input")?.value?.trim()||"")}}}checkAnswers_executed=!0}let offtarget_List=[],offtarget_dict={},offtarget_dictParse=[],offtarget_Use=[];function checkOffTarget(e){MAROffTarget=!1,MAROffTarget_degree=0,MAROffTarget_aboveOpt=!1,MAROffTarget_above35=!1,MAROffTarget_onlyOption=!1;const n=Math.floor(e),t=Math.ceil(e),i=parseInt(document.getElementById("offtarget_input").value,10);if(correctNucleotideIncluded&&MARgRNAseq&&i>=n&&i<=t&&(MAROffTarget=!0,true_counts+=1),MAROffTarget){const r=parseInt(document.getElementById("position_input").value,10)+35,o=parseInt(document.getElementById("position_input").value,10)-35;offtarget_List=[],offtarget_dict={},offtarget_dictParse=[],offtarget_Use=[];for(let a=0;a=o&&benchling_gRNA_outputs.gene_list[current_gene][a].Position<=r&&benchling_gRNA_outputs.gene_list[current_gene][a]["Specificity Score"]&&(offtarget_List.push(benchling_gRNA_outputs.gene_list[current_gene][a]["Specificity Score"]),offtarget_dict[a]=benchling_gRNA_outputs.gene_list[current_gene][a]["Specificity Score"],offtarget_dictParse.push(a));let l=!0;Math.max.apply(null,offtarget_List)<35&&(l=!1);const u=Math.max.apply(null,offtarget_List),c=getOffTargetOptimalValue(u);i>=c?(MAROffTarget_aboveOpt=!0,MAROffTarget_above35=!0,MAROffTarget_degree=1):i>=35?(MAROffTarget_above35=!0,Math.max.apply(null,offtarget_List)<80?MAROffTarget_degree=1:MAROffTarget_degree=2):l||(MAROffTarget_onlyOption=!0,MAROffTarget_degree=3)}}function getOffTargetOptimalValue(e){const n=e-e*.2;return n>80||n<35?80:n}let possible_F1_primers=[];function checkF1Primers(e){MARF1primers=!1,possible_F1_primers=[];const n="TAATACGACTCACTATAG";let t=!0;e[0]==="G"&&(t=!1);for(let i=16;i<=20;i+=1)possible_F1_primers.push(n+e.slice(0,i));if(!t)for(let i=16;i<=20;i+=1)possible_F1_primers.push(n+e.slice(1,i));possible_F1_primers.includes(document.getElementById("f1_input").value.trim())&&(MARF1primers=!0)}let possible_R1_primers=[];const complementary_nt_dict={A:"T",T:"A",C:"G",G:"C"};function checkR1Primers(e){MARR1primers=!1,possible_R1_primers=[];const n="TTCTAGCTCTAAAAC";let t="";for(const i of e)t=complementary_nt_dict[i]+t;for(let i=19;i<=20;i+=1)possible_R1_primers.push(n+t.slice(0,i));possible_R1_primers.includes(document.getElementById("r1_input").value.trim())&&(MARR1primers=!0)}function createComplementarySeq(e){let n="";for(const t of e)n=complementary_nt_dict[t]+n;return n}let studentMark=0,studentMarkPercentage=0;const markTotal=10;function markAnswers(){studentMark=0,checkAnswers_executed||checkAnswers(),checkAnswers_executed&&(MARgRNAseq&&(MARgRNAseq_degree===1?studentMark+=2:MARgRNAseq_degree===2?studentMark+=1:MARgRNAseq_degree===3&&(studentMark+=.5)),MARPAMseq&&(studentMark+=2),MAROffTarget&&(MAROffTarget_degree===1?studentMark+=2:MAROffTarget_degree===2?studentMark+=1:MAROffTarget_degree===3&&(studentMark+=.5)),MARF1primers&&(studentMark+=2),MARR1primers&&(studentMark+=2),studentMarkPercentage=(studentMark/markTotal*100).toFixed(2),studentMarkPercentage>100?studentMarkPercentage=100:studentMarkPercentage<0&&(studentMarkPercentage=0))}function showFeedback(){$("#mainContainer").empty();let e="
You would only receive feedback on your practice attempts and not your final assignments.
";e+="
The assignment itself is marked out of 10 marks with 2 marks for each input excluding gRNA strand direction, cut position and target region range (these three values are used to calculate if you have the right answer or not which means they are still crucial that they are still correct).
",e+="
The following is the breakdown of what marks you would have received and why you would have gotten them:
",e+=`
Mark: ${all_marks[0]}/10 (${all_marks[1]})
`;let n=0,t="Your gRNA sequence was wrong and not found in the Benchling gRNA outputs. Either you made a typo or this answer was not correct and did not contain the target cut site within an acceptable range.";MARgRNAseq&&(MARgRNAseq_degree===1?(n=2,t="This means your answer was correct and you received full marks."):MARgRNAseq_degree===2?(n=1,t="This means your sequence was partially correct as it contains the target sequence within a 20bp range but was not optimal. One mark."):MARgRNAseq_degree===3&&(n=.5,t="This means your sequence was not wrong (therefore was still correct) but there were better options out there. I recommend you try this practice assignment again. Still worth some marks though (half a mark)."));let i=0,r="Your PAM sequence was wrong and not found relative to your gRNA sequence. Either you made a typo or this answer was not correct. Either it contained the cut site within the PAM site or it was not an NGG or NAG PAM site (SciGrade only accepts either of those two PAM sites).";MARPAMseq&&(i=2,r="This means your answer was correct and you received full marks.");let o=0,l="Your off-target score was wrong. Either it was not above/within the optimal range (or above 35) or the last-resort option.";MAROffTarget&&(MAROffTarget_degree===1?(o=2,l="This means your answer was correct while above/within the optimal and you received full marks."):MAROffTarget_degree===2?(o=1,l="This means your answer was technically correct as its on-target value was above 35."):MAROffTarget_degree===3&&(o=.5,l="This means your answer was partially correct as it was found to be your only option is solely based on the target region range you selected."));let u=0,c="";for(let s=0;s",e+="
For gRNA Strand Sequence, you put down "${all_answers[0]}" which gave you the mark ${n}.
`,e+=t,e+="
",e+="
",e+="
",$("#mainContainer").append(e),e="
",e+="
",e+="
",e+="",e+=`gRNA PAM Sequence: ${i}/2`,e+="",e+="
",e+="
",e+="
",e+="
",e+=`
For gRNA PAM Sequence, you put down "${all_answers[1]}" which gave you the mark ${i}.
`,e+=r,e+="
",e+="
",e+="
",$("#mainContainer").append(e),e="
",e+="
",e+="
",e+="",e+=`Off-target Score: ${o}/2`,e+="",e+="
",e+="
",e+="
",e+="
",e+=`
For Off-Target Score, you put down "${all_answers[4]}" which gave you the mark ${o}.
`,e+=l,e+="
",e+="
",e+="
",$("#mainContainer").append(e),e="
",e+="
",e+="
",e+="",e+=`F1 Primer: ${u}/2`,e+="",e+="
",e+="
",e+="
",e+="
",e+=`
For F1 Primer, you put down "${all_answers[5]}" which gave you the mark ${u}.
`,e+=a,e+="
",e+="
",e+="
",$("#mainContainer").append(e),e="
",e+="
",e+="
",e+="",e+=`R1 Primer: ${f}/2`,e+="",e+="
",e+="
",e+="
",e+="
",e+=`
For R1 Primer, you put down "${all_answers[6]}" which gave you the mark ${f}.
`,e+=p,e+="
",e+="
",e+="
",$("#mainContainer").append(e),e=" ",e+="
If at any point you wish to dispute marks, please contact your TA or professor once you completed your assignment. If you have found a bug in our SciGrade marking system, please contact your professor or our admin.
",e+=" ",e+='
Back to Assignments
',$("#mainContainer").append(e)}function showNewInput(e,n,t){document.getElementById(String(e)).value===String(n)?document.getElementById(String(t)).removeAttribute("hidden"):document.getElementById(String(t)).setAttribute("hidden",!0)}let completed_assignments=[],all_answers=[],all_outputs=[],all_marks=[];function submitAnswers(){all_answers=[],all_outputs=[],all_marks=[],checkAnswers(),setTimeout(()=>{markAnswers(),all_answers.push(document?.getElementById("sequence_input")?.value?.trim()||"",document.getElementById("pam_input").value.trim(),document.getElementById("position_input").value,document.getElementById("strand_input").value,document.getElementById("offtarget_input").value,document.getElementById("f1_input").value.trim(),document.getElementById("r1_input").value.trim()),all_outputs.push(MARstrand,MARgRNAseq,MARgRNAseq_degree,MARCutPos,MARPAMseq,MAROffTarget,MAROffTarget_degree,MAROffTarget_aboveOpt,MAROffTarget_above35,MAROffTarget_onlyOption,MARF1primers,MARR1primers),all_marks.push(studentMark,studentMarkPercentage),document.getElementById("options_label").innerHTML="Would you like to see feedback on your answers or start a new assignment?",document.getElementById("seeFeedback").removeAttribute("hidden"),showFeedback(),$("#feedbackButton").click()},750)}function IfPressEnter(e,n){(e.which===13||e.keyCode===13)&&$(`#${n}`).click()}function backToAssignments(){redirectCRISPR(),$("#practice").click()}$(()=>{$("form").submit(()=>!1)}),typeof module<"u"&&module.exports&&(module.exports={getOffTargetOptimalValue,isNumberOrDashKey,createComplementarySeq,checkOffTarget,checkF1Primers,checkR1Primers,fillGeneList,get MAROffTarget(){return MAROffTarget},get MAROffTarget_degree(){return MAROffTarget_degree},get MARF1primers(){return MARF1primers},get MARR1primers(){return MARR1primers},__setTestState(e={}){e.correctNucleotideIncluded!==void 0&&(correctNucleotideIncluded=e.correctNucleotideIncluded),e.MARgRNAseq!==void 0&&(MARgRNAseq=e.MARgRNAseq),e.benchling_gRNA_outputs!==void 0&&(benchling_gRNA_outputs=e.benchling_gRNA_outputs),e.current_gene!==void 0&&(current_gene=e.current_gene),e.gene_backgroundInfo!==void 0&&(gene_backgroundInfo=e.gene_backgroundInfo)},__resetState(){MAROffTarget=!1,MAROffTarget_degree=0,MARF1primers=!1,MARR1primers=!1,MAROffTarget_aboveOpt=!1,MAROffTarget_above35=!1,MAROffTarget_onlyOption=!1,correctNucleotideIncluded=!1,MARgRNAseq=!1}});
+ `,e+='
',e+='',e+='',e+='This would be your off-target score for your gRNA. NOTE: This input only takes numbers',e+="
",e+='
',e+='',e+='',e+='This would be your forward primer (F1) for your gRNA',e+="
",e+='
',e+='',e+='',e+='This would be your reverse primer (R1) for your gRNA',e+="
",e+='Save',e+='Submit',e+="",e+="
",$("#work").append(e)}else(gene_backgroundInfo===""||!gene_backgroundInfo||!backgroundInfo?.[0].gene_list[current_gene])&&alert("Error code lFS50-66 occurred. Please contact admin or TA!")}function isNumberOrDashKey(e){const n=e.which?e.which:e.keyCode;return!(n!==46&&n!==45&&n>31&&(n<48||n>57))}let MARgRNAseq=!1,MARgRNAseq_degree=0,MARPAMseq=!1,MARCutPos=!1,MARstrand=!1,MAROffTarget=!1,MAROffTarget_degree=0,MAROffTarget_aboveOpt=!1,MAROffTarget_above35=!1,MAROffTarget_onlyOption=!1,MARF1primers=!1,MARR1primers=!1,possible_comparable_answers=[],correctNucleotideIncluded=!1,true_counts=0,checkAnswers_executed=!1;function checkAnswers(){MARgRNAseq=!1,MARgRNAseq_degree=0,MARPAMseq=!1,MARCutPos=!1,MARstrand=!1,correctNucleotideIncluded=!1,true_counts=0;const e=gene_backgroundInfo.gene_list[current_gene]["Target position"]-1,n=document?.getElementById("sequence_input")?.value?.trim()||void 0;if(possible_comparable_answers=[],n)for(const t of benchling_gRNA_outputs.gene_list[current_gene])t.Sequence===n&&possible_comparable_answers.push(t);if(possible_comparable_answers.length>0)for(const t of possible_comparable_answers){if(true_counts=0,correctNucleotideIncluded=!1,t.Strand===1){const i=t.Position-1-1+3,r=t.Position-1-17;e>=r&&e<=i&&(correctNucleotideIncluded=!0)}else if(t.Strand===-1){const i=t.Position-1+17,r=t.Position-1-3;e>=r&&e<=i&&(correctNucleotideIncluded=!0)}if(correctNucleotideIncluded){let i,r;if(t.Strand===1?(i=t.Position-1+2,r=t.Position-1+4,document.getElementById("strand_input").value==="Sense (+)"&&(MARstrand=!0,true_counts+=1)):t.Strand===-1&&(i=t.Position-1-2,r=t.Position-1-4,document.getElementById("strand_input").value==="Antisense (-)"&&(MARstrand=!0,true_counts+=1)),e>=i&&e<=r?(MARgRNAseq=!1,MARgRNAseq_degree=0):e>=t.Position-1+1&&e<=t.Position-1+10||e<=t.Position-1-1&&e>=t.Position-1-10?(MARgRNAseq=!0,MARgRNAseq_degree=1,true_counts+=1):e>=t.Position-1&&e<=t.Position-1+20||e<=t.Position-1&&e>=t.Position-1-20?(MARgRNAseq=!0,MARgRNAseq_degree=2,true_counts+=1):(e>=t.Position-1&&e<=t.Position-1+30||e<=t.Position-1&&e>=t.Position-1-30)&&(MARgRNAseq=!0,MARgRNAseq_degree=3,true_counts+=1),MARgRNAseq){const o=t;o.Position&&parseInt(o.Position,10)===parseInt(document.getElementById("position_input").value,10)?(MARCutPos=!0,true_counts+=1):(o.Position===null||o.Position===void 0)&&alert("Error code cA302-307: retrieving server information on 'Position' answers occurred. Please contact admin or TA!"),(o.PAM||o.PAM)&&o.PAM===document.getElementById("pam_input").value.trim()?(MARPAMseq=!0,true_counts+=1):(o.PAM===null||o.PAM===void 0)&&alert("Error code cA311-317: retrieving server information on 'PAM' answers occurred. Please contact admin or TA!"),o["Specificity Score"]||o["Specificity Score"]?checkOffTarget(o["Specificity Score"]):(o["Specificity Score"]===null||o["Specificity Score"]===void 0)&&alert("Error code cA342-348: retrieving server information on 'Specificity Score' answers occurred. Please contact admin or TA!"),checkF1Primers(document?.getElementById("sequence_input")?.value?.trim()||""),checkR1Primers(document?.getElementById("sequence_input")?.value?.trim()||"")}}}checkAnswers_executed=!0}let offtarget_List=[],offtarget_dict={},offtarget_dictParse=[],offtarget_Use=[];function checkOffTarget(e){MAROffTarget=!1,MAROffTarget_degree=0,MAROffTarget_aboveOpt=!1,MAROffTarget_above35=!1,MAROffTarget_onlyOption=!1;const n=Math.floor(e),t=Math.ceil(e),i=parseInt(document.getElementById("offtarget_input").value,10);if(correctNucleotideIncluded&&MARgRNAseq&&i>=n&&i<=t&&(MAROffTarget=!0,true_counts+=1),MAROffTarget){const r=parseInt(document.getElementById("position_input").value,10)+35,o=parseInt(document.getElementById("position_input").value,10)-35;offtarget_List=[],offtarget_dict={},offtarget_dictParse=[],offtarget_Use=[];for(let a=0;a=o&&benchling_gRNA_outputs.gene_list[current_gene][a].Position<=r&&benchling_gRNA_outputs.gene_list[current_gene][a]["Specificity Score"]&&(offtarget_List.push(benchling_gRNA_outputs.gene_list[current_gene][a]["Specificity Score"]),offtarget_dict[a]=benchling_gRNA_outputs.gene_list[current_gene][a]["Specificity Score"],offtarget_dictParse.push(a));let l=!0;Math.max.apply(null,offtarget_List)<35&&(l=!1);const c=Math.max.apply(null,offtarget_List),u=getOffTargetOptimalValue(c);i>=u?(MAROffTarget_aboveOpt=!0,MAROffTarget_above35=!0,MAROffTarget_degree=1):i>=35?(MAROffTarget_above35=!0,Math.max.apply(null,offtarget_List)<80?MAROffTarget_degree=1:MAROffTarget_degree=2):l||(MAROffTarget_onlyOption=!0,MAROffTarget_degree=3)}}function getOffTargetOptimalValue(e){const n=e-e*.2;return n>80||n<35?80:n}let possible_F1_primers=[];function checkF1Primers(e){MARF1primers=!1,possible_F1_primers=[];const n="TAATACGACTCACTATAG";let t=!0;e[0]==="G"&&(t=!1);for(let i=16;i<=20;i+=1)possible_F1_primers.push(n+e.slice(0,i));if(!t)for(let i=16;i<=20;i+=1)possible_F1_primers.push(n+e.slice(1,i));possible_F1_primers.includes(document.getElementById("f1_input").value.trim())&&(MARF1primers=!0)}let possible_R1_primers=[];const complementary_nt_dict={A:"T",T:"A",C:"G",G:"C"};function checkR1Primers(e){MARR1primers=!1,possible_R1_primers=[];const n="TTCTAGCTCTAAAAC";let t="";for(const i of e)t=complementary_nt_dict[i]+t;for(let i=19;i<=20;i+=1)possible_R1_primers.push(n+t.slice(0,i));possible_R1_primers.includes(document.getElementById("r1_input").value.trim())&&(MARR1primers=!0)}function createComplementarySeq(e){let n="";for(const t of e)n=complementary_nt_dict[t]+n;return n}let studentMark=0,studentMarkPercentage=0;const markTotal=10;function markAnswers(){studentMark=0,checkAnswers_executed||checkAnswers(),checkAnswers_executed&&(MARgRNAseq&&(MARgRNAseq_degree===1?studentMark+=2:MARgRNAseq_degree===2?studentMark+=1:MARgRNAseq_degree===3&&(studentMark+=.5)),MARPAMseq&&(studentMark+=2),MAROffTarget&&(MAROffTarget_degree===1?studentMark+=2:MAROffTarget_degree===2?studentMark+=1:MAROffTarget_degree===3&&(studentMark+=.5)),MARF1primers&&(studentMark+=2),MARR1primers&&(studentMark+=2),studentMarkPercentage=(studentMark/markTotal*100).toFixed(2),studentMarkPercentage>100?studentMarkPercentage=100:studentMarkPercentage<0&&(studentMarkPercentage=0))}function showFeedback(){$("#mainContainer").empty();let e="
You would only receive feedback on your practice attempts and not your final assignments.
";e+="
The assignment itself is marked out of 10 marks with 2 marks for each input excluding gRNA strand direction, cut position and target region range (these three values are used to calculate if you have the right answer or not which means they are still crucial that they are still correct).
",e+="
The following is the breakdown of what marks you would have received and why you would have gotten them:
",e+=`
Mark: ${all_marks[0]}/10 (${all_marks[1]})
`;let n=0,t="Your gRNA sequence was wrong and not found in the Benchling gRNA outputs. Either you made a typo or this answer was not correct and did not contain the target cut site within an acceptable range.";MARgRNAseq&&(MARgRNAseq_degree===1?(n=2,t="This means your answer was correct and you received full marks."):MARgRNAseq_degree===2?(n=1,t="This means your sequence was partially correct as it contains the target sequence within a 20bp range but was not optimal. One mark."):MARgRNAseq_degree===3&&(n=.5,t="This means your sequence was not wrong (therefore was still correct) but there were better options out there. I recommend you try this practice assignment again. Still worth some marks though (half a mark)."));let i=0,r="Your PAM sequence was wrong and not found relative to your gRNA sequence. Either you made a typo or this answer was not correct. Either it contained the cut site within the PAM site or it was not an NGG or NAG PAM site (SciGrade only accepts either of those two PAM sites).";MARPAMseq&&(i=2,r="This means your answer was correct and you received full marks.");let o=0,l="Your off-target score was wrong. Either it was not above/within the optimal range (or above 35) or the last-resort option.";MAROffTarget&&(MAROffTarget_degree===1?(o=2,l="This means your answer was correct while above/within the optimal and you received full marks."):MAROffTarget_degree===2?(o=1,l="This means your answer was technically correct as its on-target value was above 35."):MAROffTarget_degree===3&&(o=.5,l="This means your answer was partially correct as it was found to be your only option is solely based on the target region range you selected."));let c=0,u="";for(let s=0;s",e+="
For gRNA Strand Sequence, you put down "${all_answers[0]}" which gave you the mark ${n}.
`,e+=t,e+="
",e+="
",e+="
",$("#mainContainer").append(e),e="
",e+="
",e+="
",e+="",e+=`gRNA PAM Sequence: ${i}/2`,e+="",e+="
",e+="
",e+="
",e+="
",e+=`
For gRNA PAM Sequence, you put down "${all_answers[1]}" which gave you the mark ${i}.
`,e+=r,e+="
",e+="
",e+="
",$("#mainContainer").append(e),e="
",e+="
",e+="
",e+="",e+=`Off-target Score: ${o}/2`,e+="",e+="
",e+="
",e+="
",e+="
",e+=`
For Off-Target Score, you put down "${all_answers[4]}" which gave you the mark ${o}.
`,e+=l,e+="
",e+="
",e+="
",$("#mainContainer").append(e),e="
",e+="
",e+="
",e+="",e+=`F1 Primer: ${c}/2`,e+="",e+="
",e+="
",e+="
",e+="
",e+=`
For F1 Primer, you put down "${all_answers[5]}" which gave you the mark ${c}.
`,e+=a,e+="
",e+="
",e+="
",$("#mainContainer").append(e),e="
",e+="
",e+="
",e+="",e+=`R1 Primer: ${f}/2`,e+="",e+="
",e+="
",e+="
",e+="
",e+=`
For R1 Primer, you put down "${all_answers[6]}" which gave you the mark ${f}.
`,e+=p,e+="
",e+="
",e+="
",$("#mainContainer").append(e),e=" ",e+="
If at any point you wish to dispute marks, please contact your TA or professor once you completed your assignment. If you have found a bug in our SciGrade marking system, please contact your professor or our admin.