linux怎么查看fastq格式文件,2020-01-11 了解FASTQ格式并处理FASTQ文件
FASTQ文件格式是測序儀展示數據的標準格式,可以看成FASTA文件的變種(FASTA+Q),因為其包含了對序列中每個堿基的Qualify Measurement。(如:堿基A出錯的可能性是1/1000)
FASTQ格式詳述
FASTQ格式包括4個部分,每個部分1行,格式同FASTA相似,但缺陷也更多:
類似FASTA的頭部,以@而非>起始,后跟ID和描述文本
測定的序列,通常為1行,但有時也會換行,最后以+指示下一部分
由+表示(后面有時會跟著和第一部分相同的id和header)
編碼第2部分測定序列的質量值,長度必須同第2部分相同,換行方式也要同第2部分相同
第4部分看著有點奇怪,其實是通過轉碼將兩位數字的Phred Score轉換為1個字符的Quality Score
第一行為FASTQ quality codes
第二行為Quality Score (Q)/Phred Score (P)
Sanger(+33)格式
錯誤率公式:Error=10?(-P/10)
編碼為I,P=40,錯誤率為10^(-40/10)=0.01%
以前還用過一種老的+64格式的FASTQ編碼:
如果你的FASTQ文件中Quality Score為小寫,代表你的FASTQ是老版本
可以使用seqtk命令進行轉換
seqtk seq -Q64 input.fq > output.fa
FASTQ文件header中的額外信息
參考維基百科fastq format詞條
EAS139:儀器,
136:run編號,
FC706VJ:流通池編號,
2:泳道,
2104:tile編號,
(15343,197393):xy坐標,
1: the member of a pair, 1 or 2 (paired-end or mate-pair reads only)
Y: Y if the read is filtered, N otherwise
18: 0 when none of the control bits are on, otherwise it is an even number
ATCACG指索引序列
此信息針對特定儀器/供應商,可能會隨儀器的不同版本或版本而變化。但對于回答可能影響儀器的質量控制或系統性技術問題是很有用的。
通過命令行轉換FASTQ質量編碼
略,在書p185
進階FASTQ處理
介紹使用SeqKit操作FASTA/Q,SeqKit支持FASTA/Q文件和FASTA/Q的壓縮格式:
seqkit命令
seqkit的學習筆記可參考
#作者目前尚不推薦使用conda進行安裝
curl http://app.shenwei.me/data/csvtk/csvtk_linux_amd64.tar.gz > csvtk_linux_amd64.tar.gz
tar -zxvf csvtk_linux_amd64.tar.gz
sudo cp csvtk bin
1. 示例數據
使用一個FASTQ文件(Sample Reads,1M)和兩個FASTA文件(NCBI RefSeq數據庫中的病毒DNA和蛋白質序列,60M+40M)。
#wget -nc指若要覆蓋已有文件則不要下載
wget -nc http://data.biostarhandbook.com/reads/duplicated-reads.fq.gz
wget -nc ftp://ftp.ncbi.nih.gov/refseq/release/viral/viral.2.1.genomic.fna.gz
wget -nc ftp://ftp.ncbi.nih.gov/refseq/release/viral/viral.2.protein.faa.gz
# fna文件和faa文件
# *.fna = FASTA Nucleic Acid file
# *.faa = FASTA Amino Acid file
2. FASTQ文件概覽
seqkit stat *.gz
3. 得到GC含量
seqkit fx2tab將FASTA/Q轉換為3列表格形式(1:名稱/ID,2:序列,3:質量),還可以在新列中提供各種信息,包括序列長度、GC內容/GC skew、alphabet
seqkit fx2tab -n -i -g viral.2.1.genomic.fna.gz | head
-n, --name only print names (no sequences and qualities)
-i, --only-id print ID instead of full head
-g, --gc print GC content
可以嘗試分別去掉這些參數
4. 得到感興趣堿基的含量
假設想要獲得A、C、A+C的含量
seqkit fx2tab -H -n -i -B a -B c -B ac viral.2.1.genomic.fna.gz | head -5
-H, --header-line輸出header line
-B, --base-content strings 輸出堿基含量,忽略大小寫,支持N等alphabet
5. 抽出部分序列和name/list文件
seqkit sample 根據數量或比例對序列進行抽樣
-n, --number int 根據數量抽樣(匹配可能不精確)
-p, --proportion float 根據比例抽樣
seqkit seq seq命令對序列進行操作, (包括revserse, complement, extract ID等...)
-n, --name 只輸出名字
-i, --only-id 只輸出id而不輸出full head
seqkit sample --proportion 0.001 duplicated-reads.fq.gz | seqkit seq --name --only-id > id.txt
head id.txt #id.txt中的記錄要用于seqkit grep的檢索,格式為每行1個記錄
seqkit grep 根據ID/名稱/序列/序列motif檢索序列,允許錯配
-f, --pattern-file string pattern file (one record per line)
seqkit grep --pattern-file id.txt duplicated-reads.fq.gz > duplicated-reads.subset.fq.gz
#用id.txt中的pattern在duplicated-reads.fq.gz中進行匹配
6. 找到包含簡并堿基(degenerate base)的序列并定位
seqkit fx2tab --name --only-id --alphabet viral.1.1.genomic.fna.gz | csvtk --no-header-row --tabs grep --fields 4 --use-regexp --ignore-case --pattern "[^ACGT]"
代碼的長參數版本
seqkit fx2tab -n -i -a viral.2.1.genomic.fna.gz | csvtk -H -t grep -f 4 -r -i -p "[^ACGT]"
seqkit fx2tab將FASTA / Q轉換為表格格式,并可以在新列中輸出序列字母:
-a, --alphabet 輸出alphabet
然后可以使用文本搜索工具來過濾表。
csvtk下的參數
-H, --no-header-row 輸入的CSV文件沒有header行
-t, --tabsinput CSV file由tabs分隔。覆蓋-d和-D
csvtk grep下的參數
-f, --fields string comma separated key fields, column name or index. e.g. -f 1-3 or -f id,id2 or -F -f "group" (default "1") 這個參數沒看懂
-r, --use-regexp 給出的pattern為正則表達式
-i, --ignore-case 忽略大小寫
-p, --pattern strings query pattern (multiple values supported) 這個參數沒看懂
pattern為"[^ACGT]" 是一個正則表達式 這個正則表達式沒看懂
保存這些包含簡并堿基的序列的ID
seqkit fx2tab -n -i -a viral.2.1.genomic.fna.gz | csvtk -H -t grep -f 4 -r -i -p "[^ACGT]" | csvtk -H -t cut -f 1 > id2.txt
使用seqkit grep命令去除
seqkit grep --pattern-file id2.txt --invert-match viral.1.1.genomic.fna.gz > clean.fa
#或
seqkit grep -P id2.txt --invert-match viral.1.1.genomic.fna.gz > clean.fa
csvtk cut下的參數
-f, --fields string 僅保留fields中的列,例: -f 1,2即保留第1、2列
7. 去除包含重復序列的FASTA/Q記錄
8. 定位FASTA/Q序列中的模體/subsequence/酶消化位點
9. 根據序列長度排列FASTA/Q序列
10. 根據header信息spilt FASTA序列
11. 使用文本文件中的character strings在FASTA header中搜索和替換?
12. 從兩個paired end reads文件中提取paired reads?
13. 連接兩個FASTA序列
總結
以上是生活随笔為你收集整理的linux怎么查看fastq格式文件,2020-01-11 了解FASTQ格式并处理FASTQ文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么全量备份oracle数据库,Orac
- 下一篇: 宏仁大酒店(重庆重百步行街店)位置在哪里