MISA+Primer3設計SSR引物(三):批量化運行腳本

2021-12-22 大叔的生信備忘錄

原計劃本次內容是按自己思路修改的msia腳本寫一個shell腳本,但是看我推文的大部分都是搜索過來的,看到這篇推文大部分還是打算學這個流程的。所以,本次流程的腳本還是在原misa腳本基礎上修改。以我改的腳本為基礎的shell腳本放在最後一部分,不做介紹。

另外,我不建議用我前面的教程去做科研任務,學習下腳本就該就可以了。

另外,我不建議用我前面的教程去做科研任務,學習下腳本就該就可以了。

另外,我不建議用我前面的教程去做科研任務,學習下腳本就該就可以了。

本次教程不直接提供腳本,但是你看看參考文章部分,可能會有有驚喜。

本教程shell腳本分為四部分:

用到的知識點;基礎msia流程;可接續的shell腳本;以我改的腳本為基礎的shell腳本;致謝;參考文章


知識點一:sh -c "字符串":在腳本裡重新調用一個shell,來解析被當成字符串的命令。

知識點二:

if 語句中

-a 表示邏輯 "與";-o 表示邏輯 "或";! 表示邏輯 "非"; 三種邏輯順序級別由高到底:! > -a > -o

-f 表示文件存在;-d 表示文件夾存在;

知識點三:

子函數書寫形式之一:

function misa_check(){  command}

知識點四:

流程的可接續寫法:

參考了我之前的推文 「Trinotate 半自動快速安裝與資料庫配置 」(點擊文章名跳轉)提到的Build_Trinotate_Boilerplate_SQLite_db.pl 腳本。不過這裡是創建了一個文件夾作為標誌文件,如果標誌性文件夾存在,則不運行;如果標誌性文件夾不存在,則運行改程序。

運行結束後刪除標誌性文件。

if [ -d "$1" ]
then
echo "$1 exist!" && sleep 1s && break
else
sh -c "$2" && mkdir -p __tmp_${FASTA}/$1
echo -e "DONE: $2 !"
fi

primer3設置文件見參考文章部分

FASTA=Carya.fastaperl  misa.pl  ${FASTA}perl  p3_in.pl  ${FASTA}.misa./primer3-2.3.5/src/primer3_core -default_version=1 -p3_settings_file=my_default_settings.txt.txt -output=${FASTA}.p3out  ${FASTA}.p3inperl p3_out.pl  ${FASTA}.p3in  ${FASTA}.misa

腳本需要修改「全局設置」的3個地方:

變量FASTA:輸入數據(改為$1後,用順序傳參可以批量運行)

變量PRIMER3_CORE:可執行程序primer3_core 位置

primer3的配置文件 : my_default_settings.txt

腳本分為三個部分

變量設置部分;

對象檢查部分;

程序運行部分

#!usr/bin/env shset -euo pipefail

FASTA=${FASTA} PRIMER3_CORE=./primer3-2.3.5/src/primer3_core if [ -f "misa.pl" -a -f "p3_in.pl" -a -f "p3_out.pl" ] then echo -e "the misa scripts is ready!\n" && sleep 1selse echo -e "the misa scripts not found!\n" exit 1fi
if [ -f $FASTA ]then echo -e "input file: $FASTA is ready!\n" && sleep 1s sleep 1s else echo "input file: $FASTA not found!" exit 1fi
function misa_check(){ if [ -d "$1" ] then echo "$1 exist!" && sleep 1s && break else sh -c "$2" && mkdir -p __tmp_${FASTA}/$1 echo -e "DONE: $2 !" fi}misa_check misa.pl.ok "perl misa.pl ${FASTA} > /dev/null 2>&1"misa_check p3_in.pl.ok "perl p3_in.pl ${FASTA}.misa"misa_check primer3.ok "./primer3-2.3.5/src/primer3_core -default_version=1 -p3_settings_file=my_default_settings.txt -output=${FASTA}.p3out ${FASTA}.p3in"misa_check p3_out.pl.ok "perl p3_out.pl ${FASTA}.p3out ${FASTA}.misa"rm -rf __tmp_${FASTA}echo "DONE:SSRs searching and primers designing of ${FASTA}!"

