日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python在生物学领域的简单应用——处理DNA序列

發布時間:2024/5/8 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python在生物学领域的简单应用——处理DNA序列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DNA的反向互補序列

??假設我們有一串DNA序列,存在一個名為“dna.txt”的文本文檔中。那么,我們該如何用Python輸出它的反向序列、互補序列以及反向互補序列呢?
??在這之前,我們不妨定義一個函數,用來打開并讀取txt文件。我們把這個函數命名為read_seq(),這個函數的參數為我們的文件路徑。需要注意的一點是,在dna.txt文件中,存在著換行符\n和回車符\r(如下圖所示),而我們只需要用到代表堿基序列的大寫字母。我們可以用replace()方法來替換掉它們。

??最終,我們定義的read_seq()函數如下:

def read_seq(inputfile):file = open(inputfile, "r")seq = file.read()seq = seq.replace("\n", "")seq = seq.replace("\r", "")return seq

??接下來,我們需要定義dna_complement(),dna_reverse()和dna_revcomp()三個函數。在定義dna_complement()函數的時候,和上面替換換行符和回車符同樣的道理,我們可以用replace()方法來替換字符串中代表堿基的大寫字母。而定義后兩個函數明顯容易得多,我們只需要讓字符串反向輸出就可以了。我們定義的dna_complement(),dna_reverse()和dna_revcomp()三個函數如下所示:

def dna_complement(seq):seq = seq.upper()seq = seq.replace('A', 'T')seq = seq.replace('T', 'A')seq = seq.replace('C', 'G')seq = seq.replace('G', 'C')return seq def dna_reverse(seq):seq = seq.upper()return seq[::-1] def dna_revcomp(seq):seq = seq.upper()return dna_complement(seq)[::-1]

??完整的代碼如下所示:

def dna_complement(seq):seq = seq.upper()seq = seq.replace('A', 'T')seq = seq.replace('T', 'A')seq = seq.replace('C', 'G')seq = seq.replace('G', 'C')return seqdef dna_reverse(seq):seq = seq.upper()return seq[::-1]def dna_revcomp(seq):seq = seq.upper()return dna_complement(seq)[::-1]def read_seq(inputfile):file = open(inputfile, "r")seq = file.read()seq = seq.replace("\n", "")seq = seq.replace("\r", "")return seqif __name__ == '__main__':dna = read_seq("E:\\python_pycharm\\一些Python程序練習\\DNA\\dna.txt")print(dna) # 原DNA序列print(dna_complement(dna)) # DNA互補序列print(dna_reverse(dna)) # DNA反向序列print(dna_revcomp(dna)) # DNA反向互補序列

??輸出結果如下:

