小编use*_*605的帖子

使用snp位置修改Sequence并在同一文件中输出

我有两个文件,一个有位置信息,另一个是序列信息.现在我需要读取位置并在位置上取snps并用序列中的snp信息替换该位置基数并将其写入snp信息文件中...例如

Snp文件包含

10 A C A/C
Run Code Online (Sandbox Code Playgroud)

序列文件包含

ATCGAACTCTACATTAC
Run Code Online (Sandbox Code Playgroud)

这里第10个元素是T所以我将用[A/C]替换T,所以最终的输出应该是

10 A C A/C ATCGAACTC[A/C]ACATTAC
Run Code Online (Sandbox Code Playgroud)

示例文件是

Snp文件

SNP Ref Alt
10  A   C
19  G   C
30  C   T
42  A   G
Run Code Online (Sandbox Code Playgroud)

序列 :

序列1 CTAGAATCAAAGCAAGAATACACTCTTTTTTTTGGAAAAGAATATCTCATGTTTGCTCTT

最终输出:

SNP Ref Alt Output
10  A   C   CTAGAATCA[A/C]AGCAAGAANACACTCTTTTTTTTGGAAAAGAATATCTCATGTTTGCTCTT
19  G   C   CTAGAATCANAGCAAGAA[C/G]ACACTCTTTTTTTTGGAAAAGAATATCTCATGTTTGCTCTT
30  C   T   CTAGAATCAAAGCAAGAATACACTCTTTT[T/C]TTTGGAAAAGAATATCTCATGTTTGCTCTT
42  A   G   CTAGAATCAAAGCAAGAATACACTCTTTTTTTTGGAAAAGA[A/G]TATCTCATGTTTGCTCTT
Run Code Online (Sandbox Code Playgroud)

在从Ref和Alt列替换这里的snps时,我们需要考虑{A,T,C,G}的顺序,就像[Ref/Alt]一样,第一个基数应该是A或T或C,然后是订购.

另一件事是如果我们采取snp位置,并且如果有10个碱基差异的任何snps,我们需要用"N"替换该snp位置.在上面的例子中,前两个位置差异为9,我们用'N'替换另一个元素.

我已编写代码,按顺序打印位置,并用snp位置替换序列但无法读取附近位置并替换为N.

我的方法可能是完全错误的,因为我是编码的初学者.我认为通过使用哈希,我们可能很容易实现这一点,但我不太熟悉哈希..帮助请一些建议...我不必坚持只有perl ,

my $input_file = $ARGV[0];
my $snp_file = $ARGV[1];
my $output_file = $ARGV[2];

%sequence_hash = ();

open SNP, $snp_file || …
Run Code Online (Sandbox Code Playgroud)

perl awk sed

5
推荐指数
1
解决办法
331
查看次数

使用group by进行前N行的SQL查询

嗨我尝试了很多方法来解决这个问题,但遗漏了一些事情......我有两张桌子学生和分数

Sid Cid Score
6   1   90
1   1   80
4   1   80
3   1   70
2   1   60
6   2   80
1   2   70
2   2   60
4   2   60
5   2   50
4   3   80
7   3   80
6   3   70
8   3   60
2   3   50

Sid Sname Sbday   Ssex
1   As  1980    female
2   Al  1986    male
3   An  1989    male
4   ja  1986    male
5   ma  1983    female
6   phi 1986    male
7   Geo 1993 …
Run Code Online (Sandbox Code Playgroud)

sql oracle

3
推荐指数
1
解决办法
9029
查看次数

标签 统计

awk ×1

oracle ×1

perl ×1

sed ×1

sql ×1