#!usr/bin/env shset -euo pipefailMISA_PATH=./misaPRIMER3_CORE=primer3_corePRIMER3_SETTING=my_default_settings.txtFASTA=./fasta/test.faRESULT_PATH=./results/

filename=$(basename $FASTA)EVERY_RESULT=$RESULT_PATH/$filenamemkdir -p $RESULT_PATH/$filename
if [ -f "$MISA_PATH/misa.pl" -a -f "$MISA_PATH/p3_in.pl" -a -f "$MISA_PATH/p3_out.pl" -a ] then echo -e "the misa scripts is ready!\n" && sleep 1s sleep 1selse echo -e "the misa scripts not found!\n" exit 1fi
if [ -f $FASTA -f "${PRIMER3_SETTING}"]then echo -e "input file: $FASTA is ready!\n" && sleep 1s sleep 1s else echo "input file: $FASTA not found!" exit 1fi
if [ -f $FASTA -f "${PRIMER3_SETTING}"]then echo -e "input file: $FASTA is ready!\n" && sleep 1s sleep 1s else echo "input file: $FASTA not found!" exit 1fi
if [ -d $EVERY_RESULT ]then echo -e "output path: $EVERY_RESULT is ready!\n" && sleep 1selse echo "output path: $EVERY_RESULT not found!" exit 1fi
function misa_check(){ if [ -d "$1" ] then echo "$1 exist!" && sleep 1s && break else sh -c "$2" && mkdir -p __tmp_${FASTA}/$1 echo -e "DONE: $2 !" fi}
misa_check misa.pl.ok "perl ${MISA_PATH}/misa.pl ${MISA_PATH}/misa.ini $FASTA ${EVERY_RESULT} > /dev/null 2>&1 " misa_check p3_in.pl.ok "perl ${MISA_PATH}/p3_in.pl ${EVERY_RESULT}/${filename}.misa ${FASTA} ${EVERY_RESULT} > primer3_parameters_${filename}.txt"misa_check primer3.ok "$PRIMER3_CORE -default_version=1 -p3_settings_file=${PRIMER3_SETTING} -output=${EVERY_RESULT}/${filename}.p3out ${EVERY_RESULT}/${filename}.p3in"misa_check p3_out.pl.ok "perl ${MISA_PATH}/p3_out.pl ${EVERY_RESULT}/${filename}.p3out ${EVERY_RESULT}/${filename}.misa ${EVERY_RESULT}"rm -rf __temp_${filename}echo "SSRs searching and primers designing of $filename have been completed!"

感謝生信技能樹的司徒老師對知識點一和知識點三部分的答疑;感謝閔農的史同學讓我發現了新的問題。

primer3設計引物詳解 http://www.chenlianfu.com/?p=284

使用Misa結合Primer3來批量設計SSR引物 http://www.chenlianfu.com/?p=255

SSR (misa + primer3 ) 設計SSR引物 https://blog.csdn.net/wt141643/article/details/113878893

《Bioinformatics Data Skills》之編寫與運行魯棒的bash腳本 https://www.jianshu.com/p/6bf09e8da73f