GGTCAGAAAAAGCCCTCTCCATGTCTACTCACGATACATCCCTGAAAACCACTGAGGAAGTGGCTTTTCAGATCATCTTGCTTTGCCAGTTTGGGGTTGGGACTTTTGCCAATGTATTTCTCTTTGTCTATAATTTCTCTCCAATCTCGACTGGTTCTAAACAGAGGCCCAGACAAGTGATTTTAAGACACATGGCTGTGGCCAATGCCTTAACTCTCTTCCTCACTATATTTCCAAACAACATGATGACTTTTGCTCCAATTATTCCTCAAACTGACCTCAAATGTAAATTAGAATTCTTCACTCGCCTCGTGGCAAGAAGCACAAACTTGTGTTCAACTTGTGTTCTGAGTATCCATCAGTTTGTCACACTTGTTCCTGTTAATTCAGGTAAAGGAATACTCAGAGCAAGTGTCACAAACATGGCAAGTTATTCTTGTTACAGTTGTTGGTTCTTCAGTGTCTTAAATAACATCTACATTCCAATTAAGGTCACTGGTCCACAGTTAACAGACAATAACAATAACTCTAAAAGCAAGTTGTTCTGTTCCACTTCTGATTTCAGTGTAGGCATTGTCTTCTTGAGGTTTGCCCATGATGCCACATTCATGAGCATCATGGTCTGGACCAGTGTCTCCATGGTACTTCTCCTCCATAGACATTGTCAGAGAATGCAGTACATATTCACTCTCAATCAGGACCCCAGGGGCCAAGCAGAGACCACAGCAACCCATACTATCCTGATGCTGGTAGTCACATTTGTTGGCTTTTATCTTCTAAGTCTTATTTGTATCATCTTTTACACCTATTTTATATATTCTCATCATTCCCTGAGGCATTGCAATGACATTTTGGTTTCGGGTTTCCCTACAATTTCTCCTTTACTGTTGACCTTCAGAGACCCTAAGGGTCCTTGTTCTGTGTTCTTCAACTGTTGAAAGCCAGAGTCACTAAAAATGCCAAACACAGAAGACAGCTTTGCTAATACCATTAAATACTTTATTCCATAAATATGTTTTTAAAAGCTTGTATGAACAAGGTATGGTGCTCACTGCTATACTTATAAAAGAGTAAGGTTATAATCACTTGTTGATATGAAAAGATTTCTGGTTGGAATCTGATTGAAACAGTGAGTTATTCACCACCCTCCATTCTCT CCACACAAAAACCCCACACCAACACAACACACCAAACAACCCACAAAACCACACACCAACACCCAAAACACAACAACAACCAAACCCACAAACCCCAACCCACAAAACCCAAACAAAAACACAAACACAAAAAAAACACACCAAACACCACACCAACAAAACACACCCCCACACAACACAAAAAAACACACAACCCACACCCCAAACCCAAAACACACAACCACACAAAAAAACCAAACAACAACAACACAAAACCACCAAAAAAACCACAAACACACCACAAAACAAAAAAACAAAACAACACACCCCACCACCCAACAACCACAAACAACACAACAACAACACAACACACAAACCAACACAAACACACACAACAACCACAAAAAACACCAAAACCAAAACACACACCAACACACACAAACAACCCAACAAAAACAACAAACACAACAACCAACAACACACACAAAAAAAACAACAACAAACCAAAAAACCACACACCACCACACAAAACACACAAAAACAAAAACACAAAAACCAACAACAACACAACCACAACACAAAACACACAACCCAAACACAACAACACCAAACCCCAACAACCCACAAACAACACCAACAACCACACCACCACACACACCAACCAACAACACCACCAAACACAAACACACACAAACCACAACAAAAACACACACAAACACCACCCCACCCCCCAACCACACACCACACCAACCCAAACAAACCACAACCACCAACACACAAAACAACCCAAAAAACAACAAACACAAAAAACAAACAACAAAAACACCAAAAAAAAAAAAACACAACAAACCCACACCCAAACCAAACACAAAAACCAAACCCCAAACCCAACAAAAACACCAAAACACAACACCAACACACACCCAAACCCACCAACAACACACAACAACAACACAACAAACCCACACACACAAAAAAACCCAAACACACAACACACCAAACCAAAAACCAAAAAAAACAAAAAACCAAAAAAAACAAAAAAAAACCAACAAACAACAACCAAACCACCACACACCAAAACAAAAAAAACACAAACCAAAAAAACACAACAACAAAACAAAACAAAACACCAACCAAACACAAACAAACACACACAAAAACACCACCCACCAAACACA TCTCTTACCTCCCACCACTTATTGAGTGACAAAGTTAGTCTAAGGTTGGTCTTTAGAAAAGTATAGTTGTTCACTAATATTGGAATGAGAAAATATTCATATCGTCACTCGTGGTATGGAACAAGTATGTTCGAAAATTTTTGTATAAATACCTTATTTCATAAATTACCATAATCGTTTCGACAGAAGACACAAACCGTAAAAATCACTGAGACCGAAAGTTGTCAACTTCTTGTGTCTTGTTCCTGGGAATCCCAGAGACTTCCAGTTGTCATTTCCTCTTTAACATCCCTTTGGGCTTTGGTTTTACAGTAACGTTACGGAGTCCCTTACTACTCTTATATATTTTATCCACATTTTCTACTATGTTTATTCTGAATCTTCTATTTTCGGTTGTTTACACTGATGGTCGTAGTCCTATCATACCCAACGACACCAGAGACGAACCGGGGACCCCAGGACTAACTCTCACTTATACATGACGTAAGAGACTGTTACAGATACCTCCTCTTCATGGTACCTCTGTGACCAGGTCTGGTACTACGAGTACTTACACCGTAGTACCCGTTTGGAGTTCTTCTGTTACGGATGTGACTTTAGTCTTCACCTTGTCTTGTTGAACGAAAATCTCAATAACAATAACAGACAATTGACACCTGGTCACTGGAATTAACCTTACATCTACAATAAATTCTGTGACTTCTTGGTTGTTGACATTGTTCTTATTGAACGGTACAAACACTGTGAACGAGACTCATAAGGAAATGGACTTAATTGTCCTTGTTCACACTGTTTGACTACCTATGAGTCTTGTGTTCAACTTGTGTTCAAACACGAAGAACGGTGCTCCGCTCACTTCTTAAGATTAAATGTAAACTCCAGTCAAACTCCTTATTAACCTCGTTTTCAGTAGTACAACAAACCTTTATATCACTCCTTCTCTCAATTCCGTAACCGGTGTCGGTACACAGAATTTTAGTGAACAGACCCGGAGACAAATCTTGGTCAGCTCTAACCTCTCTTTAATATCTGTTTCTCTTTATGTAACCGTTTTCAGGGTTGGGGTTTGACCGTTTCGTTCTACTAGACTTTTCGGTGAAGGAGTCACCAAAAGTCCCTACATAGCACTCATCTGTACCTCTCCCGAAAAAGACTGG ACACAAACCACCCACCACAAAAACACACACAAACAAACACAAACCAACCACAAAACAAAACAAAACAACAACACAAAAAAACCAAACACAAAAAAAACAAAACCACACACCACCAAACCAACAACAAACAACCAAAAAAAAACAAAAAAAACCAAAAAACAAAAAAAACCAAAAACCAAACCACACAACACACAAACCCAAAAAAACACACACACCCAAACAACACAACAACAACACACAACAACCACCCAAACCCACACACAACCACAACACAAAACCACAAAAACAACCCAAACCCCAAACCAAAAACACAAACCAAACCCACACCCAAACAACACAAAAAAAAAAAAACCACAAAAACAACAAACAAAAAACACAAACAACAAAAAACCCAACAAAACACACAACCACCAACACCAAACAAACCCAACCACACCACACACCAACCCCCCACCCCACCACAAACACACACAAAAACAACACCAAACACACACAAACACAAACCACCACAACAACCAACCACACACACCACCACACCAACAACCACAACAAACACCCAACAACCCCAAACCACAACAACACAAACCCAACACACAAAACACAACACCAACACAACAACAACCAAAAACACAAAAACAAAAACACACAAAACACACCACCACACACCAAAAAACCAAACAACAACAAAAAAAACACACACAACAACCAACAACACAAACAACAAAAACAACCCAACAAACACACACAACCACACACAAAACCAAAACCACAAAAAACACCAACAACACACACAAACACAACCAAACACACAACACAACAACAACACAACAAACACCAACAACCCACCACCCCACACAACAAAACAAAAAAACAAAACACCACACAAACACCAAAAAAACCACCAAAACACAACAACAACAAACCAAAAAAACACACCAACACACAAAACCCAAACCCCACACCCAACACACAAAAAAACACAACACACCCCCACACAAAACAACCACACCACAAACCACACAAAAAAAACACAAACACAAAAACAAACCCAAAACACCCAACCCCAAACACCCAAACCAACAACAACACAAAACCCACAACCACACACCAAAACACCCAACAAACCACACAACACAACCACACCCCAAAAACACACC

把DNA編碼鏈轉錄為mRNA

??我們同樣通過定義函數的方式來實現DNA編碼鏈的轉錄。根據生物學相關知識,我們只需要把DNA編碼鏈的T替換成U即可得到mRNA(在此我們忽略DNA的啟動子與終止子)。代碼實現如下:

def transcription(seq):# 這里我們假設給定DNA序列為編碼鏈seq = seq.upper()seq = seq.replace('T', 'U')return seqdef read_seq(inputfile):file = open(inputfile, "r")seq = file.read()seq = seq.replace("\n", "")seq = seq.replace("\r", "")return seqif __name__ == '__main__':dna = read_seq("E:\\python_pycharm\\一些Python程序練習\\DNA\\dna.txt")print(dna) # 原DNA序列(編碼鏈)print(transcription(dna)) # 轉錄出的mRNA序列

根據DNA編碼鏈序列或mRNA序列翻譯出蛋白質序列

??我們先來討論根據DNA編碼鏈翻譯蛋白質。定義一個新函數dna_translate()。在定義函數的過程中,我們需要思考一個問題:眾所周知,mRNA翻譯蛋白質是從起始密碼子開始翻譯,到終止密碼子停止翻譯。如果不考慮這個問題的話很有可能會得到錯誤的結果。定義函數如下:

import redef dna_translate(seq):table = {'ATA': 'I', 'ATC': 'I', 'ATT': 'I', 'ATG': 'M','ACA': 'T', 'ACC': 'T', 'ACG': 'T', 'ACT': 'T','AAC': 'N', 'AAT': 'N', 'AAA': 'K', 'AAG': 'K','AGC': 'S', 'AGT': 'S', 'AGA': 'R', 'AGG': 'R','CTA': 'L', 'CTC': 'L', 'CTG': 'L', 'CTT': 'L','CCA': 'P', 'CCC': 'P', 'CCG': 'P', 'CCT': 'P','CAC': 'H', 'CAT': 'H', 'CAA': 'Q', 'CAG': 'Q','CGA': 'R', 'CGC': 'R', 'CGG': 'R', 'CGT': 'R','GTA': 'V', 'GTC': 'V', 'GTG': 'V', 'GTT': 'V','GCA': 'A', 'GCC': 'A', 'GCG': 'A', 'GCT': 'A','GAC': 'D', 'GAT': 'D', 'GAA': 'E', 'GAG': 'E','GGA': 'G', 'GGC': 'G', 'GGG': 'G', 'GGT': 'G','TCA': 'S', 'TCC': 'S', 'TCG': 'S', 'TCT': 'S','TTC': 'F', 'TTT': 'F', 'TTA': 'L', 'TTG': 'L','TAC': 'Y', 'TAT': 'Y', 'TAA': '_', 'TAG': '_','TGC': 'C', 'TGT': 'C', 'TGA': '_', 'TGG': 'W'}start_sit = re.search('ATG', seq)protein = ""for sit in range(start_sit.end() - 3, len(seq), 3):protein += table[seq[sit:sit + 3]]if table[seq[sit:sit + 3]] == '_':breakreturn protein

??完整代碼如下:

import redef dna_translate(seq):table = {'ATA': 'I', 'ATC': 'I', 'ATT': 'I', 'ATG': 'M','ACA': 'T', 'ACC': 'T', 'ACG': 'T', 'ACT': 'T','AAC': 'N', 'AAT': 'N', 'AAA': 'K', 'AAG': 'K','AGC': 'S', 'AGT': 'S', 'AGA': 'R', 'AGG': 'R','CTA': 'L', 'CTC': 'L', 'CTG': 'L', 'CTT': 'L','CCA': 'P', 'CCC': 'P', 'CCG': 'P', 'CCT': 'P','CAC': 'H', 'CAT': 'H', 'CAA': 'Q', 'CAG': 'Q','CGA': 'R', 'CGC': 'R', 'CGG': 'R', 'CGT': 'R','GTA': 'V', 'GTC': 'V', 'GTG': 'V', 'GTT': 'V','GCA': 'A', 'GCC': 'A', 'GCG': 'A', 'GCT': 'A','GAC': 'D', 'GAT': 'D', 'GAA': 'E', 'GAG': 'E','GGA': 'G', 'GGC': 'G', 'GGG': 'G', 'GGT': 'G','TCA': 'S', 'TCC': 'S', 'TCG': 'S', 'TCT': 'S','TTC': 'F', 'TTT': 'F', 'TTA': 'L', 'TTG': 'L','TAC': 'Y', 'TAT': 'Y', 'TAA': '_', 'TAG': '_','TGC': 'C', 'TGT': 'C', 'TGA': '_', 'TGG': 'W'}start_sit = re.search('ATG', seq)protein = ""for sit in range(start_sit.end() - 3, len(seq), 3):protein += table[seq[sit:sit + 3]]if table[seq[sit:sit + 3]] == '_':breakreturn proteindef read_seq(inputfile):file = open(inputfile, "r")seq = file.read()seq = seq.replace("\n", "")seq = seq.replace("\r", "")return seqif __name__ == '__main__':dna = read_seq("E:\\python_pycharm\\一些Python程序練習\\DNA\\dna.txt")print(dna)print(dna_translate(dna)[:-1])

??在上面程序的第43行print(dna_translate(dna)[:-1]),在最后加上[:-1]的目的是“刪除”掉DNA序列末尾的_(下劃線)。輸出結果如下:

GGTCAGAAAAAGCCCTCTCCATGTCTACTCACGATACATCCCTGAAAACCACTGAGGAAGTGGCTTTTCAGATCATCTTGCTTTGCCAGTTTGGGGTTGGGACTTTTGCCAATGTATTTCTCTTTGTCTATAATTTCTCTCCAATCTCGACTGGTTCTAAACAGAGGCCCAGACAAGTGATTTTAAGACACATGGCTGTGGCCAATGCCTTAACTCTCTTCCTCACTATATTTCCAAACAACATGATGACTTTTGCTCCAATTATTCCTCAAACTGACCTCAAATGTAAATTAGAATTCTTCACTCGCCTCGTGGCAAGAAGCACAAACTTGTGTTCAACTTGTGTTCTGAGTATCCATCAGTTTGTCACACTTGTTCCTGTTAATTCAGGTAAAGGAATACTCAGAGCAAGTGTCACAAACATGGCAAGTTATTCTTGTTACAGTTGTTGGTTCTTCAGTGTCTTAAATAACATCTACATTCCAATTAAGGTCACTGGTCCACAGTTAACAGACAATAACAATAACTCTAAAAGCAAGTTGTTCTGTTCCACTTCTGATTTCAGTGTAGGCATTGTCTTCTTGAGGTTTGCCCATGATGCCACATTCATGAGCATCATGGTCTGGACCAGTGTCTCCATGGTACTTCTCCTCCATAGACATTGTCAGAGAATGCAGTACATATTCACTCTCAATCAGGACCCCAGGGGCCAAGCAGAGACCACAGCAACCCATACTATCCTGATGCTGGTAGTCACATTTGTTGGCTTTTATCTTCTAAGTCTTATTTGTATCATCTTTTACACCTATTTTATATATTCTCATCATTCCCTGAGGCATTGCAATGACATTTTGGTTTCGGGTTTCCCTACAATTTCTCCTTTACTGTTGACCTTCAGAGACCCTAAGGGTCCTTGTTCTGTGTTCTTCAACTGTTGAAAGCCAGAGTCACTAAAAATGCCAAACACAGAAGACAGCTTTGCTAATACCATTAAATACTTTATTCCATAAATATGTTTTTAAAAGCTTGTATGAACAAGGTATGGTGCTCACTGCTATACTTATAAAAGAGTAAGGTTATAATCACTTGTTGATATGAAAAGATTTCTGGTTGGAATCTGATTGAAACAGTGAGTTATTCACCACCCTCCATTCTCT MSTHDTSLKTTEEVAFQIILLCQFGVGTFANVFLFVYNFSPISTGSKQRPRQVILRHMAVANALTLFLTIFPNNMMTFAPIIPQTDLKCKLEFFTRLVARSTNLCSTCVLSIHQFVTLVPVNSGKGILRASVTNMASYSCYSCWFFSVLNNIYIPIKVTGPQLTDNNNNSKSKLFCSTSDFSVGIVFLRFAHDATFMSIMVWTSVSMVLLLHRHCQRMQYIFTLNQDPRGQAETTATHTILMLVVTFVGFYLLSLICIIFYTYFIYSHHSLRHCNDILVSGFPTISPLLLTFRDPKGPCSVFFNC

??類似地,我們可以把上面幾個程序綜合一下,實現“DNA—(轉錄)→mRNA—(翻譯)→蛋白質”的完整過程。代碼如下:

import redef mrna_translate(seq):table = {'AUA': 'I', 'AUC': 'I', 'AUU': 'I', 'AUG': 'M','ACA': 'T', 'ACC': 'T', 'ACG': 'T', 'ACU': 'T','AAC': 'N', 'AAU': 'N', 'AAA': 'K', 'AAG': 'K','AGC': 'S', 'AGU': 'S', 'AGA': 'R', 'AGG': 'R','CUA': 'L', 'CUC': 'L', 'CUG': 'L', 'CUU': 'L','CCA': 'P', 'CCC': 'P', 'CCG': 'P', 'CCU': 'P','CAC': 'H', 'CAU': 'H', 'CAA': 'Q', 'CAG': 'Q','CGA': 'R', 'CGC': 'R', 'CGG': 'R', 'CGU': 'R','GUA': 'V', 'GUC': 'V', 'GUG': 'V', 'GUU': 'V','GCA': 'A', 'GCC': 'A', 'GCG': 'A', 'GCU': 'A','GAC': 'D', 'GAU': 'D', 'GAA': 'E', 'GAG': 'E','GGA': 'G', 'GGC': 'G', 'GGG': 'G', 'GGU': 'G','UCA': 'S', 'UCC': 'S', 'UCG': 'S', 'UCU': 'S','UUC': 'F', 'UUU': 'F', 'UUA': 'L', 'UUG': 'L','UAC': 'Y', 'UAU': 'Y', 'UAA': '_', 'UAG': '_','UGC': 'C', 'UGU': 'C', 'UGA': '_', 'UGG': 'W'}start_sit = re.search('AUG', seq)protein = ""for sit in range(start_sit.end() - 3, len(seq), 3):protein += table[seq[sit:sit + 3]]if table[seq[sit:sit + 3]] == '_':breakreturn proteindef transcription(seq):# 這里我們假設給定DNA序列為編碼鏈seq = seq.upper()seq = seq.replace('T', 'U')return seqdef read_seq(inputfile):file = open(inputfile, "r")seq = file.read()seq = seq.replace("\n", "")seq = seq.replace("\r", "")return seqif __name__ == '__main__':dna = read_seq("E:\\python_pycharm\\一些Python程序練習\\DNA\\dna.txt")print(dna) # 原DNA序列(編碼鏈)mrna = transcription(dna)print(mrna) # 轉錄出的mRNA序列print(mrna_translate(mrna)[:-1]) # 翻譯出的蛋白質序列

寫在最后

??如果你有什么更好的想法,歡迎給我留言。
??我的郵箱:1398635912@qq.com

總結

以上是生活随笔為你收集整理的Python在生物学领域的简单应用——处理DNA序列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一级黄色电影 | 在线爱情大片免费观看大全 | 日韩有码在线观看 | 日韩欧美亚洲视频 | 成人在线视频免费播放 | 青青草久久久 | 懂色av一区二区三区四区五区 | 日韩综合色 | 99爱国产| 国产精品久久久久影院 | 国产精品黄网站 | 免费看大片a | 永久免费看成人av的动态图 | 狠狠草视频 | 欧美熟妇精品黑人巨大一二三区 | 在线激情网 | 韩国女主播一区二区 | 色又黄又爽 | 黄色免费在线视频 | 亚洲精品国产成人无码 | 91麻豆精品久久久久蜜臀 | 受虐m奴xxx在线观看 | 日韩精品欧美激情 | 瑟瑟网站免费 | 国模精品一区二区三区 | 日韩免费精品视频 | 岛国av在线免费 | 永久免费在线看片 | 欧美日韩精品一区二区三区蜜桃 | 成人黄色激情网 | 777777av | 精品久久久久久无码国产 | 中文日韩欧美 | 欧美日韩视频一区二区 | 成人黄网免费观看视频 | 亚洲做受高潮 | 亚洲大片 | 精品一区久久 | 国产欧美精品在线 | 久久国产色av免费观看 | 中文写幕一区二区三区免费观成熟 | 欧美人吸奶水吃奶水 | 久久久久久久国产精品毛片 | 天天干夜夜干 | www.欧美色 | 国产精品美女久久久久久久 | 日韩高清中文字幕 | 97国产在线视频 | 日韩成人av一区 | 九色激情网 | 一节黄色片| 永久免费未满 | 欧美精品一区二区三区四区五区 | 色噜噜成人 | 黄色片在线观看免费 | 男女视频免费网站 | 亚洲天堂毛片 | 亚洲91精品 | 男女野外做受全过程 | 麻豆视频91 | 欧美精品一级二级 | 国产黑丝视频 | 糖心logo在线观看 | 日本美女裸体视频 | 人妻精品无码一区二区三区 | 国产日日夜夜 | 午夜欧美成人 | 国产又色又爽又高潮免费 | 带aaa级的网名 | 日韩视频免费观看 | 国产精品后入内射日本在线观看 | 免费的黄色大片 | 性高潮网站 | 性生交大片免费看视频 | 国产一级久久久久毛片精品 | 欧美三级国产 | 久久国产美女 | 黄色正能量网站 | 国产传媒一级片 | 久久久毛片 | 成人黄色av网址 | 天天干干干 | 午夜肉伦伦| www.在线观看av| 亚洲国产精品久久久久婷婷老年 | 超碰午夜| 小柔好湿好紧太爽了国产网址 | 国产第八页 | 天堂在线91 | 亚洲午夜久久久久久久久 | 欧美另类高清 | 鲁一鲁色一色 | 手机看片日韩在线 | 亚洲熟妇无码av | 91性高潮久久久久久久久 | 欧美日韩一区二区三区不卡 | 亚洲一级免费视频 | 成人午夜看片 | 欧美在线一区视频 |