AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-216256

Anna1364's questions

Martin Hope
Anna1364
Asked: 2023-09-21 07:17:11 +0800 CST

根据另一个文件中的匹配模式重命名文件

  • 5

我有一个文件列表:

out_CCGCGGTT+CTAGCGCT_R1.fq.gz
out_TTATAACC+TCGATATC_R2.fq.gz
out_GGACTTGG+CGTCTGCG_R1.fq.gz
out_AAGTCCAA+TACTCATA_R2.fq.gz
...

适配器 ID(两个下划线之间,如 AACGTTCC+AGTACTCC、AACGTTCC+AGTACTCC)与 ID.file.txt 的第一列匹配

head ID.file.txt:
CCGCGGTT+CTAGCGCT   NHL_332_N
TTATAACC+TCGATATC   NHL_333_T
GGACTTGG+CGTCTGCG   NHL_334_T
AAGTCCAA+TACTCATA   NHL_335_T
ATCCACTG+ACGCACCT   NHL_336_N
GCTTGTCA+GTATGTTC   NHL_337_N
CAAGCTAG+CGCTATGT   NHL_338_N
TGGATCGA+TATCGCAC   NHL_339_T
...

我想重命名这些文件,并将适配器 ID 替换为真实 ID(ID 文件的第二列)(如果它们匹配),并从开头删除“out”。

所以我的最终文件名,例如:

NHL_332_N_R1.fq.gz
NHL_333_T_R2.fq.gz
NHL_334_T_R1.fq.gz
NHL_335_T_R2.fq.gz

有什么办法可以在bash中做到这一点吗?

bash
  • 2 个回答
  • 31 Views
Martin Hope
Anna1364
Asked: 2023-05-19 01:21:24 +0800 CST

根据某些条件过滤行

  • 5

