String 字符串中的字符位置
我有一个数据帧,在String 字符串中的字符位置,string,r,perl,String,R,Perl,我有一个数据帧,在列1中有字符串,在列2中有ID。字符串包含A、T、G或C。 我想打印位置1处有A的行。 然后我想打印位置2处有A的行,依此类推,并将它们保存在单独的文件中。 到目前为止,我已经使用R中的biostrings进行了类似的分析,但它不能完全解决这个问题。我想使用perl Sequence ID TATACAAGGGCAAGCTCTCTGT mmu-miR-381-3p TCGGATCCGTCTGAGCT mmu-miR-127-3p AT
列1
中有字符串,在列2
中有ID。字符串包含A、T、G或C
。
我想打印位置1处有A
的行。
然后我想打印位置2处有A
的行,依此类推,并将它们保存在单独的文件中。
到目前为止,我已经使用R中的biostrings进行了类似的分析,但它不能完全解决这个问题。我想使用perl
Sequence ID
TATACAAGGGCAAGCTCTCTGT mmu-miR-381-3p
TCGGATCCGTCTGAGCT mmu-miR-127-3p
ATAGTAGACCGTATAGCGTACG mmu-miR-411-5p
......
600 more lines
生物管柱将完美地工作,并且速度相当快。让我们调用您的DNA stringset
mydata
HasA <- sapply(mydata,function(x) as.character(x[2]) == "A")
HasA不确定预期结果
mydata <- read.table(text="Sequence ID
TATACAAGGGCAAGCTCTCTGT mmu-miR-381-3p
TCGGATCCGTCTGAGCT mmu-miR-127-3p
ATAGTAGACCGTATAGCGTACG mmu-miR-411-5p",sep="",header=T,stringsAsFactors=F)
mCh <- max(nchar(mydata[,1])) #gives the maximum number of characters in the first column
sapply(seq(mCh), function(i) substr(mydata[,1],i,i)=="A") #gives the index
使用索引值
提取行。第一名
mydata[res$values[res$ind==1],]
# Sequence ID
# 3 ATAGTAGACCGTATAGCGTACG mmu-miR-411-5p
使用perl单行程序
perl -Mautodie -lane '
BEGIN {($f) = @ARGV}
next if $. == 1;
my @c = split //, $F[0];
for my $i (grep {$c[$_] eq "A"} (0..$#c)) {
open my $fh, ">>", "$f.$i";
print $fh $_;
}
' file
第一次运行是data[,1][order(子字符串(data[,1],1,1))]
。所以你应该能够遍历每个字符串的字母谢谢,我来试试,如何从原始的输入矩阵中打印出每个位置都为真的行?
mydata[res$values[res$ind==1],]
# Sequence ID
# 3 ATAGTAGACCGTATAGCGTACG mmu-miR-411-5p
perl -Mautodie -lane '
BEGIN {($f) = @ARGV}
next if $. == 1;
my @c = split //, $F[0];
for my $i (grep {$c[$_] eq "A"} (0..$#c)) {
open my $fh, ">>", "$f.$i";
print $fh $_;
}
' file