相關焦點

  • 如何設計PCR引物?
    11  引物應在核酸保守區內設計並具有特異性。引物與非特異擴增序列的同源性不要超過70%或有連續8個互補鹼基同源。 二、Real Time PCR引物設計原則Real Time PCR用引物與普通PCR引物設計要求不同。
  • 用primer5設計引物教程
    最近有幾位好友向我諮詢primer5 設計引物的教程,為了方便大家使用該軟體設計引物,特地作此教程,版權歸原作者所有(youlinglyw
  • 在NCBI利用Primer-BLAST設計引物
    這個工具整合了Primer3軟體,再加上NCBI的Blast進行引物特異性的驗證。將設計好的引物程序直接用Blast進行引物特異性驗證。Primer-BLAST能設計出只擴增某一特定剪接變異體基因的引物。
  • PCR中的引物設計
    Nucleotide資料庫的搜索結果還是比較智能的,搜索結果前面推薦的就是我們的要的,我們做基因檢測,做的PCR是定量PCR,設計引物是以基因的轉錄本為模板設計的,所以我們點擊RefSeq transcripts。
  • 如何設計 SybrGreen 法螢光定量 PCR 引物
    、Bio-Rad CFX96 等)通過實時追蹤 PCR 每一步循環的螢光信號值來達到對起始模板量的定量分析。一次成功的螢光定量PCR反應除了需要穩定的儀器、優質的Taq 酶、比較好的模板質量,更需要高質量的引物對。想要得要高質量的引物對的前提是引物的設計必須要精益求精。
  • PCR引物及其設計原則
    PCR引物設計的目的是為了找到一對合適的核苷酸片段,使其能有效地擴增模板DNA序列。因此,引物的優劣直接關係到PCR的特異性與成功與否。引物有兩種常見的選擇方法,一種是參考文獻(儘量選擇SCI),文獻上說的引物序列一般沒問題,而且還有反應條件,比較省事;還有一種方法是用軟體設計。個人的建議是,先找文獻,如果找不到在自己設計。
  • 生物小白的入門必修課——引物的設計方法與設計原則
    Tm 值的計算有多種方法,如按公式Tm=4(G+C)+2(A+T)。當然,我們還是主要由軟體直接生成,不同的軟體算法略有差別,可能出現Tm值不一致的情況,我們不必過於糾結,若是實操中PCR反應不佳,可通過調整優化PCR反應條件,以獲得更好的擴增效率和特異性。引物序列的GC含量一般為40-60%,過高或過低都不利於引發反應。
  • 如何使用Python批量化處理Excel——零基礎入門指南
    也就是說這個東西把編程過程中的編輯、編譯、運行等過程全部集中起來了。我們只要打開這個像是文本編輯器一樣的東西,輸入命令,然後點擊運行,就能完成整個編程過程。 動手寫一個處理Excel的python腳本! 至此,開發環境我們就已經配置好了。為了能使python腳本可以不添加路徑就讀取到表格文件,我們配置一個理想的實驗環境,新建一個文件夾,把Excel表和Python腳本放在一起。
  • 常用引物設計工具大集合
    一款專業的引物設計軟體,具有PCR或測序引物以及雜交探針設計功能。可以簡單地通過手動拖動滑鼠以擴增出相應片段所需的引物,而在手動的任何時候,下面顯示各種參數的改變和可能的二聚體、異 二聚體、髮夾結構等。
  • MethPrimer:DNA甲基化PCR引物的設計
    .國外網際網路上有1個提供免費在線引物設計程序「MethPrimer」,它能夠預測CpG島,根據實驗者要求設計硫化測序PCR(bisulfate-sequencing PCR, BSP)和甲基化特異性PCR(methylation-specific PCR,MSP)引物.本研究旨在介紹甲基化特異性PCR引物設計的原則及「MethPrimer」設計程序的使用方法和有關注意事項.
  • PCR原理 | PCR分類 | 引物設計方法
    由於PCR過程中引物延伸是3'端開始的,所以3'末端的鹼基對引物的延伸來說處於至關重要的位置。如果這個鹼基與模板互補,則引物能不間斷延伸,PCR可以正常進行,得到特定長度擴增帶,反之,則不能延伸。所以只要將與正常等位基因所不同的那個突變鹼基安排在引物3'最末端,當用某一含突變序列的引物進行PCR時,如果得到特異條帶,表明被測基因含有該種突變。沒有特異擴增帶出現,則表示沒有這種突變。
  • 手把手教你另一種設計PCR引物的方法
    之前介紹過用NBBI在線設計引物的方法(在線設計引物一步到位),今天結合網絡一些資料及自身的經驗詳細介紹了用primer5.0設計PCR引物的一些基本原則以及分享了引物設計的方法步驟與資料
  • 超全 | PCR引物設計-免費軟體合輯
    PerlPrimer:在輸入序列中找到開放閱讀框(ORF),圍繞ORF設計引物,並允許用戶在每個引物上附加額外的5'序列以用於克隆目的;(ii) 發現CG島並設計MS-PCR引物;(iii) 找到內含子/外顯子邊界並設計RT-qPCR引物;(iv) 設計用於Sanger測序的引物。
  • 新型冠狀病毒螢光PCR引物探針設計之我見
    新型冠狀病毒疫情爆發後,我們也進行了相關產品的研發,我們發現WHO發布的來自不同國家的引物探針設計,有些存在比較明顯的缺陷。本文以美國CDC設計的N基因引物探針為例,論述Taqman螢光PCR引物和探針設計的基本原則,並提出一些建議,供同行們參考,避免走彎路,浪費資源,也算是為抗擊疫情盡一份力量。
  • Primer-BLAST:NCBI的引物設計和特異性檢驗工具
    扒一扒國外重要的生物信息中心Primer-BLAST,在線設計用於聚合酶鏈反應(PCR)的特異性寡核苷酸引物。Primer-BLAST 免除了用另一個站點或工具設計引物的步驟, 設計好的引物程序直接用 Blast 進行引物特異性驗證。並且,Primer-BLAST 能設計出只擴增某一特定剪接變異體基因的引物。Primer-BLAST 有許多改進的功能,這樣在選擇引物方面比單個的用Primer3 和 NCBI BLAST 更加準確。
  • 科研乾貨丨手把手教你做PCR引物設計!
    PCR的特異性要求引物與靶DNA特異結合,不與其他非目的的DNA結合,PCR的靈敏性要求DNA聚合酶能與引物進行有效的延伸,可見引物設計好壞與PCR結果密切相關。插播:後臺回復【引物設計軟體】即可Oligo/DNAstar/Primer premier5/6/DNAstar軟體。
  • 科普 | Primer-BLAST:NCBI的引物設計和特異性檢驗工具
    Primer-BLAST,在線設計用於聚合酶鏈反應(PCR)的特異性寡核苷酸引物。Primer-BLAST 免除了用另一個站點或工具設計引物的步驟, 設計好的引物程序直接用 Blast 進行引物特異性驗證。並且,Primer-BLAST 能設計出只擴增某一特定剪接變異體基因的引物。Primer-BLAST 有許多改進的功能,這樣在選擇引物方面比單個的用Primer3 和 NCBI BLAST 更加準確。
  • ChIP-qPCR 引物不會設計嗎??看這裡!看這裡!
    可以同時選幾個ChIP-Seq 數據,在UCSC中查看如圖,選擇在三組數據中都有peak的區域,Zoom In在有peak富集的區域選擇DNA序列用來設計陽性對照的引物。對於你感興趣的結合位點,可以先定位到基因,再根據ChIP-Seq的數據選擇有peak富集的區域。
  • 乾貨丨引物設計有妙招,3款軟體就能搞定!
    在PCR過程中,引物設計是非常重要的一環,好的引物會讓你的PCR實驗事半功倍!)查找和同源性分析功能、設計簡併引物、序列"朗讀"、DNA 與蛋白序列的互換、語音提示鍵盤輸入等等。主要功能:普通引物對的搜索、測序引物的設計、雜交探針的設計以及評估引物對質量等等。Oligo7.37破解版下載連結:後臺回復「引物設計2」即可獲取!