五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

生信:種群歷史有效群體大小推斷 SMC++(三)

2023-07-21 00:03 作者:國(guó)靚  | 我要投稿

好嘛,我的文章果然有幫助到其他人!開心到爆炸!實(shí)現(xiàn)了自我價(jià)值,謝謝你陌生人?。ü奉^保命)

gen_raw_mask.pl 腳本是用于從輸入的 FASTA 文件(sm.fasta)中提取簡(jiǎn)單的重復(fù)序列(ATCGN 組成)的位置,并將結(jié)果以 BED 格式輸出。

代碼解讀如下:

  1. use strict;?和?use Bio::SeqIO;?是引入必要的 Perl 模塊,strict?告訴 Perl 在變量使用前必須聲明,Bio::SeqIO?是處理生物序列的模塊。

  2. die "perl $0 <sm.fasta> > out.bed " unless @ARGV >= 1;?是一個(gè)錯(cuò)誤處理語(yǔ)句,如果沒(méi)有提供輸入文件名,則腳本輸出錯(cuò)誤信息,并顯示正確的用法。

  3. my $infile = shift;?從命令行參數(shù)中獲取輸入的 FASTA 文件名。

  4. my $fa = Bio::SeqIO->new(-file => $infile, -format => 'fasta');?創(chuàng)建一個(gè) Bio::SeqIO 對(duì)象,用于讀取 FASTA 文件。

  5. while (my $obj = $fa->next_seq()) { ... }?是一個(gè)循環(huán),每次讀取 FASTA 文件中的一條序列,并執(zhí)行循環(huán)體內(nèi)的操作。

  6. my $id = $obj->id;?獲取當(dāng)前序列的標(biāo)識(shí)符(ID)。

  7. my $seq = $obj->seq;?獲取當(dāng)前序列的核苷酸序列。

  8. my $len = $obj->length;?獲取當(dāng)前序列的長(zhǎng)度。

  9. while ($seq =~ /([atcgn]+)/g) { ... }?是一個(gè)嵌套的 while 循環(huán),用于在當(dāng)前序列中查找簡(jiǎn)單的重復(fù)序列(ATCGN 組成)。

  10. my $e = pos($seq);?獲取重復(fù)序列的匹配終止位置,位置是從 1 開始的,所以實(shí)際終止位置需要減 1。

  11. my $l = length($1);?獲取匹配到的重復(fù)序列的長(zhǎng)度。

  12. my $s = $e - $l;?計(jì)算匹配到的重復(fù)序列的起始位置,位置是從 0 開始的。

  13. print "$id\t$s\t$e\n";?將匹配到的重復(fù)序列的位置和序列標(biāo)識(shí)符以 BED 格式輸出(tab 分隔的三列)。

整個(gè)腳本的目標(biāo)是讀取輸入的 FASTA 文件,查找其中的簡(jiǎn)單重復(fù)序列(ATCGN 組成)并輸出其位置信息(BED 格式)。

perl腳本:

#!/usr/bin/env?perl

use?strict;
use?Bio::SeqIO;

#?檢查命令行參數(shù)是否提供了輸入文件名
die?"perl?$0?<sm.fasta>?>?out.bed?"?unless?@ARGV?>=?1;

#?獲取輸入的?FASTA?文件名
my?$infile?=?shift;

#?創(chuàng)建?Bio::SeqIO?對(duì)象,用于讀取?FASTA?文件
my?$fa?=?Bio::SeqIO->new(-file?=>?$infile,?-format?=>?'fasta');

#?循環(huán)讀取?FASTA?文件中的每條序列
while?(my?$obj?=?$fa->next_seq())?{

????#?獲取當(dāng)前序列的標(biāo)識(shí)符(ID)
????my?$id?=?$obj->id;

????#?獲取當(dāng)前序列的核苷酸序列
????my?$seq?=?$obj->seq;

????#?獲取當(dāng)前序列的長(zhǎng)度
????my?$len?=?$obj->length;

????#?在當(dāng)前序列中查找簡(jiǎn)單的重復(fù)序列(ATCGN?組成)
????while?($seq?=~?/([atcgn]+)/g)?{

????????#?獲取重復(fù)序列的匹配終止位置,位置是從?1?開始的,所以實(shí)際終止位置需要減?1
????????my?$e?=?pos($seq)?-?1;

????????#?獲取匹配到的重復(fù)序列的長(zhǎng)度
????????my?$l?=?length($1);

????????#?計(jì)算匹配到的重復(fù)序列的起始位置,位置是從?0?開始的
????????my?$s?=?$e?-?$l;

????????#?將匹配到的重復(fù)序列的位置和序列標(biāo)識(shí)符以?BED?格式輸出(tab?分隔的三列)
????????print?"$id\t$s\t$e\n";
????}
}