我有一些 vcf 文件,我想过滤掉一些变体。这只是我的 vcf 的一小部分:文件开头有一些标题行(以 ## 开头),然后是变体(每个变体一行)。

##fileformat=VCFv4.2
##source=combiSV-v2.2
##fileDate=Mon May  8 11:32:53 2023
##contig=<ID=chrM,length=16571>
##contig=<ID=chr1,length=249250621>    
##INFO=<ID=END,Number=1,Type=Integer,Description="End position of the variant described in this record">
##INFO=<ID=SVCALLERS,Number=.,Type=String,Description="SV callers that support this SV">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=DR,Number=1,Type=Integer,Description="# High-quality reference reads">
##FORMAT=<ID=DV,Number=1,Type=Integer,Description="# High-quality variant reads">
#CHROM  POS ID  REF ALT QUAL    FILTER  INFO    FORMAT  Sample
1   10862   id.1    N   <INS>   .   PASS    SVTYPE=INS;SVLEN=101;END=10862;SVCALLERS=cutesv,SVIM    GT:DR:DV    1/1:0:26
1   90258   id.2    N   <INS>   .   PASS    SVTYPE=INS;SVLEN=118;END=90258;SVCALLERS=SVIM,NanoSV    GT:DR:DV    1/1:0:9
1   90259   id.3    N   <INS>   .   PASS    SVTYPE=INS;SVLEN=36;END=90259;SVCALLERS=Sniffles    GT:DR:DV    0/1:44:7
1   185824  id.4    N   <DEL>   .   PASS    SVTYPE=DEL;SVLEN=80;END=186660;SVCALLERS=Sniffles,cutesv    GT:DR:DV    1/1:0:15
1   186241  id.5    N   <DEL>   .   PASS    SVTYPE=DEL;SVLEN=418;END=186662;SVCALLERS=SVIM,NanoSV   GT:DR:DV    1/1:2:12
1   526111  id.6    N   <DEL>   .   PASS    SVTYPE=DEL;SVLEN=624;END=526735;SVCALLERS=Sniffles,cutesv   GT:DR:DV    0/1:8
2   91926078    id.3958 N   <BND>   .   PASS    SVTYPE=BND;SVLEN=.;END=;SVCALLERS=Sniffles,NanoSV   GT:DR:DV    0/1:60:15

在保留标题行的同时,我想删除 SVLEN < 100 的行和仅包含一个 SVCALLERS 的行(这是两个都必须满足的两个条件,换句话说,我只想保留 SVLEN > 100 和至少两个 SVCALLERS 的行). 另外有一些行 ALT 是 BND 并且 vcf 没有为这种类型的变体提供任何 SVLEN,如果该行包含 BND,我只想保留它,如果它被两个调用者支持。示例:我想删除此变体,因为 SVLEN 小于 100,并且只有一个 SVCALLERS 检测到它

SVTYPE=INS;SVLEN=36;END=90259;SVCALLERS=Sniffles    GT:DR:DV    0/1:44:7
    1   185824  id.4    N   <DEL>   .   PASS

或者这一行也是,虽然有两个调用者但是SVLEN小于100:

SVTYPE=DEL;SVLEN=80;END=186660;SVCALLERS=Sniffles,cutesv    GT:DR:DV    1/1:0:15
    1   186241  id.5    N   <DEL>   .   PASS    

有简单的方法吗?谢谢

我的最终文件应如下所示:

##fileformat=VCFv4.2
##source=combiSV-v2.2
##fileDate=Mon May  8 11:32:53 2023
##contig=<ID=chrM,length=16571>
##contig=<ID=chr1,length=249250621>    
##INFO=<ID=END,Number=1,Type=Integer,Description="End position of the variant described in this record">
##INFO=<ID=SVCALLERS,Number=.,Type=String,Description="SV callers that support this SV">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=DR,Number=1,Type=Integer,Description="# High-quality reference reads">
##FORMAT=<ID=DV,Number=1,Type=Integer,Description="# High-quality variant reads">
#CHROM  POS ID  REF ALT QUAL    FILTER  INFO    FORMAT  Sample
1   10862   id.1    N   <INS>   .   PASS    SVTYPE=INS;SVLEN=101;END=10862;SVCALLERS=cutesv,SVIM    GT:DR:DV    1/1:0:26
1   90258   id.2    N   <INS>   .   PASS    SVTYPE=INS;SVLEN=118;END=90258;SVCALLERS=SVIM,NanoSV    GT:DR:DV    1/1:0:9
1   186241  id.5    N   <DEL>   .   PASS    SVTYPE=DEL;SVLEN=418;END=186662;SVCALLERS=SVIM,NanoSV   GT:DR:DV    1/1:2:12
1   526111  id.6    N   <DEL>   .   PASS    SVTYPE=DEL;SVLEN=624;END=526735;SVCALLERS=Sniffles,cutesv   GT:DR:DV    0/1:8
2   91926078    id.3958 N   <BND>   .   PASS    SVTYPE=BND;SVLEN=.;END=;SVCALLERS=Sniffles,NanoSV   GT:DR:DV    0/1:60:15
text-processing
  • 2 个回答
  • 49 Views
Martin Hope
Anna1364
Asked: 2020-02-01 16:13:48 +0800 CST

基于除标题之外的另一个文件对文本文件进行排序

  • 1

我有一个文件,其中第一列和第二列是个人 ID,其余是基因型信息(我应该提到每个人有两行)。该文件有一个标题行,但仅适用于基因型列,而不是个人 ID 的第一列和第二列)。

        SNP_1 SNP_2 SNP_3 SNP_4 SNP_5
2014TOR010  1   3 1 4 4 3 3 2 3 1
2014TOR010  1   1 1 2 4 3 3 2 4 1 
06SELI0115  1   3 1 4 4 3 3 2 3 1  
06SELI0115  1   3 1 2 4 3 2 2 3 2
2014TOR011  1   3 1 4 4 3 3 2 3 1 
2014TOR011  1   1 1 2 4 1 3 2 4 2 
....

我想根据另一个文件对该文件进行排序:

head sorted.snps.txt
2014TOR011
06SELI0115
2014TOR010

但我想保留标题。这是我想要的输出:head out.desired

      SNP_1 SNP_2 SNP_3 SNP_4 SNP_5
