fastqc 能夠自動識別序列的鹼基編碼格式,我檢視一下源**,發現是鹼基編碼格式一共分為
1)sanger/illumina 1.9
2) illumina 1.3
3) illumina 1.5
其核心的**為
publicstatic phredencoding getfastqencodingoffset(final
char
lowestchar)
if (lowestchar < '@')
if (lowestchar == 'a')
if (lowestchar <= '~')
throw
new illegalargumentexception("no known encodings with chars > 126 (yours was " + lowestchar + ")");
}
通過找到對應的ascii值最小的鹼基質量值來判斷對應的編碼格式,
在ascii碼表中, ! 代表33, @ 代表64,a 代表65,~ 代表 126
在維基百科關於fastq格式的描述中介紹了鹼基編碼的各種格式
在sange format 中採用 33到126 表示0到93, 所以sange 格式的偏移量為33
從illumina 1.3 開始,使用 64和126 來表示0到62, 所以illumina 1.3 格式的偏移量為64
從illumina 1.5 開始,0和1不在使用,最低的質量值為66,
從illumina 1.9 開始,又採用和sange 一樣的編碼格式
所以如果鹼基質量的最低值如果小於64,一定是sange/illumian 1.9格式, 不可能是illumina 1.3 和illumina 1.5 的格式,因為這兩種格式中最低的質量值都大於64;
為什麼鹼基最低的等於65就是illumina 1.3呢, 因為在illumina 的檔案中,質量值p = -l0 * log10(rate)
rate 表示錯誤率,然而對於log10這個函式來說,rate 值不可能為0,因為沒有10的指數永遠不可能為0,肯定是大於0的,所以0對應的64並不會出現,
最小可能出現的也就是65了,而且illumina 1.5 的最小可能出現的值為66,所以最小值為65說明就是illumina 1.3 格式
排除了前面兩種可能,這時候就只剩下illumina 1.5了,只要其質量值不出處正常範圍,即<= 126 就說明是illumina 1.5
小於33或者大於126都是未知的編碼格式
文字識別 文字識別的應用
是否有過這樣的經歷,在網上發現一篇好文,卻沒辦法複製,怎麼辦?手動抄錄嗎,我想如果沒有ocr,大部分人會這麼做。ocr是一種影象處理技術,又叫文字識別,能夠將影象中不可複製的文字轉換成可編輯的文字形式,簡單來說,使用者對無法複製的文字進行拍照,通過文件識別軟體進行識別,即可獲得可編輯 可儲存的電子文...
語音識別的難點
儘管語音識別的研究已有半個世紀了,但現有的語音識別系統仍存在許多困難,還遠遠達不到實用化的要求,主要表現在 1 魯棒性 目前的語音識別系統對環境條件的依賴性強,要求保持測試條件和訓練條件一致,否則系統效能會嚴重下降。2 雜訊問題 現有的語音識別系統大多只能工作在安靜的環境下,一旦在雜訊環境下工作,講...
人臉識別的流程
記錄一下目前對人臉識別流程及識別方法的理解,以後隨著認識的提公升不斷更新 在整個過程中所使用的都是灰度化之後的。為什麼要轉化為灰度?1.識別物體最關鍵的部分是,找到物體的邊緣,就是的梯度,的梯度計算用到的就是灰度化之後的。2.顏色容易受到光照影響,難以提供關鍵資訊,最重要的是灰度化之後可以加快計算速...