這里涉及到要安裝 Bio::SeqIO 模塊,首先需要確保已經(jīng)安裝了 Perl 和 CPAN(Comprehensive Perl Archive Network)工具。CPAN 是 Perl 社區(qū)的一個(gè)資源庫(kù),用于下載和管理 Perl 模塊。

以下是在 Linux 和 macOS 系統(tǒng)中安裝 Bio::SeqIO 模塊的步驟:

  1. 打開終端(命令行界面)。

  2. 輸入以下命令來(lái)進(jìn)入 CPAN shell:

    cpan
  3. 第一次運(yùn)行 CPAN shell 時(shí),會(huì)提示您進(jìn)行初始配置。按照提示一步一步設(shè)置即可。

  4. 在 CPAN shell 中,輸入以下命令來(lái)安裝 Bio::SeqIO 模塊:

    install?Bio::SeqIO
  5. CPAN shell 將自動(dòng)下載、編譯和安裝 Bio::SeqIO 及其依賴項(xiàng)。

  6. 安裝完成后,輸入?quit?命令退出 CPAN shell。

gen_raw_mask.pl是程序自帶的

github連接:
https://github.com/lh3/misc/tree/cc0f36a9a19f35765efb9387389d9f3a6756f08f/seq/seqbility

這段代碼是一個(gè) Perl 腳本,用于處理輸入的 BWA SAM 文件并生成一個(gè)基因組掩碼(genome mask)的輸出。

  • 腳本首先定義了一個(gè)子例程?main,用于處理輸入并執(zhí)行主要操作。然后通過(guò)調(diào)用?main?子例程來(lái)運(yùn)行整個(gè)腳本。

  • 在?main?子例程中,首先檢查命令行參數(shù)是否正確,如果參數(shù)錯(cuò)誤,則輸出使用說(shuō)明并退出腳本。

  • 然后,腳本定義了一個(gè)數(shù)組?@conv,用于保存字符轉(zhuǎn)換表。接下來(lái),通過(guò)計(jì)算?conv?表中的元素值,來(lái)構(gòu)建一個(gè)轉(zhuǎn)換表。轉(zhuǎn)換表用于將兩個(gè)整數(shù) a0 和 a1 映射為一個(gè)字符,并將該字符附加到序列?seq?中。

  • 在核心循環(huán)中,腳本逐行讀取輸入文件(或從標(biāo)準(zhǔn)輸入讀?。?,解析 SAM 文件的內(nèi)容,并將匹配情況映射到字符。然后,將得到的字符拼接到?seq?變量中。

  • 子例程?print_seq?負(fù)責(zé)將生成的序列打印輸出。它根據(jù)每行最大長(zhǎng)度 60 的格式,將序列按行打印。

  • 子例程?int_log2?用于計(jì)算給定整數(shù) v 的 log2 值,并返回結(jié)果。

綜上所述,這個(gè) Perl 腳本的目標(biāo)是將輸入的 BWA SAM 文件轉(zhuǎn)換為一個(gè)基因組掩碼,并將掩碼輸出到標(biāo)準(zhǔn)輸出或文件中。掩碼中的每個(gè)字符表示匹配情況,并通過(guò)一個(gè)轉(zhuǎn)換表將兩個(gè)整數(shù)映射為一個(gè)字符。生成的掩碼序列以每行 60 個(gè)字符的格式輸出。


生信:種群歷史有效群體大小推斷 SMC++(三)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
尚志市| 临桂县| 新宁县| 民乐县| 临桂县| 彰武县| 丹阳市| 兴义市| 南郑县| 石泉县| 沁水县| 扬州市| 杭州市| 旅游| 翼城县| 孝感市| 梁平县| 望都县| 新民市| 罗源县| 斗六市| 观塘区| 曲麻莱县| 墨玉县| 新河县| 绥江县| 炉霍县| 高台县| 虞城县| 花莲市| 嵩明县| 宕昌县| 磐安县| 土默特左旗| 昌吉市| 密山市| 万盛区| 怀集县| 青阳县| 余庆县| 桐城市|