2014TOR011  1   3 1 4 4 3 3 2 3 1 
2014TOR011  1   1 1 2 4 1 3 2 4 2
06SELI0115  1   3 1 4 4 3 3 2 3 1  
06SELI0115  1   3 1 2 4 3 2 2 3 2
2014TOR010  1   3 1 4 4 3 3 2 3 1
2014TOR010  1   1 1 2 4 3 3 2 4 1 
....
awk text-processing
  • 1 个回答
  • 111 Views
Martin Hope
Anna1364
Asked: 2019-11-18 16:19:50 +0800 CST

当列值不相同时如何只打印那些行?

  • -1

我有一个大文件计数基因型输入文件。这是前几行:

LocusID f nAlleles x y
2L:8347 1 2 44.3166 -12.2373
2L:8347 1 2 39.2667 -6.8333
2L:31184 1 2 39.2667 -6.8333
2L:31184 1 2 39.2667 -6.8333
2L:42788 1 2 39.2667 -6.8333
2L:42788 1 2 39.2667 -6.8333
2L:42887 1 2 39.2667 -6.8333
2L:42887 1 2 39.2667 -6.8333

第一列是基因座 ID,对于每个基因座,我有两行具有相同的基因座 ID。我只想保留那些 x 列和 y 列对于每个基因座不合格的那些。

这是上面示例中我想要的输出

out
2L:8347 1 2 44.3166 -12.2373
2L:8347 1 2 39.2667 -6.8333

知道我该怎么做吗?

text-processing
  • 4 个回答
  • 173 Views
Martin Hope
Anna1364
Asked: 2019-06-19 10:37:35 +0800 CST

如何在数字后面添加括号和赋值运算符

  • 1

我有一个大约 1000 行的文件,这里是前几行:

head file.regions.txt
cregions1
cregions2
cregions3
cregions4
cregions5
cregions6
cregions7
cregions8
cregions9
cregions10
...

我想在数字周围添加括号,并在数字后的每一行中添加“<-”!这是我想要的输出

head file.regions.output.txt
    cregions[1] <-
    cregions[2] <-
    cregions[3] <-
    cregions[4] <-
    cregions[5] <-
    cregions[6] <-
    cregions[7] <-
    cregions[8] <-
    cregions[9] <-
    cregions[10] <-
    ...
text-processing sed
  • 2 个回答
  • 307 Views
Martin Hope
Anna1364
Asked: 2019-06-13 11:08:55 +0800 CST

如何为文件匹配文件名中的唯一字符生成列?

  • 1

我有一堆文件

an_ar_chrom10_pos1_sun_td.txt
an_ar_chrom11_pos1_sun_td.txt
an_ar_chrom13_pos1_sun_td.txt
an_ar_chrom17_pos1_sun_td.txt
an_ar_chrom17_pos2_sun_td.txt
...

每个文件都有类似的格式看起来像这样

head an_ar_chrom10_pos1_sun_td.txt
    "region" "start" "stop" "mid" "G1_TD" "G2_TD" "G3_TD" "G4_TD"
    "45000002 - 45010001 " 45000002 45010001 90.010003 NA NA NA NA
    "45010002 - 45020001 " 45010002 45020001 90.030003 -1.19087678772119 -0.947895467698369 -0.724767209958411 -0.957244005901499
    "45020002 - 45030001 " 45020002 45030001 90.050003 NA NA NA NA
    "45030002 - 45040001 " 45030002 45040001 90.070003 NA NA NA NA

我想根据每个文件名中的一些唯一字符为每个文件添加一个额外的列(例如,第一个文件的 chrom10_pos1,第二个文件的 chrom11_pos1 等

这是我想要的输出

head an_ar_chrom10_pos1_sun_td_with_id.txt
"region" "start" "stop" "mid" "G1_TD" "G2_TD" "G3_TD" "G4_TD" "ID_
"45000002 - 45010001 " 45000002 45010001 90.010003 NA NA NA NA chrom10_pos1
"45010002 - 45020001 " 45010002 45020001 90.030003 -1.19087678772119 chrom10_pos1-0.947895467698369 -0.724767209958411 -0.957244005901499 chrom10_pos1
"45020002 - 45030001 " 45020002 45030001 90.050003 NA NA NA NA chrom10_pos1
"45030002 - 45040001 " 45030002 45040001 90.070003 NA NA NA NA chrom10_pos1
text-processing
  • 1 个回答
  • 23 Views
Martin Hope
Anna1364
Asked: 2019-04-09 09:48:58 +0800 CST

提取两个逗号之间的字符?

  • 4

我有一个大约 300 万行的文件,这是我文件的前几行:

head out.txt
    NA
    NA
    NA
    NA
    NA
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753,gene85754
    gene85752,gene85753,gene85754
    gene85752,gene85753,gene85754
    gene85752,gene85753,gene85754
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752
    gene85752

对于那些以“,”分隔的行,我想保留第一个逗号之后和第二个逗号之前的所有内容。这是我想要的输出:

outgood.txt
NA
NA
NA
NA
NA
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85752
gene85752
awk text-processing
  • 4 个回答
  • 1769 Views
Martin Hope
Anna1364
Asked: 2019-04-04 08:58:23 +0800 CST

如何为具有重叠区域的间隔分配值?

  • -1

我有两个大文件,第一个文件包含一些 85K 行的间隔:

head data.intervals
id  id_uniq numberA numberB
1   g1  5   20
1   g2  6   29
1   g3  17  35
1   g4  37  46
1   g5  50  63
1   g6  70  95
1   g7  87  93
2   g8  3   15
2   g9  10  33
2   g10 60  77
2   g11 90  132

第二个文件包含一些超过 200 万行的位置:

head data.posiitons
id  number
1   4
1   19
1   36
1   49
1   90
2   1
2   20
2   89
2   93
2   120

我想做的是:对于位置文件“number”列中的每个值,搜索它是否等于或介于 data.intervals 文件的“numberA”和“numberB”对值中的任何一个。

此外,对于这个“numberA”和“numberB”对值,其各自的“id”必须与 data.position 中的“id”匹配。如果这都是真的,那么我想将 data.intervals 中的相应“id.uniq”插入到 data.posiitons 文件中相应行的列中。

这里还有另一个问题:其中一些区间相​​互重叠,一个位置可能落在 2 个或超过 2 个区间的范围内。我想将它们分别分配给每个间隔。

这是我希望得到的最终输出(NA 表示位置不在任何间隔范围内):

   id   number  assigned1
1   4   NA
1   19  g1,g2,g3
1   36  NA
1   49  NA
1   90  g6,g7
2   1   NA
2   20  g9
2   89  NA
2   93  g11
2   120 g11

是否有任何解决方案可以使用 bash 或 perl 脚本完成此任务?

text-processing command-line
  • 3 个回答
  • 201 Views
Martin Hope
Anna1364
Asked: 2019-04-02 07:10:12 +0800 CST

删除重复的行

  • 0

我有一个包含一堆行的文件,这是它的样子(只是一个文件头):

    "chrom" "startA" "stopA" "genesA" "startB" "stopB" "genesB" "test"
    1 315121 317607 "gene2" 315521 317204 "gene3" 1684
    1 315521 317204 "gene3" 315121 317607 "gene2" 1684
    1 407644 408993 "gene4" 408421 409504 "gene5" 573
    1 407644 408993 "gene4" 408616 410013 "gene6" 378
    1 408421 409504 "gene5" 407644 408993 "gene4" 573
    1 408421 409504 "gene5" 408616 410013 "gene6" 889
    1 408616 410013 "gene6" 407644 408993 "gene4" 378
    1 408616 410013 "gene6" 408421 409504 "gene5" 889
    1 408616 410013 "gene6" 409682 411483 "gene7" 332
....

有一些相同的行(同一对基因,只是开始和停止位置的顺序不同,但它们完全相同)我需要删除重复的行。例如:

1 315121 317607 "gene2" 315521 317204 "gene3" 1684
1 315521 317204 "gene3" 315121 317607 "gene2" 1684

是相同的,它是基因 2 和 3 的组合,只是顺序不同,我想删除其中一个。

这是我想要的输出:

"chrom" "startA" "stopA" "genesA" "startB" "stopB" "genesB" "test"
    1 315121 317607 "gene2" 315521 317204 "gene3" 1684
    1 407644 408993 "gene4" 408421 409504 "gene5" 573
    1 407644 408993 "gene4" 408616 410013 "gene6" 378
    1 408421 409504 "gene5" 408616 410013 "gene6" 889
    1 408616 410013 "gene6" 409682 411483 "gene7" 332

有什么想法我可以完成这项任务吗?谢谢

text-processing sed
  • 3 个回答
  • 104 Views
Martin Hope
Anna1364
Asked: 2018-11-12 08:28:11 +0800 CST

合并具有相似字符的文件

  • 0

我有一个包含数百个文件的文件夹。这些文件是 510 个基因型文件中 26 个环境变量的评分文件。例如,在下面的示例中,_s2。是第二个环境变量,_s3。是第三个环境变量,等等 。_9_表示这是第 9 个基因型文件。

lfmm_run2_9_s2.3.zscore
lfmm_run2_9_s24.3.zscore
lfmm_run2_9_s25.3.zscore
lfmm_run2_9_s26.3.zscore
lfmm_run2_9_s3.3.zscore
lfmm_run2_9_s4.3.zscore
lfmm_run2_9_s5.3.zscore
lfmm_run2_9_s6.3.zscore
lfmm_run2_9_s7.3.zscore
lfmm_run2_9_s8.3.zscore
lfmm_run2_9_s9.3.zscore
...

我想合并每个环境变量的基因型文件。我正在做的是

cat lfmm_run2_{1..510}_s1.3.zscore > env1
cat lfmm_run2_{1..510}_s2.3.zscore > env2
cat lfmm_run2_{1..510}_s3.3.zscore > env3

但是对所有 26 个环境变量一一执行此操作需要花费大量时间。有没有更快的方法通过一个命令一起完成这一切?

text-processing cat
  • 1 个回答
  • 30 Views
Martin Hope
Anna1364
Asked: 2018-10-17 08:02:42 +0800 CST

当某些列在 2 个文件之间匹配时,如何将列从文件 2 复制到文件 1

  • -1

我有一个文件

head top_candidates
    25 elevation_e gene1 20 9 0.0246022994932004 5 8 10.9217937824527
    30 elevation_e gene1 59 18 0.0246022994932004 7 12 15.653559774527
    31 elevation_e gene3 34 10 0.0246022994932004 6 9 9.47018201139585
    108 elevation_e gene3 18 6 0.0246022994932004 4 7 6.86419248099239

和另一个文件

head genes.bed
Chr00c0001  52974   70567   gene1
Chr00c0003  32983   33237   gene2
Chr00c0003  36241   36792   gene3
Chr00c0003  100286  101468  gene4
Chr00c0004  80876   93710   gene5

当文件 2 (gene1,2,..) 的第 4 列与文件 1 的第 3 列匹配时,我想将第二个文件的第 1,2 和第 3 列粘贴到第一个文件。

我想要的输出:

head desired
25 elevation_e gene1 20 9 0.0246022994932004 5 8 10.9217937824527 Chr00c0001    52974   70567 
30 elevation_e gene1 59 18 0.0246022994932004 7 12 15.653559774527 Chr00c0001    52974   70567 
31 elevation_e gene3 34 10 0.0246022994932004 6 9 9.47018201139585 Chr00c0003    36241   36792
108 elevation_e gene3 18 6 0.0246022994932004 4 7 6.86419248099239 Chr00c0003    36241   36792
awk text-processing
  • 1 个回答
  • 34 Views
Martin Hope
Anna1364
Asked: 2018-08-14 09:10:37 +0800 CST

如何仅打印以特定字符为星标的每一行的一部分

  • -2

我有一个超过 10,000 行的文件:

head samples   
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192170/type/READ_SET_FASTQ/filename/HI.2613.007.Custom_0022.ED9_SD2A27-1_180_R1.fastq.gz.md5
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192170/type/READ_SET_FASTQ_PE/filename/HI.2613.007.Custom_0022.ED9_SD2A27-1_180_R2.fastq.gz.md5
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192171/type/READ_SET_FASTQ/filename/HI.2613.007.Custom_0021.ED4_KS1A29-7_338_R1.fastq.gz.md5
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192171/type/READ_SET_FASTQ_PE/filename/HI.2613.007.Custom_0021.ED4_KS1A29-7_338_R2.fastq.gz.md5
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192168/type/READ_SET_FASTQ/filename/HI.2613.007.Index_18.ED17_MO1A26-7_353_R1.fastq.gz.md5
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192168/type/READ_SET_FASTQ_PE/filename/HI.2613.007.Index_18.ED17_MO1A26-7_353_R2.fastq.gz.md5
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192169/type/READ_SET_FASTQ/filename/HI.2613.007.Index_14.ED14_IA2A35-2_310_R1.fastq.gz.md5

我只想打印以“HI.*”开头的每一行的一部分

这是我想要的输出:

HI.2613.007.Custom_0022.ED9_SD2A27-1_180_R1.fastq.gz
HI.2613.007.Custom_0022.ED9_SD2A27-1_180_R2.fastq.gz
HI.2613.007.Custom_0021.ED4_KS1A29-7_338_R1.fastq.gz
HI.2613.007.Custom_0021.ED4_KS1A29-7_338_R2.fastq.gz
HI.2613.007.Index_18.ED17_MO1A26-7_353_R1.fastq.gz
HI.2613.007.Index_18.ED17_MO1A26-7_353_R2.fastq.gz
awk text-processing
  • 3 个回答
  • 63 Views
Martin Hope
Anna1364
Asked: 2018-07-31 15:07:22 +0800 CST

如何删除特定列的最后 n 个字符

  • 0

我有一个文件

had my.file
    Ha1_00044012__C 1 51035805 10.35639322
    Ha1_00045184__C 1 86676829 10.07929888
    Ha1_00045056__C 1 150178524 19.44076068
    Ha10_00000491__C 10 73473488 10.6038893
    Ha10_00000577__C 10 78976728 12.45451149
    Ha10_00002949__C 10 113658711 14.94370396
    Ha10_00001805__C 10 220068670 10.87452401

我想从第一列中删除最后 3 个字符“__C”。我试过了

awk '{gsub(/[__c ]/,"",$1)}3'

但它会删除第一列中的所有“_”。我想要的输出应该是这样的:

head desired
Ha1_00044012 1 51035805 10.35639322
Ha1_00045184 1 86676829 10.07929888
Ha1_00045056 1 150178524 19.44076068
Ha10_00000491 10 73473488 10.6038893
Ha10_00000577 10 78976728 12.45451149
Ha10_00002949 10 113658711 14.94370396
Ha10_00001805 10 220068670 10.87452401
awk text-processing
  • 4 个回答
  • 3036 Views
Martin Hope
Anna1364
Asked: 2018-07-14 14:04:22 +0800 CST

将列转换为行[重复]

  • 1
这个问题在这里已经有了答案:
文件的行到列转换 14个答案
4年前关闭。

我有档案

head file1
12 0 
9 3 
12 0 
12 0 
12 0 
12 0 
7 5 

我想将第二列转换为行

head desired

12
0
9
3
12
0
12
0
12
0
7
5

谢谢

text-processing
  • 5 个回答
  • 9344 Views
Martin Hope
Anna1364
Asked: 2018-06-12 09:52:54 +0800 CST

查找公共标识符的开始和结束位置

  • 1

我有一个看起来像这样的文件

chrom_pos   chrom    position        BF         window_id
"Chr01__69500112" 1 69500112 10.1214802 "window_1391"
"Chr01__69500129" 1 69500129 -7.59047205 "window_1391"
"Chr01__69500156" 1 69500156 8.475337 "window_1391"
"Chr01__69500197" 1 69500197 10.37964237 "window_1391"
"Chr01__69500233" 1 69500233 -8.59724917 "window_1391"
...
...
...
"Chr01__87300054" 1 87300054 -2.1058919 "window_1747"
"Chr01__87300107" 1 87300107 2.39553299 "window_1747"
"Chr01__87300686" 1 87300686 -11.03002514 "window_1747"
"Chr01__87300694" 1 87300694 -5.9689038 "window_1747"
"Chr01__87300709" 1 87300709 -5.52387942 "window_1747"
"Chr01__87300800" 1 87300800 -3.63119004 "window_1747"
...
...
...
"Chr17__200219189" 17 200219189 -2.30332074 "window_59705"
"Chr17__200219216" 17 200219216 15.04053029 "window_59705"
"Chr17__200219284" 17 200219284 -3.74266312 "window_59705"
"Chr17__200220333" 17 200220333 -1.91153668 "window_59705"
"Chr17__200241059" 17 200241059 -11.47407263 "window_59705"

对于window_id列中的每个窗口,我想知道起始位置(window_id 以它开始的位置)和结束位置(window_id 以它结束的位置),并获得如下输出:

window_id      chrom   starting_positon   ending_position
window_1391     1      69500112           69500233 
window_1747     1      87300054           87300800
window_59705    17     200219189          200241059

每个窗口的条目都是有序的,并且也在正链上。

awk text-processing
  • 1 个回答
  • 71 Views
Martin Hope
Anna1364
Asked: 2018-05-08 10:00:31 +0800 CST

ID匹配时如何从另一个文件复制列(每个文件夹中有多个文件)

  • 0

我刚遇到一个问题。这与我在 ID 匹配时如何从另一个文件复制列之前已经询问过的内容非常相似,但有一些区别。

我有一个文件夹(folder1),其中包含多个文件:

desired_pos142535974
desired_pos142540918
desired_pos142541687
desired_pos142541814
desired_pos142541910
desired_pos142542976

头文件看起来像这样

head desired_pos142535974
1   142535974   196 HG00100
1   142535974   64 HG00101
1   142535974   63 HG00103
1   142535974   26 HG00108
1   142535974   85 HG00110
1   142535974   83 HG00114
1   142535974   148 HG00115

我有另一个文件夹(folder2)

desired_output_pos142535974_g
desired_output_pos142540918_g
desired_output_pos142541687_g
desired_output_pos142541814_g
desired_output_pos142541910_g
desired_output_pos142542976_g

folder2 中的每个文件看起来像这样

head desired_output_pos142535974_g
    HG00096 0|1
    HG00097 1|0
    HG00099 0|1
    HG00100 1|0
    HG00101 0|1
    HG00102 0|1
    HG00103 1|1

文件夹 1 中的每个文件在文件夹 2 中都有一个相同的文件,具有相同的“pos....”ID(例如,desired_pos142535974 和desired_output_pos142535974_g 都属于同一个人)。

所以,这次我想检查文件夹 1 中文件的最后一列是否与文件夹 2 中具有相同“pos”ID 的文件的第一列相匹配,将文件 2 的第二列添加到 file1,最后得到一些东西喜欢

head desires_pos142535974
1   142535974   196 HG00100  1|0
1   142535974   64 HG00101   0|1
1   142535974   63 HG00103   1|1
awk text-processing
  • 1 个回答
  • 88 Views
Martin Hope
Anna1364
Asked: 2018-05-05 10:07:22 +0800 CST

从文件中提取与第二个文件匹配的行并将它们合并为单个文件

  • 0

我有一个文件包含一些职位,

head positions
142541687
142541814
142541910
142542976
142544533
142546366
142548674
142560386

我有另一个文件夹包含 1800 个文件,每个文件属于一个人(总共 1800 个人)。第 2 列是位置,第 4 列是个人 ID:

 head NA20507.mapped.ILLUMINA.bwa.TSI.low_coverage.20130415.bam_dp
1   142541687   78 NA20507
1   142535975   79 NA20507
1   142535976   79 NA20507
1   142535977   77 NA20507
1   142535978   78 NA20507
1   142535979   77 NA20507

或另一个人的例子,

head NA20901.mapped.ILLUMINA.bwa.GIH.low_coverage.20120522.bam_dp
1   142541687   135 NA20901
1   142535975   135 NA20901
1   142535976   137 NA20901
1   142535977   138 NA20901
1   142535978   138 NA20901
1   142535979   136 NA20901
1   142535980   135 NA20901

对于每个单独的文件,我只想保留那些具有位置文件中位置的行(单个文件的第二列与位置文件匹配),但是我想分别为每个位置存储它!

   cat NA20507.mapped.ILLUMINA.bwa.TSI.low_coverage.20130415.bam_dp_match142541687
        1   142541687   78 NA20507

最后,我想为所有个人合并这些文件:例如位置 142541687

head desired_pos142541687
1   142541687   78  NA20507
1   142541687   135 NA20901

或职位 142542976;

desired_pos142542976

    1   142535976   79 NA20507
    1   142535976   137 NA20901
awk text-processing
  • 1 个回答
  • 116 Views
Martin Hope
Anna1364
Asked: 2018-05-04 11:11:28 +0800 CST

ID匹配时如何从另一个文件中复制列

  • 0

我有2个文件,

head file1

    1   115258827   12 HG00099
    1   115258827   5 HG00100
    1   115258827   8 HG00101
    1   115258827   6 HG00103
    1   115258827   4 HG00108
    1   115258827   3 HG00110
    1   115258827   4 HG00111
    1   115258827   2 HG00114
    1   115258827   8 HG00115
    1   115258827   5 HG00116

和另一个文件

head file2
HG00096 0|0
HG00097 0|0
HG00099 0|0
HG00100 0|1
HG00101 0|0
HG00102 0|0
HG00103 0|0
HG00105 0|0
HG00106 0|0
HG00107 0|0

我想检查 file1 的最后一列是否与 file2 的第一列匹配,将文件 2 的第二列添加到 file1,最终得到类似

head desired
1   115258827   12 HG00099 0|0
1   115258827   5 HG00100  0|1
1   115258827   8 HG00101  0|0
1   115258827   6 HG00103  0|0
awk text-processing
  • 2 个回答
  • 420 Views
Martin Hope
Anna1364
Asked: 2018-05-04 09:11:05 +0800 CST

如何选择给定范围内的行?

  • 2

我有一个包含 2 列的文件:

head positions_vcf
4 68264840
4 52784678
4 52788987
4 52795404
4 52800097
4 52801203
4 52804052
4 52804766
4 52804941
4 52805425
4 52807245
4 52809203
4 52809705
4 52810211
4 52810307
4 52811970
4 52812994
4 52814042
4 52814185
4 52815272

我只需要选择第二列在“52804760-52809700”范围内的行。我想要的输出

desired_output
4 52804766
4 52804941
4 52805425
4 52807245
4 52809203
grep text-processing
  • 1 个回答
  • 1071 Views
Martin Hope
Anna1364
Asked: 2018-05-03 10:55:56 +0800 CST

如何将部分文件名粘贴到文件内容中?

  • 5

我有一个包含 1000 个文件的文件夹;前面的所有字符都是mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp指个人 ID(例如 NA21117,NA21119,NA21126,..)

NA21117.mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp
NA21119.mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp
NA21126.mapped.ILLUMINA.bwa.GIH.low_coverage.20121211.bam_dp
NA21127.mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp
NA21137.mapped.ILLUMINA.bwa.GIH.low_coverage.20120522.bam_dp
NA21142.mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp
NA21143.mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp

每个文件只有一行:

cat NA21143.mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp
1   115258827   10

对于这些文件中的每一个,我想将单个 ID 粘贴到文件的内容中并得到如下输出:

1   115258827   10 NA21143

有什么办法吗?

text-processing
  • 4 个回答
  • 1041 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve